1. はじめに
この Codelab では、L7 リージョン内部アプリケーション ロードバランサと Private Service Connect バックエンドを作成して、Looker へのノースバウンド アクセスを行います。Looker へのノースバウンド アクセスには、Looker PSC インスタンスに許可リスト登録されたコンシューマー VPC が必要です。
Private Service Connect は Google Cloud ネットワーキング機能の一つで、コンシューマーが VPC ネットワーク内からマネージド サービスにプライベート接続でアクセスできるようにします。同様に、マネージド サービス プロデューサーがこれらのサービスを個別の VPC ネットワークにホストし、コンシューマーとのプライベート接続を提供できるようにします。たとえば、図 1 に示すように、Private Service Connect を使用して Looker にアクセスする場合、ユーザーがサービス コンシューマーで、Google がサービス プロデューサーです。
図 1.

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

学習内容
- ネットワークの要件
- ノースバウンド アクセス用に Looker の許可リストを更新する
- コンシューマー VPC に Private Service Connect バックエンドを作成する
- Google 証明書と自己署名証明書
必要なもの
- オーナー権限を持つ Google Cloud プロジェクト
- 登録済みドメイン
- 既存の Looker PSC インスタンス

2. 作成するアプリの概要
許可リストに登録されたコンシューマー ネットワーク looker-psc-demo を確立して、Google 証明書またはセルフマネージド証明書を必要とするリージョン内部 L7 アプリケーション ロードバランサと PSC バックエンド NEG をデプロイします。詳細については、ロードバランサと証明書の概要ページをご覧ください。
3. ネットワークの要件
ネットワーク要件の内訳は次のとおりです。
コンポーネント | 説明 |
VPC(looker-psc-demo) | カスタムモード VPC |
PSC NEG サブネット | ネットワーク エンドポイント グループの IP アドレスの割り当てに使用されます |
プロキシ専用サブネット | 各ロードバランサのプロキシ には内部 IP アドレスが割り当てられます。プロキシからバックエンド VM またはエンドポイントに送信されるパケットには、プロキシ専用サブネットからの送信元 IP アドレスが含まれています。 |
バックエンド サービス | バックエンド サービスは、ロードバランサとバックエンド リソース間のブリッジとして機能します。このチュートリアルでは、バックエンド サービスが PSC NEG に関連付けられています。 |
4. Codelab のトポロジ

5. 設定と要件
セルフペース型の環境設定
- 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 での作業はすべて、ブラウザ内から実行できます。インストールは不要です。
6. 始める前に
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
7. コンシューマー ネットワーク
次のセクションでは、Looker PSC VPC 許可リストで更新されるコンシューマー ネットワーキングを作成します。
VPC ネットワーク
Cloud Shell で、次の操作を行います。
gcloud compute networks create looker-psc-demo --subnet-mode custom
サブネットを作成する
Cloud Shell 内で、コンシューマー ネットワーク エンドポイント グループのサブネットを作成します。
gcloud compute networks subnets create consumer-psc-neg-subnet --network looker-psc-demo --range 172.16.30.0/28 --region $region --enable-private-ip-google-access
Cloud Shell 内で、内部アプリケーション ロードバランサのサブネットを作成します。
gcloud compute networks subnets create consumer-ilb-subnet --network looker-psc-demo --range 172.16.40.0/28 --region $region --enable-private-ip-google-access
Cloud Shell 内で、プロデューサーのリージョン プロキシ専用サブネットを作成します。
gcloud compute networks subnets create $region-proxy-only-subnet \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE \
--region=$region \
--network=looker-psc-demo \
--range=10.10.10.0/24
8. カスタム ドメインを作成する
カスタム ドメインを確立するには、次の手順が必要です。
以下の例では、looker.cosmopup.com がカスタム ドメインです。

OAuth の例
以下は、サブドメイン looker.cosmopup.com の承認済みオリジンとコールバックの OAuth 認証情報の例です。

9. 証明書
Compute Engine または Certificate Manager の証明書を作成できます。Certificate Manager を使用して証明書を作成するには、次のいずれかの方法を使用します。
- リージョン セルフマネージド証明書。リージョン セルフマネージド証明書の作成と使用については、リージョン セルフマネージド証明書をデプロイするをご覧ください。証明書マップはサポートされていません。
- リージョンの Google マネージド証明書。証明書マップは対象外です。Certificate Manager では、次のタイプのリージョン Google マネージド証明書がサポートされています。
- プロジェクトごとの DNS 認証を使用するリージョン Google マネージド証明書。詳細については、リージョン Google マネージド証明書をデプロイするをご覧ください。
- Certificate Authority Service を使用するリージョン Google マネージド(プライベート)証明書。詳細については、CA Service を使用してリージョン Google マネージド証明書をデプロイするをご覧ください。
10. Looker VPC の許可リスト
許可された VPC を表示する
次のセクションでは、Cloud Console UI を使用して Looker の許可された VPC のリストを表示します。
Cloud コンソールで、次の場所に移動します。
[Looker] → [Looker インスタンス] → [詳細]
次の例では、許可された VPC のリストにエントリがありません。

許可された VPC を更新する
looker-psc-demo を許可された VPC として追加して、北向きアクセスをサポートするように Looker インスタンスを更新します。
Cloud コンソールで、次の場所に移動します。
[Looker] → [Looker インスタンス] → [編集]

[Connections] → [Allowed VPCs]
looker-psc-demo がデプロイされているプロジェクト、VPC looker-psc-demo の順に選択し、[続行] をクリックします。


許可された VPC を検証する
更新された許可された VPC のリストを表示する
Cloud コンソールで、次の場所に移動します。
[Looker] → [Looker インスタンス] → [詳細]

11. PSC バックエンドを作成する
サービス プロデューサーとしての Looker PSC は、サービス コンシューマーがエンドポイントとバックエンドをデプロイして Looker へのノースバウンド アクセスを取得するために使用するサービス アタッチメント URI を生成します。次の手順では、Looker PSC サービス アタッチメント URI を特定し、コンシューマー VPC に Private Service Connect ネットワーク エンドポイント グループ(NEG)バックエンドを作成します。
Looker PSC サービス アタッチメントを特定する
Cloud Console で、サービス アタッチメント URI をコピーします。
[Looker] → [Looker インスタンス] → [詳細]

PSC ネットワーク エンドポイント グループを作成する
Cloud Shell で、次の操作を行います。psc-target-service を更新してください。
gcloud compute network-endpoint-groups create looker-northbound-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=[UPDATE WITH YOU LOOKER SERVICE ATTACHMENT URI] \
--region=$region \
--network=looker-psc-demo \
--subnet=consumer-psc-neg-subnet
例:
gcloud compute network-endpoint-groups create looker-northbound-neg \
--network-endpoint-type=private-service-connect \
--psc-target-service=projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183 \
--region=$region \
--network=looker-psc-demo \
--subnet=consumer-psc-neg-subnet
PSC ネットワーク エンドグループの作成を検証する
Cloud Shell で、次の操作を行い、pscConnectionStatus が accepted であることを確認します。
gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:
例:
user@cloudshell$ gcloud compute network-endpoint-groups describe looker-northbound-neg --region=$region | grep -i pscConnectionStatus:
pscConnectionStatus: ACCEPTED
リージョン内部アプリケーション ロードバランサを作成する
次の手順では、Cloud Console を使用してリージョン内部アプリケーション ロードバランサを作成し、生成した証明書をフロントエンド構成に関連付けます。
Cloud コンソールで、次の場所に移動します。
[ネットワーク サービス] → [ロード バランシング] → [ロードバランサの作成]

次のオプションを選択します。

バックエンド構成を作成する
次のオプションを選択し、デプロイに基づいて環境をカスタマイズします。
- ネットワーク インフラストラクチャのデプロイに使用されるリージョン
- ネットワーク: looker-psc-demo
- プロキシ専用サブネットは、リージョンとネットワークに基づいて自動的に入力されます




ルーティング ルール
構成は必要ありません

フロントエンドの構成



ロードバランサが有効になっていることを確認し、IP アドレスを取得します。
Cloud コンソール → [ネットワーク サービス] → [ロード バランシング] → looker-ilb-alb

12. DNS の解決
カスタム ドメインへの DNS の解決は、オンプレミスまたは Cloud DNS で権威を持つことができます。このチュートリアルでは、Cloud DNS を Looker カスタム ドメインの権威サーバーとして定義します。オンプレミスから GCP DNS 解決を有効にするには、受信サーバー ポリシーを有効にする必要があります。受信サーバー ポリシーを作成すると、Cloud DNS は、サーバー ポリシーが適用される VPC ネットワークに受信サーバー ポリシーのエントリ ポイントを作成します。受信サーバー ポリシーのエントリ ポイントは、該当する VPC ネットワークのすべてのサブネットのプライマリ IPv4 アドレス範囲から取得される内部 IPv4 アドレスです。ただし、プロキシ専用サブネットは除きます。
次のセクションでは、Looker カスタム ドメイン looker.cosmopup.com の限定公開 DNS ゾーンと、ロードバランサの IP アドレスで構成される A レコードを作成します。
13. プライベート DNS ゾーンを作成する
Cloud Shell 内で、Cloud DNS 限定公開ゾーンを作成します。
gcloud dns --project=$projectid managed-zones create looker-cosmopup-dns --description="" --dns-name="looker.cosmopup.com." --visibility="private" --networks="https://compute.googleapis.com/compute/v1/projects/$projectid/global/networks/looker-psc-demo"
Cloud Shell 内で、前の手順で取得したロードバランサの IP アドレスで構成される A レコードを作成します。
gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="<insert-your-ip>"
例:
gcloud dns --project=$projectid record-sets create looker.cosmopup.com. --zone="looker-cosmopup-dns" --type="A" --ttl="300" --rrdatas="172.16.20.7"
次に、接続を有効にするために、looker-psc-demo VPC とオンプレミス ネットワークの間にハイブリッド ネットワーキング(Interconnect、HA VPN など)を構成する必要があります。
オンプレミスへのハイブリッド NEG 接続を確立するために必要な手順は次のとおりです。
- Network Connectivity プロダクトの選択 | Google Cloud
- VPC ピアリングを使用するハブアンドスポーク アーキテクチャでは、ハイブリッド NEG は Cloud Router(ハブ)と同じ VPC にデプロイされます。
- このサブネットはオンプレミス ワークロードとの通信の送信元 IP アドレスとして機能するため、プロキシ専用サブネット範囲に対応するようにオンプレミス ファイアウォールが更新されていることを確認します。
- looker.cosomopup.com の DNS リゾルバとしてインバウンド転送 IP アドレスを使用して、オンプレミス DNS を更新する
Looker UI にアクセスする
ロードバランサが動作するようになったので、ウェブブラウザからカスタム Looker ドメインにアクセスできます。使用している証明書のタイプ(信頼できない証明書と信頼できる証明書など)によっては、警告が表示されることがあります。
以下は、Looker UI へのノースバウンド アクセスを取得する Looker カスタム ドメイン looker.cosmopup.com にアクセスする例(信頼されていない証明書)です。

14. クリーンアップ
単一の Cloud Shell ターミナルからラボのコンポーネントを削除します。
gcloud compute forwarding-rules delete regional-internal-alb-fr --region=$region -q
gcloud compute target-https-proxies delete regional-internal-alb-target-proxy --region=$region -q
gcloud compute url-maps delete regional-internal-alb --region=$region -q
gcloud compute backend-services delete looker-psc-neg-backend-svc --region=$region -q
gcloud compute addresses delete regional-alb-static-ip --region=$region -q
gcloud compute network-endpoint-groups delete looker-northbound-neg --region=$region -q
gcloud compute networks delete looker-psc-demo -q
15. 完了
これで、顧客ドメインとリージョン内部アプリケーション ロードバランサを使用して、Looker へのノースバウンド接続を正常に構成して検証できました。
コンシューマー インフラストラクチャを作成し、PSC NEG とカスタム ドメインの作成方法を学び、さまざまな証明書オプションについて理解しました。Looker の使用を開始するうえで役立つ情報が満載です。
Cosmopup はコードラボが大好きです。

次のステップ
以下の Codelab をご覧ください。
- Private Service Connect でサービスを公開して使用する
- Private Service Connect と内部 TCP プロキシ ロードバランサを使用して、ハイブリッド ネットワーキング経由でオンプレミス サービスに接続する
- 公開されているすべての Private Service Connect Codelab へのアクセス