サーバーレス VPC アクセス

サーバーレス VPC アクセスを使用すると、Cloud Run、App Engine、Cloud Functions などのサーバーレス環境から Virtual Private Cloud(VPC)ネットワークに直接接続できます。サーバーレス VPC アクセスを構成すると、サーバーレス環境で、内部 DNS と内部 IP アドレス(RFC 1918 および RFC 6598 で定義)を使用して VPC ネットワークにリクエストを送信できます。これらのリクエストに対するレスポンスも内部ネットワークを使用します。

サーバーレス VPC アクセスを使用する主な利点は次の 2 つです。

  • VPC ネットワークに送信されたリクエストは、インターネットに公開されることはありません。
  • サーバーレス VPC アクセスを介した通信では、インターネットに比べてレイテンシが低くなります。

サーバーレス VPC アクセスは、サーバーレス環境からサーバーレス VPC アクセス コネクタ経由で送信されたリクエストに対するレスポンスである場合にのみ、VPC ネットワークからサーバーレス環境に内部トラフィックを送信します。他の内部トラフィックをサーバーレス環境に送信する方法については、限定公開の Google アクセスをご覧ください。

複数の VPC ネットワークと Google Cloud プロジェクトのリソースにアクセスするには、共有 VPC または VPC ネットワーク ピアリングも構成する必要があります。

仕組み

サーバーレス VPC アクセスは、コネクタと呼ばれるリソースに基づいています。コネクタは、サーバーレス環境と VPC ネットワークとの間のトラフィックを処理します。Google Cloud プロジェクトでコネクタを作成するときに、コネクタを特定の VPC ネットワークとリージョンに接続します。次に、送信ネットワーク トラフィックにコネクタを使用するように、サーバーレス サービスを構成します。

IP アドレス範囲

コネクタの IP アドレス範囲を設定するには、次の 2 つの方法があります。

  • サブネット: サブネットを使用するリソースがない場合は、既存の /28 サブネットを指定できます。
  • CIDR 範囲: 未使用の /28 CIDR 範囲を指定できます。この範囲を指定する場合は、使用中の CIDR 範囲と重複しないようにしてください。

コネクタを介して VPC ネットワークに送信されるトラフィックは、指定したサブネットまたは CIDR 範囲から発信されます。

ファイアウォール ルール

サブネットが共有サブネットでない場合、コネクタのサブネットまたはカスタム IP 範囲からネットワーク内のすべての宛先への上り(内向き)を許可するために、優先度 1,000 の暗黙的なファイアウォール ルールが VPC ネットワークに作成されます。暗黙的なファイアウォール ルールは Google Cloud コンソールに表示されず、関連するコネクタが存在する場合に限って存在します。

スループットとスケーリング

サーバーレス VPC アクセス コネクタは、コネクタ インスタンスで構成されています。コネクタ インスタンスは、複数のマシンタイプのいずれかを使用できます。マシンタイプが大きいほど、スループットが高くなります。Google Cloud コンソールと次の表で、各マシンタイプの推定スループットと費用を確認できます。

マシンタイプ 推定スループット範囲(Mbps) 料金
(コネクタ インスタンスとネットワーク アウトバウンド データ転送の費用)
f1-micro 100~500 f1-micro の料金
e2-micro 200~1,000 e2-micro の料金
e2-standard-4 3,200~16,000 e2 標準料金

コネクタに許可されるコネクタ インスタンスの最小数と最大数を設定できます。最小値は 2 以上にする必要があります。最大値は 10 以下で、最小値よりも大きくする必要があります。コネクタのインスタンスの最小数と最大数を指定しない場合は、デフォルトの最小値(2)と最大値(10)が適用されます。Google がセキュリティ アップデートなどのメンテナンスを行う場合、コネクタはインスタンスの最大数に設定されている値を一時的に超えることがあります。メンテナンス中にサービスが中断されないように、インスタンスが追加される場合があります。メンテナンス後、コネクタはメンテナンス前と同じ数のインスタンスに戻ります。通常、メンテナンスは数分間続きます。

サーバーレス VPC アクセスは、トラフィックが増加すると、コネクタ内のインスタンス数を自動的にスケールアウトします。追加されるインスタンスは、コネクタに指定したタイプのインスタンスです。コネクタでマシンタイプを混在させることはできません。コネクタはスケールインしません。コネクタが必要以上にスケールアウトしないようにするには、インスタンスの最大数に小さい値を設定します。コネクタがスケールアウトし、インスタンス数を減らしたい場合は、目的のインスタンス数でコネクタを再作成します。

マシンタイプに f1-micro を選択し、インスタンスの最小数と最大数のデフォルト値(それぞれ 2 と 10)を使用した場合、コネクタの推定スループットは、デフォルトの最小インスタンス数で 100 Mbps、デフォルトの最大インスタンス数では 500 Mbps になります。

スループット チャート

Google Cloud コンソールの [コネクタの詳細] ページから、現在のスループットをモニタリングできます。このページのスループット チャートに、コネクタのスループット指標の詳細ビューが表示されます。

ネットワーク タグ

サーバーレス VPC アクセス ネットワーク タグを使用すると、ファイアウォール ルールルートで VPC コネクタを参照できます。

すべてのサーバーレス VPC アクセス コネクタは、次の 2 つのネットワーク タグ(インスタンス タグとも呼ばれます)を自動的に受け取ります。

  • ユニバーサル ネットワーク タグvpc-connector): は既存のすべてのコネクタと将来作成されるコネクタに適用されます。

  • 一意のネットワーク タグvpc-connector-REGION-CONNECTOR_NAME): リージョン REGION のコネクタ CONNECTOR_NAME に適用されます。

これらのネットワーク タグは削除できません。新しいネットワーク タグを追加することはできません。

ユースケース

サーバーレス VPC アクセスを使用して、Compute Engine VM インスタンス、Memorystore インスタンス、内部 DNS または内部 IP アドレスを持つその他のリソースにアクセスできます。以下に例を示します。

  • Memorystore を使用して、サーバーレス サービスのデータを保存する場合。
  • Compute Engine VM で実行されるサードパーティ ソフトウェアをサーバーレス ワークロードが使用する場合。
  • Compute Engine のマネージド インスタンス グループでバックエンド サービスが実行されていて、サーバーレス環境がインターネット接続を経由せずにそのバックエンドと通信する必要がある場合。
  • オンプレミスのデータベースから Cloud VPN を介して、サーバーレス環境がデータにアクセスする必要がある場合。

この例では、Google Cloud プロジェクトが App Engine、Cloud Functions、Cloud Run のサーバーレス環境で複数のサービスを実行しています。

サーバーレス VPC アクセス コネクタが作成され、IP 範囲 10.8.0.0/28 が割り当てられました。このため、コネクタから送信されるリクエストの送信元 IP アドレスはこの範囲にあります。

VPC ネットワークには 2 つのリソースがあります。リソースの一つには内部 IP アドレス 10.0.0.4 があります。もう一方のリソースは、内部 IP アドレス 10.1.0.2 を持ち、サーバーレス VPC アクセス コネクタとは異なるリージョンにあります。

コネクタは、これらの内部 IP アドレスからリクエストとレスポンスの両方を直接送受信します。コネクタが内部 IP アドレス 10.1.0.2 を持つリソースにリクエストを送信すると、そのリソースは別のリージョンにあるため、アウトバウンド データ転送の料金が適用されます。

サーバーレス環境と VPC ネットワーク内のリソース間のすべてのリクエストとレスポンスが内部で送信されます。

外部 IP アドレスに送信されたリクエストは、引き続きインターネット経由で送信され、サーバーレス VPC アクセス コネクタは使用されません。

以下の図に、この構成を示します。

サーバーレス VPC アクセスの例(クリックして拡大)
サーバーレス VPC アクセスの例(クリックして拡大)

料金

サーバーレス VPC アクセスの料金については、VPC の料金ページのサーバーレス VPC アクセスをご覧ください。

サポート対象のサービス

次の表は、サーバーレス VPC アクセスを使用して到達できるネットワークの種類を示しています。

接続サービス サーバーレス VPC アクセスのサポート
VPC
共有 VPC
レガシー ネットワーク
Cloud Interconnect に接続されているネットワーク
Cloud VPN に接続されているネットワーク
VPC ネットワーク ピアリングに接続されているネットワーク

次の表は、サーバーレス VPC アクセスをサポートするサーバーレス環境を示しています。

サーバーレス環境 サーバーレス VPC アクセスのサポート
Cloud Run
Cloud Run for Anthos*
Cloud Functions
App Engine スタンダード環境 PHP 5 を除くすべてのランタイム
App Engine フレキシブル環境*

*Cloud Run for Anthos または App Engine フレキシブル環境から接続するときに内部 IP アドレスを使用する場合は、サーバーレス VPC アクセスを構成する必要はありません。サービスが、接続する必要があるリソースへの接続が可能な VPC ネットワークにデプロイされていることを確認してください。

サポートされているネットワーク プロトコル

次の表は、サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコルを示しています。

プロトコル プライベート IP へのリクエストだけを VPC コネクタ経由でルーティングする すべてのトラフィックを VPC コネクタ経由でルーティングする
TCP
UDP
ICMP 外部 IP アドレスのみサポート

サポートされるリージョン

サーバーレス VPC アクセス コネクタは、Cloud Run、Cloud Functions、App Engine スタンダード環境をサポートするすべてのリージョンでサポートされています。

利用可能なリージョンを表示するには:

gcloud compute networks vpc-access locations list

次のステップ