ユーザー登録された接続を使用して複数の VPC ネットワークを設定する

このページでは、複数の Virtual Private Cloud(VPC)ネットワークと新しい Memorystore for Redis Cluster インスタンスの接続を設定する方法について説明します。手順は次のとおりです。

  • コンシューマー ネットワークに Private Service Connect エンドポイントを作成します。

  • Memorystore インスタンスのサービス アタッチメントをターゲットにします。

  • コンポーネントをインスタンスに登録します。

これらのタスクを完了したら、作成した Private Service Connect 接続を介してクライアントをインスタンスに接続します。

すでに自動登録された Private Service Connect 接続があるインスタンスに複数の VPC ネットワーキングを設定する手順については、自動登録された接続でプロビジョニングされたインスタンスに複数の VPC ネットワークを設定するをご覧ください。

複数の VPC ネットワークの設定の詳細については、複数の VPC ネットワークについてをご覧ください。

ネットワーキング アーキテクチャを示す図。2 つのプロジェクトにまたがる 2 つの顧客 VPC ネットワークが Private Service Connect 接続に接続され、その接続が Memorystore サービス アタッチメントに接続されています。

主要なステップのまとめ

このセクションでは、このチュートリアルで説明する Private Service Connect 接続の設定手順の概要を説明します。まず、始める前にセクションの手順を完了して、このチュートリアルを進める準備をします。

重要なステップ

  1. ステップ 1: インスタンスを作成する
  2. ステップ 2: サービス アタッチメントのパスをメモする
  3. ステップ 3: 最初の VPC ネットワークの Private Service Connect 接続を設定して登録する
  4. ステップ 4: 2 番目の VPC ネットワークの Private Service Connect 接続を設定して登録する
  5. ステップ 5: クライアント接続を設定する

また、次のこともできます。

始める前に

始める前に、次の IAM ロールと Google Cloud リソースがあることを確認してください。

必要な IAM のロール

リソース ID の例 リソースの種類
roles/redis.admin Memorystore for Redis Cluster インスタンスを完全に制御し、インスタンスのライフサイクルを制御します。
roles/servicedirectory.editor Service Directory リソースを編集する権限が付与されます。このロールは、Private Service Connect エンドポイントの作成に必要です。
roles/compute.networkAdmin Memorystore インスタンスへの接続を開始する VPC ネットワークを完全に制御できる権限を付与します。IP アドレス、ファイアウォール ルール、Private Service Connect エンドポイントを作成して管理できます。このロールは、Private Service Connect エンドポイントの作成に必要です。

Private Service Connect を使用して複数の VPC ネットワークから Memorystore インスタンスに接続する場合、各ネットワークに独自の管理者が存在する可能性があります。

前提条件となるリソース

このチュートリアルを開始する前に、次のリソースを作成する必要があります。次の ID とロケーションでリソースを作成することをおすすめしますが、独自の ID とロケーションを選択することもできます。このチュートリアルでは、次のリソースを使用して、VPC ネットワーク 1 に 2 つの Private Service Connect 接続を設定します。

リソース ID の例 リソースの種類 フルパスの例 説明
my-project-1 Google Cloud プロジェクト なし Memorystore インスタンスがこのプロジェクトに配置されている
my-network-1 VPC ネットワーク projects/my-project-1/global/networks/my-network-1 このチュートリアルでは、このネットワークに 2 つの Private Service Connect 接続を設定します。
my-subnet-1 VPC サブネット projects/my-project-1/regions/us-central1/subnetworks/my-subnet-1 このチュートリアルでは、このサブネットで 2 つの IP アドレスを予約します。

このチュートリアルでは、次のリソースを使用して、VPC ネットワーク 2 に 2 つの Private Service Connect 接続を作成します。

リソース ID の例 リソースの種類 フルパスの例 説明
my-project-2 Google Cloud プロジェクト なし このチュートリアルでは、2 番目のネットワークと 2 番目のサブネットワークを作成するプロジェクトです。ただし、必要に応じて、2 番目のネットワークとサブネットを最初のネットワークと同じプロジェクトに配置できます。
my-network-2 VPC ネットワーク projects/my-project-2/global/networks/my-network-2 このチュートリアルでは、このネットワークに 2 つの Private Service Connect エンドポイントを作成します。
my-subnet-2 VPC サブネット projects/my-project-2/regions/us-central1/subnetworks/my-subnet-2 このチュートリアルでは、このサブネットで 2 つの IP アドレスを予約します。

API を有効にする

Compute Engine ネットワーク、Memorystore for Redis Cluster、Private Service Connect リソースの管理に必要な次の API を有効にします。

gcloud

プロジェクト 1 とプロジェクト 2 の両方で API を有効にするには、次のコマンドを実行します。

gcloud services enable --project=PROJECT_1_ID compute.googleapis.com
gcloud services enable --project=PROJECT_2_ID compute.googleapis.com
gcloud services enable --project=PROJECT_1_ID redis.googleapis.com
gcloud services enable --project=PROJECT_2_ID redis.googleapis.com
gcloud services enable --project=PROJECT_1_ID servicedirectory.googleapis.com
gcloud services enable --project=PROJECT_2_ID servicedirectory.googleapis.com

ステップ 1: インスタンスを作成する

このガイドでは、自動的に登録された Private Service Connect 接続がない Memorystore インスタンスの接続を設定する方法について説明します。サービス接続ポリシーは使用できますが、Private Service Connect 接続をユーザー登録するプロセスに従う場合は、サービス接続ポリシーは必要ありません。

Private Service Connect 接続が自動的に作成されて登録されないようにするには、次の例に示すように、ネットワークを指定せずに作成コマンドを実行します。

gcloud

Private Service Connect 接続を自動作成せずにインスタンスを作成するには、--network パラメータを使用せずに gcloud redis cluster create コマンドを次のように実行します。

gcloud redis clusters create INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT

次のように置き換えます。

  • INSTANCE_ID は、作成する Memorystore for Redis Cluster インスタンスの ID です。インスタンス ID は 1〜63 文字にする必要があり、小文字、数字、ハイフンのみ使用できます。先頭は英小文字に、末尾は英小文字または数字にする必要があります。

  • REGION_ID は、インスタンスを配置するリージョンです。

  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。

  • REPLICA_COUNT は、選択したレプリカ数(シャードあたり)です。指定できる値は 012 です。

  • NODE_TYPE は、選択したノードタイプです。次の値が利用できます。

    • redis-shared-core-nano

    • redis-standard-small

    • redis-highmem-medium

    • redis-highmem-xlarge

  • SHARD_COUNT によってインスタンス内のシャードの数が決定されます。シャード数は、クラスタデータを保存するための合計メモリ容量を決定します。クラスタ仕様の詳細については、クラスタとノードの仕様をご覧ください。

次に例を示します。

gcloud redis clusters create my-instance \
--region=us-central1 \
--replica-count=2 \
--node-type=redis-highmem-medium \
--shard-count=8

ステップ 2: サービス アタッチメントのパスをメモする

Memorystore インスタンスを作成したら、Memorystore インスタンスの 2 つのサービス アタッチメント URI をメモしておきます。これらのサービス アタッチメント URI を使用して、Private Service Connect 接続を設定します。

gcloud

Private Service Connect が有効になっているインスタンスの概要情報を表示するには、pscServiceAttachments フィールドを探します。このフィールドには、インスタンスのサービス アタッチメントを指し示す 2 つの URI が表示されます。この情報を表示するには、gcloud redis clusters describe コマンドを使用します。

gcloud redis clusters describe INSTANCE_ID --project=PROJECT_1_ID --region=REGION_ID

次のように置き換えます。

  • INSTANCE_ID は、Memorystore インスタンスの名前です。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。
  • REGION_ID は、インスタンスが配置されているリージョンの ID です。

このコマンドの出力例を次に示します。

gcloud redis clusters describe my-instance \
--project=my-project-1 --region=us-central1

...

pscServiceAttachments:
- connectionType: CONNECTION_TYPE_DISCOVERY
  serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa
- serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2

ステップ 3: 最初の VPC ネットワークの Private Service Connect 接続を設定して登録する

このセクションでは、最初の VPC ネットワークに必要な 2 つの接続を設定する方法について説明します。接続を設定する VPC ごとに、このプロセスを繰り返す必要があります。たとえば、このチュートリアルの後半で、これらの手順が 2 つ目の VPC ネットワークに必要な新しい接続に対して繰り返されます。

ネットワーク 1 の Private Service Connect エンドポイントを作成する

このセクションでは、ネットワーク 1 に 2 つの Private Service Connect エンドポイントを作成するために必要な操作について説明します。

ネットワーク 1 の IP アドレスを予約する

次に、ネットワーク 1 に 2 つの IP アドレスを予約します。

IP アドレス 1 を予約する

gcloud

IP アドレス 1 を予約するには、gcloud compute addresses create コマンドを実行します。

gcloud compute addresses create IP_ADDRESS_1_ID \
--project=PROJECT_1_ID \
--addresses=IP_ADDRESS_1 \
--region=REGION_ID \
--subnet=projects/PROJECT_1_ID/regions/REGION_ID/subnetworks/SUBNET_1_ID \
--purpose=GCE_ENDPOINT

次のように置き換えます。

  • IP_ADDRESS_1_ID は、IP アドレスに指定する ID です。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。
  • IP_ADDRESS_1 は、前提条件リソースの一部として予約した SUBNET_1_ID 範囲内の任意の IP アドレスです。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
  • SUBNET_1_ID は、前提条件リソースの一部として、プロジェクト 1 のネットワーク 1 で予約したサブネットワークの ID です。

次に例を示します。

gcloud compute addresses create my-ip-address-1 \
--project=my-project-1 \
--addresses=10.2.5.9 \
--region=us-central1 \
--subnet=projects/my-project-1/regions/us-central1/subnetworks/my-subnet-1 \
--purpose=GCE_ENDPOINT
IP アドレス 2 を予約する

gcloud

IP アドレス 2 を予約するには、gcloud compute addresses create コマンドを実行します。

gcloud compute addresses create IP_ADDRESS_2_ID \
--project=PROJECT_1_ID \
--addresses=IP_ADDRESS_2 \
--region=REGION_ID \
--subnet=projects/PROJECT_1_ID/regions/REGION_ID/subnetworks/SUBNET_1_ID \
--purpose=GCE_ENDPOINT

次のように置き換えます。

  • IP_ADDRESS_2_ID は、IP アドレスに指定する ID です。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。
  • IP_ADDRESS_2 は、前提条件リソースの一部として予約した SUBNET_1_ID 範囲内の任意の IP アドレスです。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
  • SUBNET_1_ID は、前提条件リソースの一部として、プロジェクト 1 のネットワーク 1 で予約したサブネットワークの ID です。

ネットワーク 1 の転送ルールを追加する

次に、IP アドレスを Memorystore インスタンスのサービス アタッチメントに接続する転送ルールを作成します。

IP 1 の転送ルール 1 を追加する

gcloud

IP 1 の転送ルールを追加するには、gcloud compute forwarding-rules create コマンドを実行します。

gcloud compute forwarding-rules create FORWARDING_RULE_1_NAME \
--address=IP_ADDRESS_1_ID \
--network=projects/PROJECT_1_ID/global/networks/NETWORK_1_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_1 \
--project=PROJECT_1_ID \
--allow-psc-global-access

次のように置き換えます。

  • FORWARDING_RULE_1_NAME は、作成する転送ルールに付ける名前です。
  • IP_ADDRESS_1_ID は、[IP アドレスを予約する] セクションで予約した IP アドレスの ID です。
  • NETWORK_1_ID は、最初のネットワークの ID です。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
  • SERVICE_ATTACHMENT_1 は、CONNECTION_TYPE_DISCOVERY フィールドの後に記載されているサービス アタッチメントのパスをメモするでメモしたサービス アタッチメントです。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。

次に例を示します。

gcloud compute forwarding-rules create my-forwarding-rule-1 \
--address=my-ip-address-1 \
--network=projects/my-project-1/global/networks/my-network-1 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa \
--project=my-project-1 \
--allow-psc-global-access
IP 2 の転送ルール 2 を追加する

gcloud

IP 2 の転送ルールを追加するには、gcloud compute forwarding-rules create コマンドを実行します。

gcloud compute forwarding-rules create FORWARDING_RULE_2_NAME \
--address=IP_ADDRESS_2_ID \
--network=projects/PROJECT_1_ID/global/networks/NETWORK_1_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_2 \
--project=PROJECT_1_ID \
--allow-psc-global-access

次のように置き換えます。

  • FORWARDING_RULE_2_NAME は、作成する転送ルールに付ける名前です。
  • IP_ADDRESS_2_ID は、[IP アドレスを予約する] セクションで予約した IP アドレスの ID です。
  • NETWORK_1_ID は、最初のネットワークの ID です。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
  • SERVICE_ATTACHMENT_2 は、サービス アタッチメントのパスをメモするでメモした 2 番目のサービス アタッチメントです。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。

次に例を示します。

gcloud compute forwarding-rules create my-forwarding-rule-2 \
--address=my-ip-address-2 \
--network=projects/my-project-1/global/networks/my-network-1 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa-2 \
--project=my-project-1 \
--allow-psc-global-access

ネットワーク 1 の Memorystore インスタンスに Private Service Connect 接続を登録する

このセクションでは、Memorystore インスタンスに接続を登録する手順について説明します。まず、転送ルールの接続 ID とプロジェクト ID を取得する必要があります。

次に、Private Service Connect 接続情報を Memorystore インスタンスに登録して、接続を有効にします。

ネットワーク 1 の転送ルール接続 ID とプロジェクト ID を取得する

次に、各転送ルールの pscConnectionId 値を取得します。値をメモします。

Private Service Connect 接続 ID 1 を取得する

gcloud

pscConnectionId 値やその他の転送ルールの概要情報を表示するには、gcloud compute forwarding-rules describe コマンドを実行します。

gcloud compute forwarding-rules describe FORWARDING_RULE_1_NAME \
--project=PROJECT_1_ID \
--region=REGION_ID

次のように置き換えます。

  • FORWARDING_RULE_1_NAME は、最初の転送ルールの名前です。
  • PROJECT_1_ID は、転送ルールを含む Google Cloud プロジェクトの ID です。

次の例は、このコマンドの出力例を示しています。

gcloud compute forwarding-rules describe my-forwarding-rule-1 \
--project=my-project-1 \
--region=us-central1

...

pscConnectionId: '415109836469698'
Private Service Connect 接続 ID 2 を取得する

gcloud

pscConnectionId 値やその他の転送ルールの概要情報を表示するには、gcloud compute forwarding-rules describe コマンドを実行します。

gcloud compute forwarding-rules describe FORWARDING_RULE_2_NAME \
--project=PROJECT_1_ID \
--region=REGION_ID

次のように置き換えます。

  • FORWARDING_RULE_2_NAME は、2 つ目の転送ルールの名前です。
  • PROJECT_1_ID は、転送ルールを含む Google Cloud プロジェクトの ID です。

VPC ネットワーク 1 の Private Service Connect 接続情報を登録する

gcloud

各接続を登録するには、Private Service Connect 接続 ID、IP アドレス、ネットワーク パス、転送ルール パス/URI、ターゲット サービス アタッチメントを指定します。これを行うには、gcloud redis clusters add-cluster-endpoints コマンドを実行します。

gcloud redis clusters add-cluster-endpoints INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_1_ID","address":"IP_ADDRESS_1","network":"projects/PROJECT_1_ID/global/networks/NETWORK_1_ID","forwarding-rule":"projects/PROJECT_1_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_1_NAME","service-attachment":"SERVICE_ATTACHMENT_1"},{"psc-connection-id":"PSC_CONNECTION_2_ID","address":"IP_ADDRESS_2","network":"projects/PROJECT_1_ID/global/networks/NETWORK_1_ID","forwarding-rule":"projects/PROJECT_1_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_2_NAME","service-attachment":"SERVICE_ATTACHMENT_2"}]]'

次のように置き換えます。

  • INSTANCE_ID は、Memorystore for Redis Cluster インスタンスの ID です。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンの ID です。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。
  • PSC_CONNECTION_1_ID は、転送ルールの接続 ID を取得するセクションでメモした最初の Private Service Connect 接続 ID です。
  • IP_ADDRESS_1 は、予約した最初の IP アドレスのアドレスです。
  • NETWORK_1_ID は、ネットワーク 1 の ID です。
  • FORWARDING_RULE_1_NAME は、作成した最初の転送ルールの名前です。
  • SERVICE_ATTACHMENT_1 は、FORWARDING RULE_1_NAME が接続されている最初のサービス アタッチメントです。
  • PSC_CONNECTION_2_ID は、転送ルールの接続 ID を取得する際にメモした 2 番目の Private Service Connect 接続 ID です。
  • IP_ADDRESS_2 は、予約した 2 番目の IP アドレスのアドレスです。
  • FORWARDING_RULE_2_NAME は、作成した 2 番目の転送ルールの名前です。
  • SERVICE_ATTACHMENT_2 は、FORWARDING_RULE_2_NAME が接続されている 2 番目のサービス アタッチメントです。

次に例を示します。

gcloud redis clusters add-cluster-endpoints my-instance \
--region=us-central-1 \
--project=my-project1 \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"41510983646969883","address":"10.2.5.9","network":"projects/my-project-1/global/networks/my-network-1","forwarding-rule":"projects/1048073346231/regions/us-central1/forwardingRules/my-forwarding-rule-1","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa"},{"psc-connection-id":"41510983646969234","address":"10.2.5.11","network":"projects/my-project-1/global/networks/my-network-1","forwarding-rule":"projects/my-project-1/regions/us-central1/forwardingRules/my-forwarding-rule-2","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2"}]]'

ステップ 4: 2 番目の VPC ネットワークの Private Service Connect 接続を設定して登録する

このセクションでは、2 番目の VPC ネットワークに必要な 2 つの接続を設定する方法について説明します。

ネットワーク 2 の Private Service Connect エンドポイントを作成する

このセクションでは、ネットワーク 2 に 2 つのエンドポイントを作成するために必要な操作について説明します。

ネットワーク 2 の IP アドレスを予約する

次に、ネットワーク 2 で 2 つの IP アドレスを予約します。

IP アドレス 3 を予約する

gcloud

IP アドレス 3 を予約するには、gcloud compute addresses create コマンドを実行します。

gcloud compute addresses create IP_ADDRESS_3_ID \
--project=PROJECT_2_ID \
--addresses=IP_ADDRESS_3 \
--region=REGION_ID \
--subnet=projects/PROJECT_2_ID/regions/REGION_ID/subnetworks/SUBNET_2_ID \
--purpose=GCE_ENDPOINT

次のように置き換えます。

  • IP_ADDRESS_3_ID は、IP アドレスに指定する ID です。
  • PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 番目の VPC ネットワークとサブネットワークを作成するプロジェクトです。
  • IP_ADDRESS_3 は、前提条件リソースの一部として予約した SUBNET_2_ID 範囲内の任意の IP アドレスです。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
  • SUBNET_2_ID は、前提条件リソースの一部としてプロジェクト 2 のネットワーク 2 で予約したサブネットワークの ID です。
IP アドレス 4 を予約する

gcloud

IP アドレス 4 を予約するには、gcloud compute addresses create コマンドを実行します。

gcloud compute addresses create IP_ADDRESS_4_ID \
--project=PROJECT_2_ID \
--addresses=IP_ADDRESS_4 \
--region=REGION_ID \
--subnet=projects/PROJECT_2_ID/regions/REGION_ID/subnetworks/SUBNET_2_ID \
--purpose=GCE_ENDPOINT

次のように置き換えます。

  • IP_ADDRESS_4_ID は、IP アドレスに指定する ID です。
  • PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 番目の VPC ネットワークとサブネットワークを作成するプロジェクトです。
  • IP_ADDRESS_4 は、前提条件リソースの一部として予約した SUBNET_2_ID 範囲内の任意の IP アドレスです。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
  • SUBNET_2_ID は、前提条件リソースの一部としてプロジェクト 2 のネットワーク 2 で予約したサブネットワークの ID です。

ネットワーク 2 の転送ルールを追加する

次に、IP アドレスを Memorystore インスタンスのサービス アタッチメントに接続する転送ルールを作成します。

IP 3 の転送ルール 3 を追加する

gcloud

IP 3 の転送ルールを追加するには、gcloud compute forwarding-rules create コマンドを実行します。

gcloud compute forwarding-rules create FORWARDING_RULE_3_NAME \
--address=IP_ADDRESS_3_ID \
--network=projects/PROJECT_2_ID/global/networks/NETWORK_2_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_1 \
--project=PROJECT_2_ID \
--allow-psc-global-access

次のように置き換えます。

  • FORWARDING_RULE_3_NAME は、作成する転送ルールに付ける名前です。
  • IP_ADDRESS_3_ID は、[IP アドレスを予約する] セクションで予約した IP アドレスの ID です。
  • NETWORK_2_ID は、2 つ目のネットワークの ID です。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
  • SERVICE_ATTACHMENT_1 は、サービス アタッチメントのパスをメモするでメモした最初のサービス アタッチメントです。
  • PROJECT_2_ID は 2 つ目のプロジェクトです。

次に例を示します。

gcloud compute forwarding-rules create my-forwarding-rule-3 \
--address=my-ip-address-3 \
--network=projects/my-project-2/global/networks/my-network-2 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa \
--project=my-project-2 \
--allow-psc-global-access
IP 4 の転送ルール 4 を追加する

gcloud

IP 4 の転送ルールを追加するには、gcloud compute forwarding-rules create コマンドを実行します。

gcloud compute forwarding-rules create FORWARDING_RULE_4_NAME \
--address=IP_ADDRESS_4_ID \
--network=projects/PROJECT_2_ID/global/networks/NETWORK_2_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_2 \
--project=PROJECT_2_ID \
--allow-psc-global-access

次のように置き換えます。

  • FORWARDING_RULE_4_NAME は、作成する転送ルールに付ける名前です。
  • IP_ADDRESS_4_ID は、[IP アドレスを予約する] セクションで予約した IP アドレスの ID です。
  • NETWORK_2_ID は、2 つ目のネットワークの ID です。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
  • SERVICE_ATTACHMENT_2 は、サービス アタッチメントのパスをメモするでメモした 2 番目のサービス アタッチメントです。
  • PROJECT_2_ID は 2 つ目のプロジェクトです。

次に例を示します。

gcloud compute forwarding-rules create my-forwarding-rule-4 \
--address=my-ip-address-4 \
--network=projects/my-project-2/global/networks/my-network-2 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa-2 \
--project=my-project-2 \
--allow-psc-global-access

ネットワーク 2 の Memorystore インスタンスに Private Service Connect 接続を登録する

このセクションでは、Memorystore インスタンスに接続を登録する手順について説明します。まず、転送ルールの接続 ID とプロジェクト ID を取得する必要があります。

次に、Private Service Connect 接続情報を Memorystore インスタンスに登録して、接続を有効にします。

ネットワーク 2 の転送ルール接続 ID とプロジェクト ID を取得する

次に、各転送ルールの pscConnectionId 値を取得します。値をメモします。

Private Service Connect 接続 ID 3 を取得する

gcloud

pscConnectionId 値やその他の転送ルールの概要情報を表示するには、gcloud compute forwarding-rules describe コマンドを実行します。

gcloud compute forwarding-rules describe FORWARDING_RULE_3_NAME \
--project=PROJECT_2_ID \
--region=REGION_ID

次のように置き換えます。

  • FORWARDING_RULE_3_NAME は、3 番目の転送ルールの名前です。
  • PROJECT_2_ID は、転送ルールを含む Google Cloud プロジェクトの ID です。

次の例は、このコマンドの出力例を示しています。

gcloud compute forwarding-rules describe my-forwarding-rule-3 \
--project=my-project-2 \
--region=us-central1

...

pscConnectionId: '94710983646969729'
Private Service Connect 接続 ID 4 を取得する

gcloud

pscConnectionId 値やその他の転送ルールの概要情報を表示するには、gcloud compute forwarding-rules describe コマンドを実行します。

gcloud compute forwarding-rules describe FORWARDING_RULE_4_NAME \
--project=PROJECT_2_ID \
--region=REGION_ID

次のように置き換えます。

  • FORWARDING_RULE_4_NAME は、4 番目の転送ルールの名前です。
  • PROJECT_2_ID は、転送ルールを含む Google Cloud プロジェクトの ID です。

VPC ネットワーク 2 の Private Service Connect 接続情報を登録する

gcloud

各接続を登録するには、Private Service Connect 接続 ID、IP アドレス、ネットワーク パス、転送ルール パス/URI、ターゲット サービス アタッチメントを指定します。これを行うには、gcloud redis clusters add-cluster-endpoints コマンドを実行します。

gcloud redis clusters add-cluster-endpoints INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_3_ID","address":"IP_ADDRESS_3","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwarding-rule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_3_NAME","service-attachment":"SERVICE_ATTACHMENT_1"},{"psc-connection-id":"PSC_CONNECTION_4_ID","address":"IP_ADDRESS_4","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwarding-rule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_4_NAME","service-attachment":"SERVICE_ATTACHMENT_2"}]]'

次のように置き換えます。

  • INSTANCE_ID は、Memorystore for Redis Cluster インスタンスの ID です。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンの ID です。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。
  • PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 番目の VPC ネットワークとサブネットワークを作成するプロジェクトです。
  • PSC_CONNECTION_3_ID は、ネットワーク 2 の転送ルール接続 ID を取得する際にメモした Private Service Connect 接続 3 です。
  • IP_ADDRESS_3 は、予約した 3 番目の IP アドレスのアドレスです。
  • NETWORK_2_ID は、ネットワーク 2 の ID です。
  • FORWARDING_RULE_3_NAME は、作成した 3 つ目の転送ルールの名前です。
  • SERVICE_ATTACHMENT_1 は、FORWARDING RULE_3_NAME が接続されている最初のサービス アタッチメントです。
  • PSC_CONNECTION_4_ID は、ネットワーク 2 の転送ルール接続 ID を取得する際にメモした Private Service Connect 接続 4 です。
  • IP_ADDRESS_4 は、予約した 4 番目の IP アドレスのアドレスです。
  • FORWARDING_RULE_4_NAME は、作成した 4 番目の転送ルールの名前です。
  • SERVICE_ATTACHMENT_2 は、FORWARDING_RULE_4_NAME が接続されている 2 番目のサービス アタッチメントです。

次に例を示します。

gcloud redis clusters add-cluster-endpoints my-instance \
--region=us-central-1 \
--project=my-project-1 \
--cluster-endpoint='[psc-connection:[{"psc-connection-id":"94710983646969729","address":"10.142.0.10","network":"projects/my-project-2/global/networks/my-network-2","forwarding-rule":"projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-3","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa"},{"psc-connection-id":"86510983646969993","address":"10.142.0.12","network":"projects/my-project-2/global/networks/my-network-2","forwarding-rule":"projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-4","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2"}]]'

ステップ 5: クライアント接続を設定する

このセクションでは、このガイドのネットワークの接続用にクライアントを構成する方法について説明します。

Private Service Connect 接続エンドポイントの情報をメモする

次に、このチュートリアルで設定したネットワークごとに 1 つずつ、2 つの IP アドレスをメモします。Memorystore 用に設定した各ネットワークには、検出接続エンドポイントがあります。

gcloud

ネットワークの Private Service Connect 接続エンドポイント情報を表示するには、gcloud redis clusters describe コマンドを実行します。

gcloud redis clusters describe INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID

出力には clusterEndpoints のリストが含まれます。各 clusterEndpoint には、ユーザー登録済みの Private Service Connect 接続が 2 つあります。

タイプ CONNECTION_TYPE_DISCOVERY の Private Service Connect 接続に対応する IP アドレスをメモします。このチュートリアルでは、設定した 2 つのネットワークごとに 1 つずつあります。

たとえば、書き留めておく必要がある IP アドレスを含む gcloud redis clusters describe コマンドの出力例の一部を次に示します。

clusterEndpoints:
- connections:
  - pscConnection:
      address: 10.2.5.09
      connectionType: CONNECTION_TYPE_DISCOVERY
      forwardingRule: projects/my-project-1/regions/us-central1/forwardingRules/my-forwarding-rule-1
      network: projects/my-project-1/global/networks/my-network-1
      projectId: my-network-1
      pscConnectionId: '41510983646969883'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa
  - pscConnection:
      address: 10.2.5.11
      forwardingRule: projects/my-project-1/regions/us-central1/forwardingRules/my-forwarding-rule-2
      network: projects/my-project-1/global/networks/my-network-1
      projectId: my-project-1
      pscConnectionId: '41510983646969234'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2
- connections:
  - pscConnection:
      address: 10.142.0.10
      connectionType: CONNECTION_TYPE_DISCOVERY
      forwardingRule: projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-3
      network: projects/my-project-2/global/networks/my-network-2
      projectId: my-network-2
      pscConnectionId: '94710983646969729'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa
  - pscConnection:
      address: 10.142.0.12
      forwardingRule: projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-4
      network: projects/my-project-2/global/networks/my-network-2
      projectId: my-project-2
      pscConnectionId: '86510983646969993'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2

上記の出力では、メモする 検出 Private Service Connect 接続の IP アドレスの値は 10.2.5.0910.142.0.10 です。

クライアントを構成する

次に、クライアントを次のように構成します。

  • ネットワーク 1 のディスカバリー IP を使用して、ネットワーク 1 でクライアント接続を構成します。これは、前の手順でメモした IP アドレスです。このチュートリアルで説明する例では、値は 10.2.5.09 です。

  • ネットワーク 2 のディスカバリー IP を使用して、ネットワーク 2 でクライアント接続を構成します。これは、前の手順でメモした IP アドレスです。このチュートリアルで説明する例では、値は 10.142.0.10 です。

Memorystore インスタンスに接続する手順については、redis-cli を使用して Compute Engine VM から接続するをご覧ください。

Private Service Connect 接続を削除する

Memorystore インスタンスを削除する前に、インスタンスに関連付けられているすべての Private Service Connect 接続を削除する必要があります。これを行うには、転送ルールを削除し、このチュートリアルで設定したエンドポイントの登録を解除する必要があります。このセクションでは、まず転送ルールをすべて削除してから、エンドポイントの登録を解除する手順について説明します。ただし、必要に応じて、転送ルールを削除し、一度に 1 つのネットワークのエンドポイントの登録を解除できます。

また、必要に応じて、予約済みの IP アドレスを削除して、将来の使用のために解放することもできます。

転送ルールの削除

このセクションでは、このチュートリアルで前に作成した転送ルールを削除する手順について説明します。

転送ルール 1 を削除する

gcloud

転送ルールを削除するには、gcloud compute forwarding-rules delete コマンドを実行します。

gcloud compute forwarding-rules delete FORWARDING_RULE_1_NAME \
--region=REGION_ID \
--project=PROJECT_1_ID

次のように置き換えます。

  • FORWARDING_RULE_1_NAME は、最初の転送ルールの名前です。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。

転送ルール 2 を削除する

gcloud

転送ルールを削除するには、gcloud compute forwarding-rules delete コマンドを実行します。

gcloud compute forwarding-rules delete FORWARDING_RULE_2_NAME \
--region=REGION_ID \
--project=PROJECT_1_ID

次のように置き換えます。

  • FORWARDING_RULE_2_NAME は、2 つ目の転送ルールの名前です。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。

転送ルール 3 を削除する

gcloud

転送ルールを削除するには、gcloud compute forwarding-rules delete コマンドを実行します。

gcloud compute forwarding-rules delete FORWARDING_RULE_3_NAME \
--region=REGION_ID \
--project=PROJECT_2_ID

次のように置き換えます。

  • FORWARDING_RULE_3_NAME は、3 番目の転送ルールの名前です。
  • PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 番目の VPC ネットワークとサブネットワークを作成するプロジェクトです。

転送ルール 4 を削除する

gcloud

転送ルールを削除するには、gcloud compute forwarding-rules delete コマンドを実行します。

gcloud compute forwarding-rules delete FORWARDING_RULE_4_NAME \
--region=REGION_ID \
--project=PROJECT_2_ID

次のように置き換えます。

  • FORWARDING_RULE_4_NAME は、4 番目の転送ルールの名前です。
  • PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 番目の VPC ネットワークとサブネットワークを作成するプロジェクトです。

Private Service Connect エンドポイントの登録を解除する

このセクションでは、このチュートリアルの前半で登録した Private Service Connect エンドポイントの登録を解除する手順について説明します。

VPC ネットワーク 1 と 2 のエンドポイントの登録を解除する

gcloud

Memorystore インスタンスでエンドポイント情報の登録を解除するには、gcloud redis clusters remove-cluster-endpoints コマンドを実行します。

gcloud redis clusters remove-cluster-endpoints INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_1_ID"},{"psc-connection-id":"PSC_CONNECTION_2_ID"}]]' \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_3_ID"},{"psc-connection-id":"PSC_CONNECTION_4_ID"}]]'

次のように置き換えます。

  • INSTANCE_ID は、エンドポイントの登録を解除するインスタンスの ID です。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンの ID です。
  • PSC_CONNECTION_1_ID は、転送ルールの接続 ID を取得する際にメモした最初の Private Service Connect 接続 ID です。
  • PSC_CONNECTION_2_ID は、転送ルールの接続 ID を取得する際にメモした 2 番目の Private Service Connect 接続 ID です。
  • PSC_CONNECTION_3_ID は、転送ルールの接続 ID を取得する際にメモした 3 番目の Private Service Connect 接続 ID です。
  • PSC_CONNECTION_4_ID は、転送ルールの接続 ID を取得する際にメモした 4 番目の Private Service Connect 接続 ID です。

上記のコマンドは、このチュートリアルで作成したすべての接続の登録を解除します。接続の 1 つのみを登録解除する場合は、削除する接続の接続 ID のみを指定します。

Memorystore for Redis Cluster インスタンスを削除する

Memorystore インスタンスを削除する前に、Private Service Connect エンドポイントの登録を解除する必要があります。

gcloud

Memorystore for Redis Cluster インスタンスを削除するには、gcloud redis clusters delete コマンドを実行します。

gcloud redis clusters delete INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID

次のように置き換えます。

  • INSTANCE_ID は、インスタンスの ID です。
  • REGION_ID は、Memorystore インスタンスが配置されているリージョンの ID です。
  • PROJECT_1_ID は、プロジェクト 1 の ID です。これは、Memorystore インスタンスが配置されているプロジェクトです。