GOOGLE CLOUD 基礎

Cloud Runから
Cloud SQLへつなぐ

通信経路、認証、DB変更を別の責務として設計する。

TL;DR
  1. Direct VPC EgressでVPC経由の経路を作る。
  2. Auth ProxyはIAM認証を使った接続を補助する。
  3. DBマイグレーションはCloud Run Jobへ分ける。

01 VPC経由で到達する

Cloud Runの送信をDirect VPC EgressでVPCへ出し、Cloud SQLへ接続する。ネットワーク経路、Cloud Runのサービスアカウント、DB認証を一緒に確認する。

Cloud RunからCloud SQLへのVPC接続
アプリの実行場所とDBへの到達経路を分けて考える。

02 Cloud SQL Auth Proxyを使う場面

Auth ProxyはCloud SQLへの接続を補助し、IAM認証を使った経路を提供できる。ローカルからの検証や、Cloud Run内のサイドカーでlocalhost接続を作る場面がある。

Cloud SQL Auth Proxy
アプリはProxyを窓口として使える。
秘密情報: 接続情報はSecret Managerで管理し、サービスアカウントに読取権限を与える。

03 マイグレーションはJobに隔離

API本体とDBスキーマ変更は権限も失敗時の扱いも異なる。イメージ、Secret、DBユーザーを分けたCloud Run Jobとして一回だけ実行し、ログとDB結果で確認する。

Cloud Run JobによるDBマイグレーション
DB変更の実行主体をAPIから分離する。

結論

  1. 経路、認証、DB権限を分ける。
  2. 秘密情報を直書きしない。
  3. Migrationは単発Jobとして追跡する。