1. はじめに
この Codelab では、Private Service Connect を使用してサービス プロデューサーとしてデプロイされた Cloud SQL へのサウスバウンド接続を行います。
Private Service Connect は Google Cloud ネットワーキング機能の一つで、コンシューマーが VPC ネットワーク内からマネージド サービスにプライベート接続でアクセスできるようにします。同様に、マネージド サービス プロデューサーがこれらのサービスを個別の VPC ネットワークにホストし、コンシューマーとのプライベート接続を提供できるようにします。たとえば、図 1 に示すように、Private Service Connect を使用して Looker にアクセスする場合、ユーザーがサービス コンシューマーで、Google がサービス プロデューサーです。
サウスバウンド アクセス(リバース PSC)を使用すると、コンシューマはプロデューサーとして公開サービスを作成し、Looker がオンプレミス、VPC 内のエンドポイント、マネージド サービス、インターネットにアクセスできるようにできます。サウスバウンド接続は、Looker PSC がデプロイされている場所に関係なく、任意のリージョンにデプロイできます(図 2 を参照)。
学習内容
- Private Service Connect Cloud SQL インスタンス プロデューサー サービスを作成する
- Looker でサービス コンシューマとして Private Service Connect エンドポイントを作成する
必要なもの
- オーナー権限を持つ Google Cloud プロジェクト
- 既存の Looker PSC インスタンス
2. 作成するアプリの概要
サービス プロデューサーとしてデプロイされた Cloud SQL PSC インスタンスを作成し、サービス コンシューマとして Looker PSC に関連付けます。
次のアクションは、プロデューサー サービスへのアクセスを検証します。
- プロデューサーのサービス アタッチメントに関連付けられた PSC エンドポイントを Looker で作成する
- Looker Console を使用して Cloud SQL PSC へのデータベース接続を作成する
- 事前定義されたスキームを認証してアクセスし、Cloud SQL PSC への接続をテストする
3. Codelab トポロジ
4. 設定と要件
セルフペース型の環境設定
- Google Cloud Console にログインして、プロジェクトを新規作成するか、既存のプロジェクトを再利用します。Gmail アカウントも Google Workspace アカウントもまだお持ちでない場合は、アカウントを作成してください。
- プロジェクト名は、このプロジェクトの参加者に表示される名称です。Google API では使用されない文字列です。いつでも更新できます。
- プロジェクト ID は、すべての Google Cloud プロジェクトにおいて一意でなければならず、不変です(設定後は変更できません)。Cloud コンソールでは一意の文字列が自動生成されます。通常は、この内容を意識する必要はありません。ほとんどの Codelab では、プロジェクト ID(通常は
PROJECT_ID
と識別されます)を参照する必要があります。生成された ID が好みではない場合は、ランダムに別の ID を生成できます。または、ご自身で試して、利用可能かどうかを確認することもできます。このステップ以降は変更できず、プロジェクトを通して同じ ID になります。 - なお、3 つ目の値として、一部の API が使用するプロジェクト番号があります。これら 3 つの値について詳しくは、こちらのドキュメントをご覧ください。
- 次に、Cloud のリソースや API を使用するために、Cloud コンソールで課金を有効にする必要があります。この Codelab の操作をすべて行って、費用が生じたとしても、少額です。このチュートリアルの終了後に請求が発生しないようにリソースをシャットダウンするには、作成したリソースを削除するか、プロジェクトを削除します。Google Cloud の新規ユーザーは、300 米ドル分の無料トライアル プログラムをご利用いただけます。
Cloud Shell を起動する
Google Cloud はノートパソコンからリモートで操作できますが、この Codelab では、Google Cloud Shell(Cloud 上で動作するコマンドライン環境)を使用します。
Google Cloud Console で、右上のツールバーにある Cloud Shell アイコンをクリックします。
プロビジョニングと環境への接続にはそれほど時間はかかりません。完了すると、次のように表示されます。
この仮想マシンには、必要な開発ツールがすべて用意されています。永続的なホーム ディレクトリが 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 インスタンス
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 インスタンス → 接続
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 インスタンス → 詳細
9. Looker PSC を Cloud SQL PSC と統合する
次のセクションでは、Looker コンソールを使用して、Cloud SQL PSC インスタンスへのデータベース接続を作成します。
[ADMIN] → [DATABASE] → [CONNECTIONS] → [ADD CONNECTION] を選択します。
以下のスクリーンショットに沿って接続の詳細を入力し、[接続] を選択します。
接続が構成されました
10. Looker の接続を確認する
次のセクションでは、Looker の「test」アクションを使用して、Cloud SQL PSC インスタンスへの Looker の接続を検証する方法について説明します。
データ接続に移動 [ADMIN] → [DATABASE] → [CONNECTIONS] → [cloud-sql-psc-demo] → [Test]
[Test] を選択すると、Looker は以下のように postgres データベースに接続します。
クリーンアップ
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 はコードラボが大好きです。
次のステップ
以下の Codelab をご覧ください。
- Private Service Connect でサービスを公開して使用する
- Private Service Connect と内部 TCP プロキシ ロードバランサを使用して、ハイブリッド ネットワーキング経由でオンプレミス サービスに接続する
- 公開されているすべての Private Service Connect Codelab へのアクセス