Looker PSC ノースバウンド リージョン外部 L7 ALB

1. はじめに

この Codelab では、L7 リージョン アプリケーション ロードバランサと Private Service Connect バックエンドを作成して、Looker へのノースバウンド アクセスを行います。Looker へのノースバウンド アクセスには、Looker PSC インスタンスに許可リスト登録されたコンシューマー VPC が必要です。

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

図 1.

145ea4672c3a3b14.png

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

図 2.

259493afd914f68b.png

学習内容

  • ネットワークの要件
  • ノースバウンド アクセス用の Looker 許可リストを更新する
  • コンシューマー VPC に Private Service Connect バックエンドを作成する
  • Google 証明書と自己署名証明書

必要なもの

def88091b42bfe4d.png

2. 作成する内容

許可リスト登録されたコンシューマー ネットワーク looker-psc-demo を確立して、Google 証明書または自己署名証明書を必要とするリージョン外部 L7 アプリケーション ロードバランサと PSC バックエンド NEG をデプロイします。どちらの方法でも、Looker で定義されたカスタム ドメインと一致する登録済みドメインが必要です。

3. ネットワークの要件

ネットワーク要件の内訳は次のとおりです。

コンポーネント

説明

VPC(looker-psc-demo)

カスタムモード VPC

PSC NEG サブネット

ネットワーク エンドポイント グループの IP アドレスを割り当てるために使用されます。

プロキシ専用サブネット

各ロードバランサのプロキシ には内部 IP アドレスが割り当てられます。プロキシからバックエンド VM またはエンドポイントに送信されるパケットには、プロキシ専用サブネットからの送信元 IP アドレスが含まれています。

バックエンド サービス

バックエンド サービスは、ロードバランサとバックエンド リソースの間のブリッジとして機能します。このチュートリアルでは、バックエンド サービスは PSC NEG に関連付けられています。

4. Codelab のトポロジ

7f06f9b9876f76c4.png

5. 設定と要件

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

  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 での作業はすべて、ブラウザ内から実行できます。インストールは不要です。

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 $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

ロードバランサの IP アドレスを予約する

Cloud Shell で、ロードバランサに外部 IP アドレスを予約します。

gcloud compute addresses create regional-alb-static-ip  \
   --region=$region \
   --network-tier=STANDARD

Cloud Shell で、予約済みの IP アドレスを表示します。

gcloud compute addresses describe regional-alb-static-ip --region=us-central1 | grep -i address:

出力例:

user@cloudshell$ gcloud compute addresses describe regional-alb-static-ip --region=us-central1 | grep -i address: 
address: 35.208.202.244

8. カスタム ドメインを作成する

カスタム ドメインを確立するには、次の手順が必要です。

カスタム ドメインの例

カスタム ドメイン looker.cosmopup.com は、以前に定義した静的 IP アドレス(regional-alb-static-ip)の A レコードに関連付けられたパブリック DNS サブドメインとして存在します。DNS ルックアップを検証するターミナルから取得したスクリーンショットをご覧ください。

6be44a9b2536e3f4.png

次に、サブドメイン looker.cosmopup.com を使用して顧客ドメインを作成します。

5424ce99136d5b3a.png

OAuth の例

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

c7e5b8c7d2cc6a01.png

9. 証明書

Compute Engine または Certificate Manager の証明書を作成できます。Certificate Manager を使用して証明書を作成するには、次のいずれかの方法を使用します。

10. Looker VPC の許可リスト登録

許可された VPC を表示する

次のセクションでは、Cloud Console UI を使用して、Looker の許可された VPC のリストを表示します。

Cloud Console で、次の場所に移動します。

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

次の例では、[許可された VPC] リストにエントリはありません。

ad33177a2d721ea7.png

許可された VPC を更新する

looker-psc-demo を許可された VPC として追加して、ノースバウンド アクセスをサポートするように Looker インスタンスを更新します。

Cloud Console で、次の場所に移動します。

Looker → Looker インスタンス → 編集

cbbc069688890b82.png

接続 → 許可された VPC

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

dc931643e1b220a.png

3e26d16d83cceae9.png

許可された VPC を検証する

更新された許可された VPC のリストを表示します。

Cloud Console で、次の場所に移動します。

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

e34664c867929c66.png

11. PSC バックエンドを作成する

サービス プロデューサーとしての Looker PSC は、サービス コンシューマーがエンドポイントとバックエンドをデプロイして Looker へのノースバウンド アクセスを行うために使用するサービス アタッチメント URI を生成します。次のステップでは、Looker PSC サービス アタッチメント URI を特定し、コンシューマー VPC に Private Service Connect ネットワーク エンドポイント グループ(NEG)バックエンドを作成します。

Looker PSC サービス アタッチメントを特定する

Cloud Console で、サービス アタッチメント URI に移動してコピーします。

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

a253f94e946a1eef.png

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 Console で、次の場所に移動します。

ネットワーク サービス → ロード バランシング → ロードバランサを作成

e3474ca153d7c55a.png

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

63c2e656953444f2.png

フロントエンドの構成を作成する

次のオプションを選択し、デプロイに基づいて環境をカスタマイズします。

  • ネットワーク インフラストラクチャのデプロイに使用されるリージョン
  • プロキシ専用サブネットは、リージョンに基づいて自動的に入力されます。
  • 以前に定義した静的 IP は、リージョンの選択に基づいて使用できます。

a1c24bd4650b27d3.png

[証明書] を選択すると、既存の証明書または新しい証明書を使用するオプションが表示されます。

aac196a6fa1ee3d5.png

証明書と秘密鍵をアップロードし、[作成] を選択します。

64a390bda0c9c3f1.png

[完了] を選択して、フロントエンドの構成を完了します。

758a1921e3020854.png

バックエンド構成を作成する

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

e9bf17b1277bd597.png

af3b4a59864b15bc.png

6c784cc0169c892b.png

ba3bf9fa7d3497a5.png

ルーティング ルールを作成する

次のオプションを選択します(デフォルト オプション)。

8884421f10a50ce0.png

確認と完了

構成を確認して [作成] を選択します。

bdf5793ba8f46bb9.png

ロードバランサが有効になりました。

61adc0509f07ab15.png

Looker UI にアクセスする

ロードバランサが動作するようになったので、ウェブブラウザからカスタム Looker ドメインにアクセスできます。使用している証明書のタイプ(信頼できない証明書と信頼できる証明書など)によっては、警告が表示されることがあります。

以下に、Looker UI へのノースバウンド アクセスを取得する Looker カスタム ドメイン looker.cosmopup.com にアクセスする例(信頼できない証明書)を示します。

ae43d0d0d7136044.png

12. クリーンアップ

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

gcloud compute forwarding-rules delete regional-external-alb-fr --region=$region -q

gcloud compute target-https-proxies delete regional-external-alb-target-proxy --region=$region -q

gcloud compute url-maps delete regional-external-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

13. 完了

お疲れさまでした。カスタム ドメインとリージョン外部アプリケーション ロードバランサを使用して、Looker へのノースバウンド接続を構成して検証できました。

コンシューマー インフラストラクチャを作成し、PSC NEG、カスタム ドメインの作成方法、さまざまな証明書オプションについて学習しました。Looker を使い始めるには、多くのエキサイティングなことがあります。

Cosmopup は Codelab を素晴らしいと思っています。

c911c127bffdee57.jpeg

次のステップ

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

参考資料と動画

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