UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【GCP】バッチ処理

AppEngine上で長時間動作するバッチがある

これをCompute EngineのContainer Optimized OS上で、コンテナを実行してバッチ処理をトリガーしたい

ざっくり手順

このドキュメントにある手順をざっくりまとめる

cloud.google.com

  1. アプリと必要なライブラリを Docker イメージにバンドルし、そのイメージを Container Registry に公開しておく
  2. VM インスタンスまたは MIG のインスタンス テンプレートを作成するときに、Docker イメージ名と docker run 構成を指定
  3. VM インスタンスの作成をリクエストしたときに、Compute Engine によって次のタスクが実行される
  4. Compute Engine は、Google が提供する Container-Optimized OS イメージを使用する VM インスタンスを作成
  5. コンテナの設定をインスタンス メタデータの gce-container-declaration メタデータキーに保存
  6. VM が起動すると、Container-Optimized OS イメージは、インスタンスメタデータに格納されている docker run コマンド構成を使用し、リポジトリからコンテナ イメージをプルして、コンテナを起動する

将来的に以下の記事のように、Cloud Schedulerからバッチジョブのスケジューリングをできるようにして、完了したらGCEごと削除するようなデプロイ・実行パイプラインを構築する

medium.com