codingecho

日々の体験などを書いてます

GAE, GKE と Cloud Dataflow を比較する

やりたかったこと

  • リクエストするためにREST APIを使用したい
  • リクエストはほとんど 0 req/sec だが1日に数度 50 req/sec ぐらいになる
  • プロジェクトには専属の開発や運用をする人はいない
  • Google Cloud Platformを使いたい

TL;DR

  • やりたかったことにフィットしたのでGoogle App Engineを使うことにした
  • Cloud DataflowはREST APIが用意されていないので使えなかった
  • Google Kubernetes Engineは我々にとってオーバーキルだった。マイクロサービスを作るわけではないので

比較

リクエスト方法デプロイモニタリング課金
GAEREST APIDocker Container を使用する
Cloud Build からデプロイすることができる
STACKDRIVER
TRACEを使用する
リクエストがない場合は自動的にインスタンスが停止する。
GKEREST APIDocker Container とKubernetes configを使用する
Cloud Build からデプロイすることができる
STACKDRIVER
TRACEを使用する
リクエストがない場合でもインスタンスを起動させておく必要がある。
Cloud DataflowREST API無し
Cloud Pub/Subを使う
PipelineをテンプレートとしてGoogle Cloud Storageに保存する。それをCronやREST APIで実行する

STACKDRIVER TRACEとCloud Dataflow専用のインターフェースを使用する
バッチはリクエスト中だけ課金。
オンラインで実行できるストリーミングはインスタンスを起動させておく必要がある。