Cloud SQL PSC への Looker PSC サウスバウンド アクセス

1. はじめに

この Codelab では、Private Service Connect を使用してサービス プロデューサーとしてデプロイされた Cloud SQL へのサウスバウンド接続を行います。

Private Service Connect は Google Cloud ネットワーキング機能の一つで、コンシューマーが VPC ネットワーク内からマネージド サービスにプライベート接続でアクセスできるようにします。同様に、マネージド サービス プロデューサーがこれらのサービスを個別の VPC ネットワークにホストし、コンシューマーとのプライベート接続を提供できるようにします。たとえば、図 1 に示すように、Private Service Connect を使用して Looker にアクセスする場合、ユーザーがサービス コンシューマーで、Google がサービス プロデューサーです。

145ea4672c3a3b14.png

下り(南向き)アクセス(逆 PSC とも呼ばれます)を使用すると、コンシューマーはプロデューサーとして公開サービスを作成し、Looker がオンプレミス、VPC、マネージド サービス、インターネットのエンドポイントにアクセスできるようにします。図 2 に示すように、Looker PSC のデプロイ場所に関係なく、サウスバウンド接続は任意のリージョンにデプロイできます。

259493afd914f68b.png

学習内容

  • Private Service Connect Cloud SQL インスタンス プロデューサー サービスを作成する
  • Looker で Private Service Connect エンドポイントをサービス ユーザーとして作成する

必要なもの

def88091b42bfe4d.png

2. 作成するアプリの概要

サービス ユーザーとして Looker PSC に関連付けられたサービス プロデューサーとしてデプロイされた Cloud SQL PSC インスタンスを確立します。

次のアクションは、プロデューサー サービスへのアクセスを検証します。

  • プロデューサー サービス アタッチメントに関連付けられた PSC エンドポイントを Looker に作成する
  • Looker コンソールを使用して Cloud SQL PSC へのデータベース接続を作成する
  • 事前定義されたスキームを認証してアクセスし、Cloud SQL PSC への接続をテストする

3. Codelab のトポロジ

1e7035ea608d7d23.png

4. 設定と要件

セルフペース型の環境設定

  1. Google Cloud Console にログインして、プロジェクトを新規作成するか、既存のプロジェクトを再利用します。Gmail アカウントも Google Workspace アカウントもまだお持ちでない場合は、アカウントを作成してください。

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • プロジェクト名は、このプロジェクトの参加者に表示される名称です。Google API では使用されない文字列です。いつでも更新できます。
  • プロジェクト ID は、すべての Google Cloud プロジェクトにおいて一意でなければならず、不変です(設定後は変更できません)。Cloud コンソールでは一意の文字列が自動生成されます。通常は、この内容を意識する必要はありません。ほとんどの Codelab では、プロジェクト ID(通常は PROJECT_ID と識別されます)を参照する必要があります。生成された ID が好みではない場合は、ランダムに別の ID を生成できます。または、ご自身で試して、利用可能かどうかを確認することもできます。このステップ以降は変更できず、プロジェクトを通して同じ ID になります。
  • なお、3 つ目の値として、一部の API が使用するプロジェクト番号があります。これら 3 つの値について詳しくは、こちらのドキュメントをご覧ください。
  1. 次に、Cloud のリソースや API を使用するために、Cloud コンソールで課金を有効にする必要があります。この Codelab の操作をすべて行って、費用が生じたとしても、少額です。このチュートリアルの終了後に請求が発生しないようにリソースをシャットダウンするには、作成したリソースを削除するか、プロジェクトを削除します。Google Cloud の新規ユーザーは、300 米ドル分の無料トライアル プログラムをご利用いただけます。

Cloud Shell を起動する

Google Cloud はノートパソコンからリモートで操作できますが、この Codelab では、Google Cloud Shell(Cloud 上で動作するコマンドライン環境)を使用します。

Google Cloud Console で、右上のツールバーにある Cloud Shell アイコンをクリックします。

55efc1aaa7a4d3ad.png

プロビジョニングと環境への接続にはそれほど時間はかかりません。完了すると、次のように表示されます。

7ffe5cbb04455448.png

この仮想マシンには、必要な開発ツールがすべて用意されています。永続的なホーム ディレクトリが 5 GB 用意されており、Google Cloud で稼働します。そのため、ネットワークのパフォーマンスと認証機能が大幅に向上しています。この Codelab での作業はすべて、ブラウザ内から実行できます。インストールは不要です。

5. 始める前に

API を有効にする

Cloud Shell で、プロジェクト ID が設定されていることを確認します。

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

必要なサービスをすべて有効にします。

gcloud services enable compute.googleapis.com

6. Looker PSC プロジェクトを特定する

Cloud SQL PSC インスタンスを作成するには、許可されている PSC プロジェクトを特定する必要があります。そのため、Cloud SQL インスタンスの作成時に Looker PSC テナント プロジェクトを指定するか、既存のインスタンスを使用する場合は更新する必要があります。

gcloud を使用して Looker PSC プロジェクトを特定する

Cloud Shell で、[INSTANCE_NAME] を Looker PSC インスタンス名で更新して、Looker PSC プロジェクト ID を取得します。

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri

出力例の t7ec792caf2a609d1-tp は、Looker PSC プロジェクトです。

gcloud looker instances describe looker-psc-instance --region=us-central1 --format=json | grep -i lookerServiceAttachmentUri
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",

Cloud Console を使用して Looker PSC プロジェクトを特定する

Cloud コンソールで、次の場所に移動します。

Looker → Looker PSC インスタンス

1367ec0136aa5ad6.png

7. プロデューサー Cloud SQL インスタンスを作成する

次のセクションでは、テスト目的で使用される Cloud SQL PSC インスタンスを作成します。このインスタンスは、許可された PSC プロジェクト リストで Looker PSC プロジェクトを指定する事前定義されたパスワードを使用してデプロイされます。

Cloud SQL PSC の作成

Cloud Shell でインスタンスを作成し、Private Service Connect を有効にします。[INSTANCE_PROJECT] を Looker PSC プロジェクト ID で更新します。

gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=[INSTANCE_PROJECT] \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123

例:

gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=t7ec792caf2a609d1-tp \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123

Cloud SQL サービス アタッチメントを取得する

Private Service Connect が有効になっている Cloud SQL インスタンスを作成したら、後の手順で使用するサービス アタッチメント URI を取得して、Looker で Private Service Connect エンドポイントを作成します。

Cloud Shell で、次の操作を行います。

gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink

出力例では、サービス アタッチメント URI が生成されます。

projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155

gcloud sql instances describe cloud-sql-psc-demo --project=$project | grep -i pscServiceAttachmentLink:
pscServiceAttachmentLink: projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155

Cloud Console から Cloud SQL PSC サービス アタッチメントを取得できます。

Cloud コンソールで、次の場所に移動します。

[SQL] → [SQL インスタンス] → [接続]

18940483f646ed15.png

8. Looker で PSC エンドポイント接続を確立する

次のセクションでは、Cloud Shell で単一ドメインの --psc-service-attachment フラグを使用して、Cloud SQL プロデューサー サービス アタッチメントを Looker Core PSC に関連付けます。

Cloud Shell 内で、次のパラメータを環境に合わせて更新して、PSC 関連付けを作成します。

  • INSTANCE_NAME: Looker(Google Cloud コア)インスタンスの名前。
  • DOMAIN_1: sql.database1.com
  • SERVICE_ATTACHMENT_1: Cloud SQL PSC インスタンスの説明時に取得された URI
  • REGION: Looker(Google Cloud コア)インスタンスがホストされるリージョン

Cloud Shell で、次の操作を行います。

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

例:

gcloud looker instances update looker-psc-instance \
--psc-service-attachment  domain=sql.database1.com,attachment=projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155 \
--region=us-central1

Cloud Shell 内で、serviceAttachments の connectionStatus が「ACCEPTED」であることを確認します。Looker PSC の INSTANCE_NAME で更新してください。

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

例:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

例:

user@cloudshell$ gcloud looker instances describe looker-psc-instance --region=$region --format=json
{
  "adminSettings": {},
  "createTime": "2024-08-23T00:00:45.339063195Z",
  "customDomain": {
    "domain": "looker.cosmopup.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.14.18",
  "name": "projects/project/locations/us-central1/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
      "projects/project/global/networks/looker-psc-demo",
      "projects/project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "sql.database1.com",
        "targetServiceAttachmentUri": "projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-09-04T14:40:05.613026012Z"
}

Cloud コンソールで PSC エンドポイントを検証する

Cloud コンソールから PSC 接続を検証できます。

Cloud コンソールで、次の場所に移動します。

[Looker] → [Looker インスタンス] → [詳細]

2d4684d722d31e4b.png

9fa909f826dec963.png

9. Looker PSC と Cloud SQL PSC を統合する

次のセクションでは、Looker コンソールを使用して Cloud SQL PSC インスタンスへのデータベース接続を作成します。

[ADMIN] → [DATABASE] → [CONNECTIONS] に移動し、[ADD CONNECTION] を選択します。

以下のスクリーンショットに従って接続の詳細を入力し、[接続] を選択します。

eb3ef74d3ae71f1a.png

これで接続が構成されました

29017202470ad81f.png

10. Looker の接続を検証する

次のセクションでは、Looker の「test」アクションを使用して、Cloud SQL PSC インスタンスへの Looker の接続を検証する方法について説明します。

[Data Connection]([ADMIN] → [DATABASE] → [CONNECTIONS] → [cloud-sql-psc-demo] → [Test])に移動します。

[テスト] を選択すると、Looker は次のように postgres-database に接続します。

d9729caf9a61bfc2.png

クリーンアップ

単一の Cloud Shell ターミナルからラボ コンポーネントを削除する

gcloud sql instances delete cloud-sql-psc-demo -q

11. 完了

おめでとうございます。Private Service Connect を利用した Looker コンソールを使用して、Cloud SQL PSC への接続を正常に構成して検証しました。

Cloud SQL PSC インスタンスをプロデューサー サービスとして作成し、プロデューサー サービスへの接続を許可する Looker PSC エンドポイントを作成しました。

Cosmopup はコードラボが大好きです。

c911c127bffdee57.jpeg

次のステップ

以下の Codelab をご覧ください。

参考資料と動画

リファレンス ドキュメント