Google Cloud 基礎コース / Chapter 11

Cloud Run Job による DB マイグレーション

API のデプロイと切り離して、終了すればよい DB マイグレーションを Cloud Run Job として実行する章。専用の認証情報と実行順序を扱う。

TL;DR

  1. Cloud Run Job は終了するバッチ向けで、成功・失敗を実行単位で追跡できる。
  2. migration 専用のサービス アカウントと DB ユーザーにすれば、API の権限を広げない。
  3. スキーマ変更を先に完了させてから API を更新すると、互換性を確認しやすい。

01実行用イメージを分ける

db-migrator のコンテナを Artifact Registry へ配布し、Job が参照する。

実行用イメージを分けるの構成図
図の矢印は、db-migrator のコンテナを Artifact Registry へ配布し、Job が参照するという接続または判断を示す。

Cloud Run Job は終了するバッチ向けで、成功・失敗を実行単位で追跡できる。

02DB 権限を絞る

migration 用サービス アカウント、DB ユーザー、Secret を API 用と分離する。

DB 権限を絞るの構成図
図の矢印は、migration 用サービス アカウント、DB ユーザー、Secret を API 用と分離するという接続または判断を示す。

migration 専用のサービス アカウントと DB ユーザーにすれば、API の権限を広げない。

03順序を持って実行する

Job の完了を確認してからアプリを新しいスキーマへ進める。

順序を持って実行するの構成図
図の矢印は、Job の完了を確認してからアプリを新しいスキーマへ進めるという接続または判断を示す。

スキーマ変更を先に完了させてから API を更新すると、互換性を確認しやすい。

結論

  1. Cloud Run Job は終了するバッチ向けで、成功・失敗を実行単位で追跡できる。
  2. migration 専用のサービス アカウントと DB ユーザーにすれば、API の権限を広げない。
  3. スキーマ変更を先に完了させてから API を更新すると、互換性を確認しやすい。