Google Compute Engineを触ってみた

mackerel触ってみるのにテスト用の鯖を立てようと思ってAWSでもよかったのだけど、今週gcp_ja night抽選当たったにもかかわらずGCP(Google Cloud Platform)使ったことなかったのでこの機会についでに触ってみた。勉強会駆動勉強。

以下からアカウント登録。右上の「無料体験版」のリンクから登録すると初回は60日間$300ドル分までは無料で使えるっぽい。Amazonよりもケチくさい。
GCP と G Suite を含む Google Cloud - 無料トライアル  |  Google Cloud

アカウント登録するとそのままGoogleDeveloperConsoleに移動して、プロジェクトというのがデフォルトで作成されてるので、それをクリックしてComputeEngineのVMインスタンスを起動っぽいボタンをクリックするとチュートリアルが始まる。(ちゃんとメモってなかったので画面遷移が若干曖昧ですが雰囲気でわかるレベル)

このチュートリアルがよく出来ていて、「Compute Engine Quickstart Build a to-do App with MongoDB」というタイトルでfront-endとback-endのVMをそれぞれDebianで立てて、front-endはAngular+Node.js、back-endはMongoDBを使ってToDoアプリを作るというので、画面の指示のとおりに進めるだけで30分ぐらいで完成する。VM作成時に入力するフィールドとかが、入力画面の横にチュートリアルの説明が並ぶ構成でよくできていてわかりやすい。あとsshもブラウザ上で出来るのにかるく感動したのだけど、sshで入力するコマンドラインも丁寧に横に説明が並んでるので至れり尽くせり。接続のIP調べるのだけ、一旦VM詳細画面に戻ったらsshの接続切れちゃったのだけちょっと惜しいところだけど、チュートリアルの完成度が高くてビビった(驚くところそこか)

で、チュートリアル一通り終わったあとに手元のMacSDKを入れた。
インストール方法はこのへんを参考にすればよいのではないかと。
Google Compute Engine を使うための準備(Google Cloud SDK インストール - Linux & OS X 編) - Qiita

まあやること簡単で、pythonのバージョン2.7系入ってればコマンド一発

$ python --version
Python 2.7.6
$ curl https://sdk.cloud.google.com | bash

途中いくつか質問されるけど、Yでよいかと。(データ送られるの嫌な人はN)
パスとかも勝手に足してくれる。

Do you want to help improve the Google Cloud SDK (Y/n)?  Y
→改善のためにデータ送ってもよい?
Modify profile to update your $PATH? (Y/n)?  Y
→.bash_profileにパス追加してもよい?
Modify profile to enable bash completion? (Y/n)?  Y
→.bash_profileに補完の設定してもよい?

SDKインストールできたら、以下のコマンドでログイン

$ gcloud auth login

ブラウザでGoogleアカウントのログイン画面が開くのでログインする。コンソールとブラウザが連携する斬新な画面遷移。

あと初回はSDKにプロジェクト名の設定しておく。

$ gcloud config set project (プロジェクト名)

ssh接続は以下のコマンドでIPアドレス指定せずにログインできる。ゾーン名はVM詳細画面で確認して下さい。

$ gcloud compute ssh (インスタンス名) --zone (ゾーン名)

初回sshログイン時に自動で~/.ssh/google_compute_engineにssh鍵を生成してくれるので、直接sshコマンドでログインしたい場合はIPアドレス調べて

$ ssh -i .ssh/google_compute_engine (IPアドレス)

でもOK。あとログインする先のVMにも自動でsshログインに使用したユーザ追加されてるっぽい。へー。