このページでは、すでに自動的に登録された Private Service Connect 接続がいくつかある既存の Memorystore for Redis Cluster インスタンスに対して、複数の Virtual Private Cloud(VPC)ネットワークの接続を設定する方法について説明します。このチュートリアルでは、コンシューマー ネットワークに Private Service Connect エンドポイントを作成し、Memorystore インスタンスのサービス アタッチメントをターゲットにして、コンポーネントをインスタンスに登録する方法について説明します。このページでは、Private Service Connect 接続を介してクライアントをインスタンスに接続する方法についても説明します。
自動登録された Private Service Connect 接続でプロビジョニングされていない新しい Memorystore に複数の VPC ネットワーキングを設定する手順については、ユーザー登録された Private Service Connect 接続を使用して複数の VPC ネットワークを設定するをご覧ください。
複数の VPC ネットワークの設定の詳細については、複数の VPC ネットワークについてをご覧ください。
主要なステップのまとめ
このセクションでは、このチュートリアルで説明する新しい Private Service Connect 接続の設定手順の概要を説明します。まず、始める前にセクションの手順を完了して、このチュートリアルを進める準備をします。
重要なステップ
- ステップ 1: サービス アタッチメントのパスをメモする
- ステップ 2: 2 番目の VPC ネットワークの Private Service Connect 接続を設定して登録する
- ステップ 3: クライアント接続を設定する
また、次のこともできます。
始める前に
始める前に、次の 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 とロケーションを選択することもできます。このチュートリアルでは、2 つの Private Service Connect 接続が自動的に登録された Memorystore インスタンスを作成していることを前提としています。
リソース ID の例 | リソースの種類 | フルパスの例 | 説明 |
---|---|---|---|
my-memorystore-instance
|
Memorystore for Redis Cluster インスタンス | なし | このチュートリアルのコマンド例では、この値はネットワーク 1 に Private Service Connect 接続が自動的に登録されている既存のインスタンスを表します。 |
my-network-1
|
VPC ネットワーク |
projects/my-project-1/global/networks/my-network-1
|
Memorystore に、このネットワークで自動的に登録された Private Service Connect 接続があります |
my-project-1
|
Google Cloud プロジェクト | なし | Memorystore インスタンスがこのプロジェクトに配置されている |
このチュートリアルでは、次のリソースを使用して、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
プロジェクト 2 で API を有効にするには、次のコマンドを実行します。
gcloud services enable --project=PROJECT_2_ID compute.googleapis.com gcloud services enable --project=PROJECT_2_ID redis.googleapis.com gcloud services enable --project=PROJECT_2_ID servicedirectory.googleapis.com
ステップ 1: サービス アタッチメントのパスをメモする
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 は、Memorystore インスタンスを含むプロジェクト 1 の ID です。
- REGION_ID は、Memorystore インスタンスが配置されているリージョンの ID です。
このコマンドの出力例を次に示します。
gcloud redis clusters describe my-memorystore-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
ステップ 2: 2 番目の VPC ネットワークの Private Service Connect 接続を設定して登録する
このセクションでは、2 番目の VPC ネットワークに必要な 2 つの Private Service Connect 接続を設定する方法について説明します。
ネットワーク 2 の Private Service Connect エンドポイントを作成する
このセクションでは、ネットワーク 2 に 2 つの Private Service Connect エンドポイントを作成するために必要な操作について説明します。
ネットワーク 2 の IP アドレスを予約する
次に、ネットワーク 2 で 2 つの IP アドレスを予約します。
IP アドレス 1 を予約する
gcloud
IP アドレス 1 を予約するには、gcloud compute addresses create
コマンドを実行します。
gcloud compute addresses create IP_ADDRESS_1_ID \ --project=PROJECT_2_ID \ --addresses=IP_ADDRESS_1 \ --region=REGION_ID \ --subnet=projects/PROJECT_2_ID/regions/REGION_ID/subnetworks/SUBNET_2_ID \ --purpose=GCE_ENDPOINT
次のように置き換えます。
- IP_ADDRESS_1_ID は、IP アドレスに指定する ID です。
- PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 つ目の Virtual Private Cloud ネットワークとサブネットワークを作成するプロジェクトです。
- IP_ADDRESS_1 は、前提条件リソースの一部として予約した
SUBNET_2_ID
範囲内の任意の IP アドレスです。 - REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
- SUBNET_2_ID は、前提条件リソースの一部としてプロジェクト 2 のネットワーク 2 で予約したサブネットワークの ID です。
次に例を示します。
gcloud compute addresses create my-ip-address-1 \ --project=my-project-1 \ --addresses=10.142.0.10 \ --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_2_ID \ --addresses=IP_ADDRESS_2 \ --region=REGION_ID \ --subnet=projects/PROJECT_2_ID/regions/REGION_ID/subnetworks/SUBNET_2_ID \ --purpose=GCE_ENDPOINT
次のように置き換えます。
ネットワーク 2 の転送ルールを追加する
次に、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_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_1_NAME は、作成する転送ルールに付ける名前です。
- IP_ADDRESS_1_ID は、[IP アドレスを予約する] セクションで予約した IP アドレスの ID です。
- NETWORK_2_ID は、2 つ目のネットワークの ID です。
- REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
- SERVICE_ATTACHMENT_1 は、サービス アタッチメントのパスをメモするでメモした最初のサービス アタッチメントです。
- PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 番目の VPC ネットワークとサブネットワークを作成したプロジェクトです。
次に例を示します。
gcloud compute forwarding-rules create my-forwarding-rule-1 \ --address=my-ip-address-1 \ --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 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_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_2_NAME は、作成する転送ルールに付ける名前です。
- IP_ADDRESS_2_ID は、[IP アドレスを予約する] セクションで予約した IP アドレスの ID です。
- NETWORK_2_ID は、2 つ目のネットワークの ID です。
- REGION_ID は、Memorystore インスタンスが配置されているリージョンです。
- SERVICE_ATTACHMENT_2 は、サービス アタッチメントのパスをメモするでメモした 2 番目のサービス アタッチメントです。
- PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 番目の VPC ネットワークとサブネットワークを作成したプロジェクトです。
次に例を示します。
gcloud compute forwarding-rules create my-forwarding-rule-2 \ --address=my-ip-address-2 \ --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 1 を取得する
gcloud
pscConnectionId
値やその他の転送ルールの概要情報を表示するには、gcloud compute forwarding-rules describe
コマンドを実行します。
gcloud compute forwarding-rules describe FORWARDING_RULE_1_NAME \ --project=PROJECT_2_ID \ --region=REGION_ID
次のように置き換えます。
- FORWARDING_RULE_1_NAME は、最初の転送ルールの名前です。
- PROJECT_2_ID は、転送ルールを含む Google Cloud プロジェクトの ID です。
次の例は、このコマンドの出力例を示しています。
gcloud compute forwarding-rules describe my-forwarding-rule-1 \ --project=my-project-2 \ --region=us-central1 ... pscConnectionId: '94710983646969729'
Private Service Connect 接続 ID 2 を取得する
gcloud
pscConnectionId
値やその他の転送ルールの概要情報を表示するには、gcloud compute forwarding-rules describe
コマンドを実行します。
gcloud compute forwarding-rules describe FORWARDING_RULE_2_NAME \ --project=PROJECT_2_ID \ --region=REGION_ID
次のように置き換えます。
- FORWARDING_RULE_2_NAME は、2 つ目の転送ルールの名前です。
- 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_1_ID","address":"IP_ADDRESS_1","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwarding-rule":"projects/PROJECT_2_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_2_ID/global/networks/NETWORK_2_ID","forwarding-rule":"projects/PROJECT_2_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 は、Memorystore インスタンスが配置されているプロジェクト 1 の ID です。Private Service Connect 接続がインスタンスとは異なるプロジェクトにある場合は、接続を含むプロジェクトをこのパラメータの値として使用します。
- PROJECT_2_ID は、プロジェクト 2 の ID です。
- PSC_CONNECTION_1_ID は、ネットワーク 2 の転送ルール接続 ID を取得する際にメモした Private Service Connect 接続 ID 1 です。
- IP_ADDRESS_1 は、予約した最初の IP アドレスのアドレスです。
- NETWORK_2_ID は、ネットワーク 2 の ID です。
- FORWARDING_RULE_1_NAME は、作成した最初の転送ルールの名前です。
- SERVICE_ATTACHMENT_1 は、
FORWARDING RULE_1_NAME
が接続されている最初のサービス アタッチメントです。 - PSC_CONNECTION_2_ID は、ネットワーク 2 の転送ルール接続 ID を取得する際にメモした Private Service Connect 接続 ID 2 です。
- 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-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-1","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-2","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2"}]]'
ステップ 3: クライアント接続を設定する
このセクションでは、このガイドのネットワークの接続用にクライアントを構成する方法について説明します。
Private Service Connect 接続エンドポイントの情報をメモする
次に、2 つの IP アドレスをメモします。1 つ目は、自動的に登録された Private Service Connect 接続の検出接続 IP アドレスです。discoveryEndpoints:
フィールドの後に表示されます。
ユーザー登録された Private Service Connect 接続の検出接続 IP アドレスは、clusterEndpoints:connections:pscConnection
セクションに表示されます。この IP アドレスは CONNECTION_TYPE_DISCOVERY
フィールドに対応しています。
gcloud
ネットワークの Private Service Connect 接続エンドポイント情報を表示するには、gcloud redis clusters describe
コマンドを実行します。
gcloud redis clusters describe INSTANCE_ID \ --region=REGION_ID \ --project=PROJECT_1_ID
IP アドレスをメモします。
discoveryEndpoints:
- address: 10.128.0.55
port: 6379
pscConfig:
network: projects/my-project-1/global/networks/my-network-1
...
...
clusterEndpoints:
- 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.128.0.55
(自動登録)と 10.142.0.10
(ユーザー登録)です。
クライアントを構成する
次に、クライアントを次のように構成します。
ネットワーク 1 のディスカバリー IP を使用して、ネットワーク 1 でクライアント接続を構成します。このチュートリアルでは、これは
discoveryEndpoints:
フィールドの後に表示される IP アドレスです。ネットワーク 2 のディスカバリー IP を使用して、ネットワーク 2 でクライアント接続を構成します。このチュートリアルでは、これは
clusterEndpoints
セクションにあり、CONNECTION_TYPE_DISCOVERY
値に対応する IP アドレスです。
Memorystore インスタンスに接続する手順については、redis-cli を使用して Compute Engine VM から接続するをご覧ください。
Private Service Connect 接続を削除する
必要に応じて、インスタンスを削除する前に、インスタンスに関連付けられているユーザー登録の Private Service Connect 接続をすべて削除できます。これを行うには、転送ルールを削除し、このチュートリアルで設定したエンドポイントの登録を解除する必要があります。
また、予約済みの IP アドレスを削除して、将来の使用のために解放することもできます。
転送ルールの削除
このセクションでは、このチュートリアルで前に作成した転送ルールを削除する手順について説明します。
転送ルール 1 を削除する
gcloud
転送ルールを削除するには、gcloud compute forwarding-rules delete
コマンドを実行します。
gcloud compute forwarding-rules delete FORWARDING_RULE_1_NAME \ --region=REGION_ID \ --project=PROJECT_2_ID
次のように置き換えます。
- FORWARDING_RULE_1_NAME は、最初の転送ルールの名前です。
- PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 番目の VPC ネットワークとサブネットワークを作成したプロジェクトです。
転送ルール 2 を削除する
gcloud
転送ルールを削除するには、gcloud compute forwarding-rules delete
コマンドを実行します。
gcloud compute forwarding-rules delete FORWARDING_RULE_2_NAME \ --region=REGION_ID \ --project=PROJECT_2_ID
次のように置き換えます。
- FORWARDING_RULE_2_NAME は、2 つ目の転送ルールの名前です。
- PROJECT_2_ID は、プロジェクト 2 の ID です。これは、2 番目の VPC ネットワークとサブネットワークを作成したプロジェクトです。
VPC ネットワーク 2 の Private Service Connect エンドポイントの登録を解除する
このセクションでは、このチュートリアルの前半で登録した Private Service Connect エンドポイントの登録を解除する手順について説明します。
VPC ネットワーク 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"}]]'
次のように置き換えます。
- INSTANCE_ID は、エンドポイントの登録を解除するインスタンスの ID です。
- PROJECT_1_ID は、Memorystore インスタンスが配置されているプロジェクト 1 の ID です。
- REGION_ID は、Memorystore インスタンスが配置されているリージョンの ID です。
- PSC_CONNECTION_1_ID は、転送ルールの接続 ID を取得する際にメモした最初の Private Service Connect 接続 ID です。
- PSC_CONNECTION_2_ID は、転送ルールの接続 ID を取得する際にメモした 2 番目の Private Service Connect 接続 ID です。
Memorystore for Redis Cluster インスタンスを削除する
必要に応じて、Memorystore インスタンスを削除できます。ただし、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 インスタンスが配置されているプロジェクトです。