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
例えば 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 程度なら上記でクリアできない部分以外はこっちに移行してもよさそう