3年ぐらいGoogleAppEngine (GAE)を使っていなかったのですが、GCPの無料枠も増えてるみたいだし久しぶりに触ってみようと思って調べていました。 以下、GAEとGCP周辺の知識のアップデートなメモ書き。
GoogleCloudPlatform (GCP)
- Googleが各種コンピュータリソースを提供するサービスはGoogleCloudPlatformというくくりでまとめられた。
- 管理コンソールから各種サービスを設定できる
- 各種サービスを『プロジェクト』という単位で設定し、まとめるようになった
- 各種サービスを利用する開発は、Cloud SDKを使う
CloudShell
https://cloud.google.com/shell/docs/?hl=jacloud.google.com
- Webブラウザ上で、Linuxのシェルを利用できる。
- GCPの管理コンソールからすぐに利用できる
- 無料で使える
- CloudSDKがインストールされているため、管理用端末として使うような感じ
- 作成したファイルなどは残る(VMの停止/再開をしているっぽい?)
GoogleAppEngine
- スタンダード環境とフレキシブル環境から選べる
- スタンダード
- フレキシブル
- ランタイム環境をカスタマイズできるもの
- 以前はManaged VMと呼ばれていたもの?
- あらかじめ用意されたテンプレートもしくは、カスタムランタイムを使える
- Dockerfileを使える
- 要するにDocker環境で動くGAE
- デプロイすると、Dockerイメージがビルドされ、ContainerRegistryに登録され、dockerdで起動される
- スタンダードのほうがデプロイや起動は速い感じ
- ContainerRegistryはCloudStorageを使うので、そちらで料金がかかる?
- app.yamlで使える設定がスタンダードとは異なる
- Dockerなので、インスタンスを再起動してもランタイム環境は更新されない?
- 環境が保たれるのはよさそうだけど、セキュリティアップデートなどは再デプロイ(ビルド)が必要?
- ContainerEngineへの移行ドキュメントがある
- app.yamlからDockerfileを生成できる
- https://cloud.google.com/appengine/docs/flexible/python/run-flex-app-on-gke
- SSHでログインできる
- スタンダードの機能がそのまま使えるわけではない
- TaskQueueはpush対象にしかできない
- CloudTasksを使えばよさそうだがAlphaテスト
- https://cloud.google.com/appengine/docs/flexible/python/migrating
- TaskQueueはpush対象にしかできない
- ランタイム環境をカスタマイズできるもの
- リージョン
- Datastore
- 昔はGAEに含まれるサービスだったが、独立して外部からもAPIを利用できるようになった
- GAEからは以前と同様に使える
- スケーリング
- スタンダードとフレキシブルで設定項目に違いがある
- スタンダードのほうが細かい単位でスケーリングするようなイメージ?
- スタンダード環境はOSやミドルウェア層がチューニングされているのかも?