CloudSQLインスタンスに別プロジェクトのGAEを連携させる

この記事は約2分で読めます。

検証用にGCPの別プロジェクトでGAEを立ち上げWordpressを入れたのですが、この新規プロジェクトにCloudSQLインスタンスを作るとコストが余分に掛かってしまいます

当ブログで既に稼働しているCloudSQLインスタンスに新たにスキーマを作り、そちらを利用すれば1つのCloudSQLインスタンスで済み費用も抑えれるので、方法はないかな?と調べてみました。

やりたい事はこんな感じです。

新しいプロジェクトのGEAのサービスアカウントに対し、CloudSQLの権限付与(IAM設定)をすれば実現可能となります。

設定手順は次の通りです。

スポンサーリンク

新規作成プロジェクトのGAEのサービスアカウントを控える

新規作成プロジェクトを選択しCloud Consoleメニューの[IAMと管理]->[IAM]で表示されたGAEのサービスアカウント名を控えておきます

スポンサーリンク

既存プロジェクトのIAM設定でCloudSQLの権限を付与

1.既存プロジェクトを選択しCloud Consoleメニューの[IAMと管理]->[IAM]から[追加]をクリックします。

2.ロール「CloudSQL クライアント」を選択し、新しいメンバー欄に控えておいたGAEのサービスアカウントを入力後[保存]をクリックします。

スポンサーリンク

新規作成プロジェクトのアプリケーション設定ファイルにDB接続情報を記述

新規作成プロジェクトのGAEアプリケーション設定ファイル

  • 既存プロジェクトのCloudSQLインスタンス名
  • 接続スキーマ名
  • ユーザーID
  • パスワード

を記述し、アプリケーションをデプロイ、実行すれば既存プロジェクト側のCloudSQLインスタンスに接続出来るようになります。

※Wordpressの場合はwp-config.phpとなります。

スポンサーリンク

まとめ

  • プロジェクトを跨ぐリソースへのアクセスについて、IAMやサービスアカウントをどのように使うか?という実例になったと思います。
  • 今回はGAEでしたが、コンピューティングサービスがGCE,CKE,CloudRunだった場合も同様の設定になるんじゃないかな?と思います。
  • 年内GA予定のServerless NEGでGAEやCloud Runを冗長構成にする場合、この記事と同じ設定にすれば運用出来そうです。