ネットワーキング

このページでは、Memorystore for Redis のネットワーキングの概要について説明します。

Memorystore は VPC ピアリングを使用して、VPC ネットワークを内部の Google サービス ネットワークに接続します。Memorystore for Redis は、インスタンスの作成時に選択した接続モードに応じて、さまざまなピアリング アーキテクチャとネットワーク機能を提供します。

接続モードの選択オプションは、Memorystore の既存のピアリング アーキテクチャをサポートしながら、共有 VPC アーキテクチャなどの高度なネットワーキング オプションや適切な IP 管理をサポートするために導入されました。

Memorystore for Redis では DIRECT_PEERINGPRIVATE_SERVICE_ACCESS の 2 つの接続モードをサポートしています。

Memorystore for Redis では、接続モードに関係なく、常に内部 IP アドレスを使用して Redis インスタンスをプロビジョニングします。

接続モード

Memorystore for Redis には、さまざまな機能をサポートする 2 つの接続モードが用意されています。

  • ダイレクト ピアリング
  • プライベート サービス アクセス

既存インスタンスのネットワーク接続モードを表示するには、次のコマンドを実行します。variables は適切な値に置き換えてください。

gcloud redis instances describe instance-id --region=region
  • connectMode 値には DIRECT_PEERING または PRIVATE_SERVICE_ACCESS が表示されます。

インスタンス作成時に接続モードを選択する方法については、サービス プロジェクトで共有 VPC ネットワークを使用して Redis インスタンスを作成するまたは一元化された IP アドレス範囲を持つ Redis インスタンスを作成するをご覧ください。

ダイレクト ピアリング

ダイレクト ピアリング モードを使用する場合、Memorystore はお客様の VPC ネットワークと Google 管理プロジェクトの VPC ネットワークの間に VPC ピアリングを作成します。ピアリングはインスタンス作成時に自動的に作成されます。ユーザーが追加の手順を行う必要はありません。他の Google Cloud サービスはピアリングを共有しません。Memorystore for Redis では、プライベート サービス アクセス接続モードが利用可能になる前に、ダイレクト ピアリング接続モードが使用されます。

デフォルトでは、新しいインスタンスはダイレクト ピアリング接続モードを使用して作成されます。 接続モードが指定されていない既存のスクリプトでは、デフォルトでダイレクト ピアリング モードが使用されます。

ダイレクト ピアリング接続モードでインスタンスを作成し、--reserved-ip-range gcloud フラグを使用して IP アドレス範囲を指定する場合、範囲を指定する手順については特定の IP アドレス範囲を持つ Redis インスタンスを作成するを参照してください。リードレプリカのないインスタンスの場合、必要な最小ブロックサイズは /29 です。リードレプリカのあるインスタンスの場合、必要な最小ブロックサイズは /28 です。

プライベート サービス アクセス

プライベート サービス アクセスは、VPC ネットワークと Google サービス ネットワークの間にピアリングを作成するもう 1 つの方法です。

VPC ネットワークにプライベート サービス アクセス接続を確立すると、その VPC ネットワークと Google サービス ネットワークの間にピアリングが作成されます。接続が確立されたら、プライベート サービス アクセス接続モードを使用してインスタンスを作成できます。

プライベート サービス アクセスを使用すると、Redis インスタンスで次の機能を使用できます。

  • 共有 VPC を使用して、サービス プロジェクトの Memorystore for Redis インスタンスをプロビジョニングします。
  • 複数の Google サービスの IP アドレス範囲を一元管理できます。
  • VPN トンネル経由で外部ソースからユーザーの VPC ネットワークに接続します。あるいは、Cloud Interconnect をユーザーの VPC ネットワークに接続します。

プライベート サービス アクセスのもう 1 つのメリットは、同じネットワーク ピアリングが複数の Google サービスで共有されるため、Google サービスによって作成されるピアリングの数が制限されることです。

プライベート サービス アクセス接続モードでインスタンスを作成する場合、--reserved-ip-range gcloud フラグの目的は、ダイレクト ピアリング接続モードを使用してインスタンスを作成する場合の目的とは異なります。プライベート サービス アクセスモードを使用してインスタンスを作成するときに、プライベート サービス アクセスに複数の IP アドレス範囲が割り当てられている場合は、--reserved-ip-range gcloud フラグを使用して、Redis インスタンスを作成する際に使用する割り当て範囲を選択できます。これを行う方法については、特定の IP アドレス範囲を持つ Redis インスタンスの作成をご覧ください。

接続モードの選択

次の表に、必要となるさまざまなユースケースと接続モードを示します。

シナリオ サポートされている接続モード
共有 VPC ネットワークを使用した Redis インスタンスのプロビジョニング プライベート サービス アクセスのみ
VPN を使用してオンプレミス ネットワークから Redis インスタンスにアクセスする プライベート サービス アクセスのみ
複数の Google サービスで一元化された IP 範囲の管理を使用する プライベート サービス アクセスのみ
専用 VPC ネットワークを使用して Redis インスタンスをプロビジョニングする プライベート サービス アクセス(推奨)またはダイレクト ピアリング

既存インスタンスの接続モードの切り替え

既存のインスタンスの接続モードを切り替えることはできません。接続モードを切り替えるには、新しい接続モードを使用してインスタンスを再作成する必要があります。これにより、インスタンスの IP アドレスが変更されます。

たとえば、プライベート サービス アクセス接続モードが使用可能になる前に作成された既存のインスタンスがある場合、そのインスタンスの接続モード プロパティはダイレクト ピアリングに設定されています。プライベート サービス アクセス接続モードを使用してインスタンスを再作成すると、インスタンスの IP アドレスが変更されます。

また、Memorystore for Redis では、同じプロジェクト内および同じネットワーク内で、プライベート サービス アクセスを使用する Redis インスタンスと、ダイレクト ピアリングを使用するインスタンスをサポートしています。

オンプレミス アクセスとプライベート サービス アクセス

オンプレミス ネットワークが Memorystore for Redis インスタンスが接続されている VPC ネットワークに接続されていれば、オンプレミス ネットワーク内のクライアントから接続できます。オンプレミス ネットワークからの接続を許可するには、次の操作を行います。

  1. 次のいずれかのオプションを使用して、共有 VPC ネットワークがオンプレミス ネットワークに接続されていることを確認します。
  2. Cloud VPN トンネルと Cloud Interconnect アタッチメント(VLAN)を管理する Cloud Router の BGP セッションが、オンプレミス ネットワークから特定の接頭辞(宛先)を受信したことを確認します。デフォルト ルート(宛先 0.0.0.0/0)は、Memorystore for Redis VPC ネットワークにインポートできません。このネットワークには独自のローカル デフォルト ルートがあるためです。VPC ネットワークからカスタムルートをインポートするように Memorystore for Redis ピアリングが構成されている場合でも、宛先のローカルルートが常に使用されます
  3. プライベート サービス接続によって生成されるピアリングを特定します。Memorystore for Memcached が使用するピアリングの名前は servicenetworking-googleapis-com です。
  4. --import-custom-routes--export-custom-routes の両方のフラグを設定して、ピアリング接続を更新しカスタムルートを交換します。
  5. プライベート サービス接続に使用される割り振り範囲を特定します。
  6. Cloud VPN トンネルまたは Cloud Interconnect アタッチメント(VLAN)の BGP セッションを管理する Cloud Router の割り振り範囲用に、Cloud Router のカスタム アドバタイズ ルートを作成します。

ネットワーキングの要件を伝える

通常、組織のネットワーキング チームやネットワーク管理者がプライベート サービス アクセス接続の設定を担当します。これにより、ネットワーキング チームでは、他の Google Cloud リソースに使用されている IP アドレスや範囲との重複が避けられます。重複すると接続上の問題が発生する可能性があります。

特に設定プロセス中にエラーが発生した場合は、組織のネットワーク / セキュリティ チームに連絡してプライベート サービス接続を設定することをおすすめします。ネットワーキング チームに連絡する際は、次の情報を送信します。

The Memorystore for Redis instance cannot be created due to the following
error:

"Google private services access is not enabled. Enable privates service access
and try again."

Before an instance can be created, a private service access connection needs to
be established for network <project name: network>. Please refer to the
following Memorystore documentation links for more information on how to create
this connection:

* Networking.
* Establishing a private services access connection.
* Verifying a private services access connection.

リードレプリカ対応インスタンスのネットワーク要件

Memorystore for Redis のリードレプリカ機能を使用するには、インスタンスの CIDR IP アドレス範囲が /28 以上である必要があります。/27/26 など、より大きな範囲サイズも有効です。/29 などの狭い範囲では、この機能はサポートされていません。

プライベート サービス アクセス接続を確立するために必要な権限

プライベート サービス アクセス接続を管理するには、次の IAM ロールが必要です。必要な権限がない場合は、権限不足のエラーになる可能性があります。一般的なネットワーキング エラーの一覧については、ネットワーキング エラーのシナリオをご覧ください。

UI の権限

UI でローカル ネットワークとホスト プロジェクトのネットワークを一覧表示するために必要な権限:
  • compute.networks.list
    • ローカル プロジェクトとホスト プロジェクトの両方で必要です。
UI でプライベート サービス アクセス接続を確認するために必要な権限:
  • compute.networks.list
    • ローカル プロジェクトとホスト プロジェクトの両方で必要です。
UI でプライベート サービス アクセス接続を作成するために必要な権限:
  • serviceusage.services.enable
    • Service Networking API を有効にするのに必要です。
  • compute.addresses.create
  • compute.addresses.list
  • servicenetworking.services.addPeering

gcloud の権限

プライベート サービス アクセス接続を確認するために必要な gcloud 権限
  • compute.networks.list
    • ローカル プロジェクトとホスト プロジェクトの両方で必要です。
プライベート サービス アクセス接続を作成するために必要な gcloud 権限
  • serviceusage.services.enable
    • Service Networking API を有効にするのに必要です。
  • compute.addresses.create
  • compute.addresses.list
  • servicenetworking.services.addPeering

サポートされているネットワークとクライアント IP 範囲

Memorystore for Redis は、RFC 1918 プライベート IP アドレスと RFC 1918 以外のプライベート IP アドレスの一部をサポートしています。

  • 有効な範囲は、Memorystore for Redis で許容される範囲のリストです。ただし、Memorystore for Redis は、このリストでリンクが付いた有効な範囲の表に記載されている、プライベートで使用されるパブリック IP(PUPI)アドレスをサポートしていません。
  • 制限された範囲は、Memorystore for Redis インスタンスの作成に使用できない IP アドレス範囲のリストです。
  • Memorystore インスタンスがプライベート サービス アクセス接続モードを使用する場合、PUPI 範囲のクライアントは Memorystore インスタンスに接続できません。

Memorystore は VPC ネットワークもサポートしています(レガシー ネットワーク、オンプレミス アクセス、共有 VPC ネットワークを除く)。