sshログインから見たGoogle cloud shellとGoogle Compute Engine(GCE)の違い

Google cloud platform には Google cloud shellというサービスがある
cloud.google.com
説明は上記公式サイトに頼るが、要はsshログインできるLinux環境をgoogleが無料で提供してくれるというサービスである。ブラウザ上で動くエディタも提供されるので、これひとつでリモートで開発できるという便利なものである。

さて、これとは似たようなものであるが「Google Compute Engine(GCE)のVMインスタンへのsshログイン」というサービスもある。同じような環境であるが、これは有料である。課金はVMインスタンスへのものと同様(あるいはプラス)で通信にもCPUにもかかる。
分かりづらいのは、GCEの最低環境が実質無料になり、24時間ログインしっぱなしでも無料の設定ができることである。
結局の所もどちらもIaaS(VPS?)へのログインであはるのだが、この「どっちも無料」のせいで「どっちでもいいんじゃね?」あるいは「どっちを使ってるか意識しない」事情が発生していると思う。

ちなみに起動方法も違うので画像で説明するとこうなる
f:id:miz999:20180426194813p:plain

Google cloud shellのメリット

  • 完全無料
  • google cloud platform関連のツール(gcloucdとか)がプリインストール済み
  • GUIのエディタも使える(viやemacsに慣れてない人には朗報)
  • ちなみにuname -aは Linux cs-6000-devshell-vm-3f06ec54-2b97-418f-a525-f45bc6eac544 3.16.0-5-amd64 #1 SMP Debian 3.16.51-3+deb8u1 (2018-01-08) x86_64 GNU/Linux

開発イメージ
f:id:miz999:20180426203320p:plain
上半分はエディタのゾーン

Google Compute Engine(GCE)のメリット

  • OSを選べる(debianやらFreeBSDも)
  • メモリ、ディスク等の環境構築が柔軟(追加課金がいるが)
  • ssh鍵が分かり、ログイン先のIPアドレスが分かれば、teratermやJuiceSSH(Androidsshアプリ)を使ってのログインも可能
  • Google製のAndroidアプリのCloud Consoleからもターミナルが開いてログインできる(この場合、鍵やIPアドレスはいらない)

開発イメージ
f:id:miz999:20180426203410p:plain
厳密にはこのキャプチャはgloudからのputty起動なのだが、こんな感じということで

これだけ見るとGCE使えばいいじゃんと思われるだろうが、本当にそうなのだ。
あえてGCEのデメリットは

  • 下手な操作をして大量の通信(中国への大量の送信など)を発生させてしまうと青天井課金もありえる
  • 上記も踏まえて、ハッキングされた時のリスクが面倒
  • OSからの管理なので、aptのアップグレードが結構ある。Ubuntuは半年に一度の大型アップグレードも。逆にこれはガチガチに環境を固められてるGoogle cloud shellにとってデメリットとも言える。面倒な自由と管理された不自由問題。

課金のことを考えるとgoogle cloud shellの方がいい気もするが、古くからのsshでターミナルログインの人なら、使い慣れてるターミナルソフト使えたほうがいいし、とにかくブラウザ上でのターミナル操作は重い。
他のGCE上のインスタンスにデプロイする場合どうなるかとか見通しの問題もあるのでcloud shellを頂点としてぶらさがるGCEという環境のほうが見通しがいい気もするが。

とにかくどちらがどうとか説明しづらい。cloud shellが鍵とIPアドレスでログインできるようになってくれると嬉しいのだが。

Google Cloud Platform関連はとにかく日本語の情報が少ないのでなにか大きく間違ってる気もするが、それが間違ってるかどうかも気づかずに流れていきそうな