ネットワーキング

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

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

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

Memorystore for Redis では、ダイレクト ピアリングプライベート サービス アクセスの 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 は、プライベート サービス アクセス接続モードが使用可能になる前は、ダイレクト ピアリング接続モードを使用していました。

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

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

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

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

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

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

現在、プライベート サービス アクセス接続モードでインスタンスを作成するには、gcloud コマンドライン ツールを使用する必要があります。

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

接続モードの選択

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

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

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

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

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

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

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

プライベート サービス アクセスには、Redis インスタンスへのオンプレミス アクセスを許可する権限があります。VPC ネットワーク(共有または標準)でこのサポートを利用するには、ピアリング接続を更新して、カスタムルートを Google の内部ネットワークにエクスポートします。プライベート サービス アクセスで作成されるピアリングの名前は servicenetworking-googleapis-com です。

ルートをエクスポートすると、VPC ネットワーク内のすべての有効な静的ルートと動的ルート(オンプレミス ネットワークへのルートなど)が Google 内部のネットワークに送信されます。Google 内部のネットワークによって自動的にインポートされ、VPC ネットワークを介してオンプレミス ネットワークにトラフィックを送り返すことができます。

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

通常、組織のネットワーキング チームやネットワーク管理者がプライベート サービス アクセス接続の設定を担当します。これにより、ネットワーキング チームでは、他の 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.

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

プライベート サービス アクセス接続を管理するには、次の Cloud 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

サポートされているネットワークとサポートされていないネットワーク

Memorystore for Redis は、次のネットワークをサポートしています。

Memorystore for Redis は、次のネットワークはサポートしていません。

  • レガシー ネットワーク
  • 内部 IP アドレスが 172.17.0.0/16 の範囲内にある Compute Engine VM インスタンス。この範囲は内部コンポーネント用に予約されています。