GoogleAppEngineとGoogleCloudPlatformの知識アップデート2017/05

3年ぐらいGoogleAppEngine (GAE)を使っていなかったのですが、GCPの無料枠も増えてるみたいだし久しぶりに触ってみようと思って調べていました。 以下、GAEとGCP周辺の知識のアップデートなメモ書き。

GoogleCloudPlatform (GCP)

cloud.google.com

  • Googleが各種コンピュータリソースを提供するサービスはGoogleCloudPlatformというくくりでまとめられた。
  • 管理コンソールから各種サービスを設定できる
    • 各種サービスを『プロジェクト』という単位で設定し、まとめるようになった
  • 各種サービスを利用する開発は、Cloud SDKを使う
    • gcloudコマンドが管理用のコマンド
    • 以前はGoogleAppEngineのSDKは個別で配布されいるものだったが、gcloudコマンドからコンポーネントをインストールする形になった
    • GAEへのデプロイもgcloudコマンドからできる
    • CloudStorageを操作するgsutilなどもインストールされる

CloudShell

https://cloud.google.com/shell/docs/?hl=jacloud.google.com

  • Webブラウザ上で、Linuxのシェルを利用できる。
    • GCPの管理コンソールからすぐに利用できる
  • 無料で使える
  • CloudSDKがインストールされているため、管理用端末として使うような感じ
  • 作成したファイルなどは残る(VMの停止/再開をしているっぽい?)

GoogleAppEngine

cloud.google.com

  • スタンダード環境とフレキシブル環境から選べる
    • スタンダード
      • 最初からあったもので、ミドルウェア等の追加インストールなどができない環境
      • スケーリングの設定のGUIは管理コンソールには無いようで、app.yamlから設定することになったみたい
      • 以前と同様であれば、インスタンスの再起動時にランタイム環境が更新される?
        • 以前はセキュリティアップデートが自動で反映されてるような感じ
          • たまにバグで動作がおかしくなることもありましたが…
    • フレキシブル
      • ランタイム環境をカスタマイズできるもの
        • 以前はManaged VMと呼ばれていたもの?
        • あらかじめ用意されたテンプレートもしくは、カスタムランタイムを使える
        • Dockerfileを使える
          • 要するにDocker環境で動くGAE
      • デプロイすると、Dockerイメージがビルドされ、ContainerRegistryに登録され、dockerdで起動される
        • スタンダードのほうがデプロイや起動は速い感じ
        • ContainerRegistryはCloudStorageを使うので、そちらで料金がかかる?
      • app.yamlで使える設定がスタンダードとは異なる
      • Dockerなので、インスタンスを再起動してもランタイム環境は更新されない?
        • 環境が保たれるのはよさそうだけど、セキュリティアップデートなどは再デプロイ(ビルド)が必要?
      • ContainerEngineへの移行ドキュメントがある
      • SSHでログインできる
      • スタンダードの機能がそのまま使えるわけではない
  • リージョン
    • us-central1、us-east1、europe-west1、asia-northeast1から選べる
      • asia-northeast1は東京。昔はUSしか無かったのでレイテンシかなり改善
  • Datastore
    • 昔はGAEに含まれるサービスだったが、独立して外部からもAPIを利用できるようになった
    • GAEからは以前と同様に使える
  • スケーリング
    • スタンダードとフレキシブルで設定項目に違いがある
      • スタンダード
        • 以前からあったもの
        • Automatic、Manual、Basicから選べる
        • Automaticだと、リクエストの処理待ち時間の上下幅を与えてスケーリングの目安としたり、不要ならインスタンスがシャットダウンされたりする
      • フレキシブル
        • 最低インスタンス数1
        • CPU使用率の目安を指定できる
        • アイドリング時に指定時間が経過したらシャットダウンするような設定にできる
    • スタンダードのほうが細かい単位でスケーリングするようなイメージ?
      • スタンダード環境はOSやミドルウェア層がチューニングされているのかも?