GCP Cloud Shell は開発環境としてどの程度使えるか

by mmyoji

3 min read

結論

Docker 化さえしておけばかなり使える

標準で使えるもの

この記事 を読む前にも一応 Cloud Shell の存在は知ってはいたが、自分の terminal から直で入れるのはいいなーと思ったのでどこまで使えるか試してみた。

基本的に Ruby, Golang あたりを書いているので、それ前提で。

  • docker 17.06.0-ce
  • Go v1.10.0
  • Ruby v2.5.0
  • Rails v5.1.5
  • Bundler v1.16.1

はデフォルトで入ってた。

また

  • Git
  • Vim
  • tmux

も標準で入ってた。

dotfiles を git clone してきて、 vim, prompt 周りの設定だけ済まして、あとは以下のことを行った。

GOPATH

$ mkdir -p ~/gopath/{src,pkg,bin}

$ echo $GOPATH で確認すると、 $HOME 以下だと上記の path が設定されていたため、 go 用の directory を作成

mysql

$ sudo apt -y install libmysqlclient-dev

自分が rails を少し試す時に使っている repo を git clone したあと、 bundle install したが、 mysql2 の install で失敗したので上記を実行

それ以外は特に何もせずサクッと入ったのでよかった。

ただ、 rails app 自体も docker 化しておいて、 Cloud Shell に直に install するのはポータビリティを考えるといい加減やめた方がいいかも。すまん

direnv

apt で入れたが、セッションを終了して再度 ssh するとコマンドがなくなっているので、 $HOME 以外のところにインストールする系のものはすぐ消えるので、使えない

一応 $HOME 以下に install して、 PATH の設定だけしておけば使える

基本 docker 化してそこで環境変数等渡す方がよさそう

web preview

Using Web Preview

例えば rails s した際に、 web browser で確認する必要があり、そういう app のためにこういう機能がある。

gcloud alpha cloud-shell にはそれに関するコマンドがなさそうだったので、結局ブラウザから Cloud Shell のセッションを開いて、直接 web preview を開くリンクをクリックするしかなかった。

https でアクセスできるのは嬉しいが、例えば自分が開発しているアプリケーションが Google login でログインする仕様になっていた場合、 callback URL を毎回登録するのか、とか色々問題がありそうなので、うまくやる方法が知りたい。

その他、各サードパーティのサービスに開発用でも host を登録する必要があるものがいくつかあると思うので、そこをクリアできるようにしたい。

所感

Go でちょっとしたツール作ったり、 API サーバー書いたり、そこまで複雑じゃない rails app を書いて実行するくらいならかなりサクッと始められてかなりいい。

一応無料ということになってはいるが、実行しているインスタンスのお金はさすがに取られると思うので、来月の請求で確認してみようと思う。¥2,000~3,000 程度なら上記でクリアできない部分以外はこっちに移行してもよさそう