げっとシステムログ

WEB開発メモ

Google Cloud Run で Cloud SQL に接続する

CONTENTS
  1. やること
  2. Cloud SQL Admin API の有効化
  3. サービスアカウントの構成
  4. unix socket で接続
  5. まとめ
  6. 参考資料

やること

ドキュメントから、以下のことが必要。

  • Cloud SQL Admin API の有効化
  • サービスアカウントの構成
  • unix socket で接続

cloud run と cloud sql が別のプロジェクトの場合は両方のプロジェクトに設定が必要になる。

また、接続はインスタンスの名前を持つ unix socket を通して行う。

TOP

Cloud SQL Admin API の有効化

「API とサービス」の画面から有効化できる。

cloud run と cloud sql が別のプロジェクトの場合は両方のプロジェクトで有効化する必要がある。

TOP

サービスアカウントの構成

cloud run のデプロイ画面で、「セキュリティ」タブからサービスアカウントの設定ができる。 このサービスアカウントは「Cloud SQL クライアント」ロールを持っている必要がある。

cloud run と cloud sql が別のプロジェクトの場合は、cloud sql のプロジェクトで IAM ユーザーを追加する必要がある。

  1. cloud run のデプロイで使用したサービスアカウントのメールアドレスをコピー
  2. cloud sql のプロジェクトでこのメールアドレスを IAM ユーザーとして追加
  3. cloud sql のプロジェクトに追加した IAM ユーザーにも「Cloud SQL クライアント」ロールを設定

TOP

unix socket で接続

パブリック IP で構成されている場合、unix socket で接続する。 パスは /cloudsql/${INSTANCE_NAME}

接続に URL を使用している場合は、使用しているライブラリごとにパラメータが違うので、ドキュメントを参照すること。

TOP

まとめ

Cloud Run から Cloud SQL に接続する方法をまとめた。

振り返ってみればドキュメントの通りで、よく読んでいれば何もつまづくところはなかったはず。 cloud sql が別プロジェクトだったことと、127.0.0.1 に接続できると思い込んでいたことでハマってしまった。 まずドキュメントを読むべきだよね。

TOP

参考資料

TOP