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 内のエンドポイント、マネージド サービス、インターネットにアクセスできるようにできます。サウスバウンド接続は、Looker PSC がデプロイされている場所に関係なく、任意のリージョンにデプロイできます(図 2 を参照)。

259493afd914f68b.png

学習内容

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

必要なもの

def88091b42bfe4d.png

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

サービス プロデューサーとしてデプロイされた Cloud SQL PSC インスタンスを作成し、サービス コンシューマとして Looker PSC に関連付けます。

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

  • プロデューサーのサービス アタッチメントに関連付けられた PSC エンドポイントを Looker で作成する
  • Looker Console を使用して 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 コンソールを使用して 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 インスタンスを作成したら、後で Looker で Private Service Connect エンドポイントを作成する際に使用するサービス アタッチメント URI を取得します。

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 コンソールから 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 の接続を検証する方法について説明します。

データ接続に移動 [ADMIN] → [DATABASE] → [CONNECTIONS] → [cloud-sql-psc-demo] → [Test]

[Test] を選択すると、Looker は以下のように postgres データベースに接続します。

d9729caf9a61bfc2.png

クリーンアップ

1 つの 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 をご覧ください。

参考資料と動画

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