昨年は Microsoft Azure をある程度キャッチアップできた気がするので、今年は Google Computer Platform をキャッチアップしていきます。
今回は公式チュートリアルの最初にあった GCE を見て気になったところをメモしてます。
GCE について
管理
ssh 公開鍵をプロジェクト単位で管理できるのよい。
— kheiakiyama (@kheiakiyama) January 21, 2018
GCP でははじめにプロジェクトを作成し、リソースはプロジェクトの中で作成します。
インスタンス単位で ssh 公開鍵を登録するのはもちろん可能ですが、プロジェクトで ssh 公開鍵を作成し、GCE の各インスタンスではデフォルトではプロジェクトの公開鍵を利用できるため、厳格なポリシーがなければこれで事足ります。
ネットワーク - プライベートアドレス
内部IP がリージョンでデフォルト決まってるのよさそう。 / “ネットワークとファイアウォールの使用” https://t.co/Rl7P3TkN8T
— kheiakiyama (@kheiakiyama) January 21, 2018
Azure では内部IP範囲が他の仮想ネットワークと重ならないようにデフォルト指定されます。
これは複数の仮想ネットワークをピアリング接続する可能性を考慮してのことだと思われます。
一方 GCP ではリージョンでデフォルトのIPが決まっていて、別のプロジェクトで作成したプライベートIPの範囲とは重なります。
割り切りですね。
このあたりは好みが分かれるな気がします。
ネットワーク - セキュリティグループ
セキュリティグループはネットワーク機能の中にあるのか。ルールはタグに割り当てて、各インスタンスはタグを持つと。
— kheiakiyama (@kheiakiyama) January 21, 2018
Azure で言うところの NSG, AWS でいうところのセキュリティグループについて。
Azure ではルールセットである NSG を作成し、VMのネットワークインターフェースかサブネットにアタッチします。
GCP ではネットワーク全体かサブネットかタグにアタッチします。
VMインスタンスがタグを持つことで、特定のインスタンス向けのルールを作成できます。
プラットフォームが役割としてのタグを強制するのは、個人的には好きな対応です。
オートスケール
インスタンスグループという機能によってオートスケールを実現しています。
JMeter で nginx コンテナに負荷欠けたところオートスケール動いてるなあ。Wi-Fi だと与えられる負荷はこの程度止まりだった。 pic.twitter.com/WxyIHidMUy
— kheiakiyama (@kheiakiyama) January 21, 2018
あ、ロードバランサー入ってなかった。インスタンスグループ作ると入ってるものなのかと思った
— kheiakiyama (@kheiakiyama) January 21, 2018
徐々にインスタンス減ってるし、オートスケールちゃんと動いてる pic.twitter.com/3G3vFB3py3
— kheiakiyama (@kheiakiyama) January 21, 2018
コンテナ
Azure では Docker コンテナを動かす Web App for Container というサービスがあります。
GCP では GCE でコンテナ機能が実装されていて、驚きました。
現段階ではアルファ版 ということなので、今後どうなるかわかりませんが、注目です。
インスタンスグループにローリングアップデート機能などもあるため、いろいろ捗りそうです。
GCP 全般について
ゾーン
ゾーンは覚えろってことか。東京は asia-northeast1 と。
— kheiakiyama (@kheiakiyama) January 21, 2018
GCP ではリソースを作成するときにゾーンを指定します。
ゾーンは {大陸}-{方角}{NO}
となっているので、そのゾーンがどの国を意味しているのかはググって解決してました。
それでいて 料金 ページでは国が表示されるので「このリソースを作るといくらかかるんだっけ?」という気持ちになりました。
ポータル
ポータルが軽いっていいな。
— kheiakiyama (@kheiakiyama) January 21, 2018
Azure ポータルは遅いので、そこが快適な GCP は気持ち良いです。
Azure-CLI を使うという手はもちろんありますが、ここは見習って欲しいところ。
おわりに
次はストレージかデータストアあたりを見ていくはず、たぶん。