Private Service Connect を構成する

このページでは、Memorystore for Redis Cluster インスタンスの Private Service Connect エンドポイントを構成する方法について説明します。

始める前に

  • 既存の Memorystore for Redis Cluster インスタンスがある。
  • プロジェクトで Compute Engine API を有効にします。
    Compute Engine

  • Private Service Connect エンドポイントの IP アドレスへのトラフィックを許可するように、下り(外向き)ファイアウォール ルールが設定されていることを確認します。暗黙の下り(外向き)許可ファイアウォール ルールでは、任意の宛先 IP アドレスへの下り(外向き)が許可されます。

  • 次の Identity and Access Management(IAM)のロールと権限を付与します。

    • redis.admin Memorystore のロール
    • compute.networks.use
    • compute.addresses.create
    • compute.addresses.use
    • compute.forwardingRules.create
    • compute.forwardingRules.pscCreate
    • servicedirectory.namespaces.create
    • servicedirectory.services.create

    事前定義された IAM ロール roles/redis.admin には、Private Service Connect エンドポイントを構成するために必要な権限が含まれています。

エンドポイントを作成

  1. Memorystore for Redis Cluster インスタンスのサービス アタッチメント ID アドレスを取得します。VARIABLES は適切な値に置き換えます。

    gcloud alpha redis clusters describe INSTANCE_ID --region=REGION
    

    サービス アタッチメント ID をメモします。サービス アタッチメント ID には projects/PROJECT_NUMBER/regions/REGION/serviceAttachments/xxxxxxxxxxxxxxxx-psc-service-attachment の形式を使用します。

  2. エンドポイントに割り当てる IP アドレスを予約します。

    gcloud compute addresses create ADDRESS_NAME \
    --region=REGION \
    --subnet=SUBNET
    

    ここで

    • ADDRESS_NAME は予約済みの IP アドレスに割り当てる名前です。
    • REGION はエンドポイントの IP アドレスのリージョンです。これは、Memorystore for Redis Cluster インスタンスが配置されているのと同じリージョンに存在している必要があります。
    • SUBNET は、エンドポイント IP アドレスのサブネットの名前です。値 default、または任意のサブネットを使用できます。

    次に例を示します。

    gcloud compute addresses create cluster-reserved-address \
     --region=us-central1 \
     --subnet=default
    
  3. エンドポイントを Memorystore for Redis Cluster のサービス アタッチメントに接続する転送ルールを作成します。

    gcloud compute forwarding-rules create ENDPOINT_NAME \
    --region=REGION \
    --network=NETWORK_NAME \
    --address=ADDRESS_NAME \
    --target-service-attachment=SERVICE_ATTACHMENT \
    [ --service-directory-registration=NAMESPACE_URI ]
    

    ここで

    • ENDPOINT_NAME はエンドポイントに割り当てる名前です。
    • REGION はエンドポイントのリージョンです。これは、Memorystore for Redis Cluster インスタンスが配置されているのと同じリージョンに存在している必要があります。
    • NETWORK_NAME はエンドポイントの VPC ネットワークの名前です。値 default または任意のネットワークを使用できます。
    • ADDRESS_NAME は、ステップ 2 で指定したアドレス名です。
    • SERVICE_ATTACHMENT はサービス プロデューサーのサービス アタッチメントの URI です。例: projects/PROJECT_NUMBER/regions/REGION/serviceAttachments/xxxxxxxxxxxxxxxx-psc-service-attachment
    • NAMESPACE_URI(省略可)。これは、使用するサービス ディレクトリの名前空間の URI です。NAMESPACE_URI は、Private Service Connect エンドポイントを作成するプロジェクトと同じプロジェクトとリージョンを参照する必要があります。存在しない名前空間を指定すると、対象の名前空間が作成されます。

      NAMESPACE_URI の形式は次のとおりです。

      projects/PROJECT_NAME/locations/REGION/namespaces/NAMESPACE

      --service-directory-registration フラグを省略した場合、goog-psc-default のデフォルトの名前空間が使用されます。

    次に例を示します。

    gcloud compute forwarding-rules create my-cluster-endpoint \
     --region=us-central1 \
     --network=default \
     --address=cluster-reserved-address \
     --target-service-attachment=projects/PROJECT_NUMBER/regions/us-central1/serviceAttachments/xxxxxxxxxxxxxxxx-psc-service-attachment \
    

これで、このガイドのステップ 2 で予約した IP アドレスを使用して、Memorystore for Redis Cluster インスタンスに接続する準備が整いました。