AppEngine上で長時間動作するバッチがある
これをCompute EngineのContainer Optimized OS上で、コンテナを実行してバッチ処理をトリガーしたい
ざっくり手順
このドキュメントにある手順をざっくりまとめる
- アプリと必要なライブラリを Docker イメージにバンドルし、そのイメージを Container Registry に公開しておく
- VM インスタンスまたは MIG のインスタンス テンプレートを作成するときに、Docker イメージ名と docker run 構成を指定
- VM インスタンスの作成をリクエストしたときに、Compute Engine によって次のタスクが実行される
- Compute Engine は、Google が提供する Container-Optimized OS イメージを使用する VM インスタンスを作成
- コンテナの設定をインスタンス メタデータの gce-container-declaration メタデータキーに保存
- VM が起動すると、Container-Optimized OS イメージは、インスタンスのメタデータに格納されている docker run コマンド構成を使用し、リポジトリからコンテナ イメージをプルして、コンテナを起動する
将来的に以下の記事のように、Cloud Schedulerからバッチジョブのスケジューリングをできるようにして、完了したらGCEごと削除するようなデプロイ・実行パイプラインを構築する