やりたかったこと
- リクエストするためにREST APIを使用したい
- リクエストはほとんど 0 req/sec だが1日に数度 50 req/sec ぐらいになる
- プロジェクトには専属の開発や運用をする人はいない
- Google Cloud Platformを使いたい
TL;DR
- やりたかったことにフィットしたのでGoogle App Engineを使うことにした
- Cloud DataflowはREST APIが用意されていないので使えなかった
- Google Kubernetes Engineは我々にとってオーバーキルだった。マイクロサービスを作るわけではないので
比較
リクエスト方法 | デプロイ | モニタリング | 課金 | |
GAE | REST API | Docker Container を使用する Cloud Build からデプロイすることができる | STACKDRIVER TRACEを使用する | リクエストがない場合は自動的にインスタンスが停止する。 |
GKE | REST API | Docker Container とKubernetes configを使用する Cloud Build からデプロイすることができる | STACKDRIVER TRACEを使用する | リクエストがない場合でもインスタンスを起動させておく必要がある。 |
Cloud Dataflow | REST API無し Cloud Pub/Subを使う | PipelineをテンプレートとしてGoogle Cloud Storageに保存する。それをCronやREST APIで実行する | STACKDRIVER TRACEとCloud Dataflow専用のインターフェースを使用する | バッチはリクエスト中だけ課金。 オンラインで実行できるストリーミングはインスタンスを起動させておく必要がある。 |