サーバーレス VPC アクセス
サーバーレス VPC アクセスを使用すると、Cloud Run、App Engine、Cloud Run 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 範囲から発信されます。
ファイアウォール ルール
ファイアウォール ルールは、コネクタが動作し、他のリソース(ネットワーク内のリソースなど)と通信するために必要です。
スタンドアロン VPC ネットワークまたは共有 VPC ホスト プロジェクトのコネクタのファイアウォール ルール
スタンドアロン VPC ネットワークまたは共有 VPC ネットワークのホスト プロジェクトでコネクタを作成すると、Google Cloud は必要なすべてのファイアウォール ルールを作成します。これらのファイアウォール ルールは、関連するコネクタが存在する限り存在します。Google Cloud コンソールで確認できますが、編集や削除はできません。
ファイアウォール ルールの目的 | 名前の形式 | タイプ | アクション | 優先度 | プロトコルとポート |
---|---|---|---|---|---|
特定のポート上のヘルスチェック プローブ範囲(35.191.0.0/16 、35.191.192.0/18 、130.211.0.0/22 )からコネクタの VM インスタンスへのトラフィックを許可します。 |
aet-CONNECTOR_REGION-CONNECTOR_NAME-hcfw |
上り(内向き) | 許可 | 100 | TCP: 667 |
特定のポート上の Google の基盤となるサーバーレス インフラストラクチャ(35.199.224.0/19 )からコネクタの VM インスタンスへのトラフィックを許可する |
aet-CONNECTOR_REGION-CONNECTOR_NAME-rsgfw |
上り(内向き) | 許可 | 100 | TCP: 667、UDP: 665~666、ICMP |
コネクタの VM インスタンスから特定のポートで Google の基盤となるサーバーレス インフラストラクチャ(35.199.224.0/19 )へのトラフィックを許可する |
aet-CONNECTOR_REGION-CONNECTOR_NAME-earfw |
下り(外向き) | 許可 | 100 | TCP: 667、UDP: 665~666、ICMP |
他のすべてのポートで、コネクタの VM インスタンスから Google の基盤となるサーバーレス インフラストラクチャ(35.199.224.0/19 )へのトラフィックをブロックする |
aet-CONNECTOR_REGION-CONNECTOR_NAME-egrfw |
下り(外向き) | 拒否 | 100 | TCP: 1~666、668~65535、UDP: 1~664、667~65535 |
コネクタの VM インスタンス(IP アドレスに基づく)からコネクタの VPC ネットワーク内のすべてのリソースへのトラフィックをすべて許可する | aet-CONNECTOR_REGION-CONNECTOR_NAME-sbntfw |
上り(内向き) | 許可 | 1000 | TCP、UDP、ICMP |
コネクタの VM インスタンス(ネットワーク タグに基づく)からコネクタの VPC ネットワーク内のすべてのリソースへのトラフィックをすべて許可する | aet-CONNECTOR_REGION-CONNECTOR_NAME-tagfw |
上り(内向き) | 許可 | 1000 | TCP、UDP、ICMP |
VPC ファイアウォール ルールまたはファイアウォール ポリシーのルールを使用して、コネクタによるターゲット VPC ネットワーク内のリソースへのアクセスをさらに制限できます。ファイアウォール ルールを追加するときは、Google Cloud によって設定された非表示のファイアウォール ルールと競合しないように、優先度を 100 より大きくしてください。詳細については、コネクタ VM による VPC ネットワーク リソースへのアクセスを制限するをご覧ください。
共有 VPC サービス プロジェクトのコネクタのファイアウォール ルール
サービス プロジェクトでコネクタを作成し、コネクタがホスト プロジェクトの共有 VPC ネットワークをターゲットとする場合は、コネクタの操作に必要なトラフィックを許可するファイアウォール ルールを追加する必要があります。
VPC ファイアウォール ルールまたはファイアウォール ポリシーのルールを使用して、コネクタによるターゲット VPC ネットワーク内のリソースへのアクセスを制限することもできます。詳細については、VPC リソースにアクセスするをご覧ください。
スループットとスケーリング
サーバーレス 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 標準料金 |
* 最大スループットの範囲は、通常のオペレーションに基づく推定値です。実際のスループットはさまざまな要因によって異なります。VM ネットワーク帯域幅をご覧ください。
コネクタに許可されるコネクタ インスタンスの最小数と最大数を設定できます。最小値は 2 以上にする必要があります。最大値は 10 以下で、最小値よりも大きくする必要があります。コネクタのインスタンスの最小数と最大数を指定しない場合は、デフォルトの最小値(2)と最大値(10)が適用されます。Google がセキュリティ アップデートなどの 2 週間ごとのメンテナンスを行う場合、コネクタはインスタンスの最大数に設定されている値を一時的に超えることがあります。メンテナンス中にサービスが中断されないように、インスタンスが追加される場合があります。メンテナンス後、コネクタはメンテナンス前と同じ数のインスタンスに戻ります。通常、メンテナンスは数分間続きます。メンテナンス時の影響を最小限に抑えるため、接続プールを使用し、1 分を超える接続は使用しないでください。インスタンスは、シャットダウンの 1 分前にリクエストの受け入れを停止します。
サーバーレス 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 Run 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 | |
レガシー ネットワーク | |
Cloud Interconnect に接続されているネットワーク | |
Cloud VPN に接続されているネットワーク | |
VPC ネットワーク ピアリングに接続されているネットワーク |
次の表は、サーバーレス VPC アクセスをサポートするサーバーレス環境を示しています。
サーバーレス環境 | サーバーレス VPC アクセスのサポート |
---|---|
Cloud Run | |
Knative serving* | |
Cloud Run 関数 | |
App Engine スタンダード環境 | PHP 5 を除くすべてのランタイム |
App Engine フレキシブル環境* |
* Knative serving や App Engine フレキシブル環境から接続するときに内部 IP アドレスを使用する場合、サーバーレス VPC アクセスを構成する必要はありません。サービスが、接続する必要があるリソースへの接続が可能な VPC ネットワークにデプロイされていることを確認してください。
サポートされているネットワーク プロトコル
次の表は、サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコルを示しています。
プロトコル | プライベート IP へのリクエストだけをコネクタ経由でルーティングする | すべてのトラフィックをコネクタ経由でルーティングする |
---|---|---|
TCP | ||
UDP | ||
ICMP | 外部 IP アドレスのみサポート |
サポートされているリージョン
サーバーレス VPC アクセス コネクタは、Cloud Run、Cloud Run functions、App Engine スタンダード環境をサポートするすべてのリージョンでサポートされています。
利用可能なリージョンを表示するには:
gcloud compute networks vpc-access locations list
次のステップ
- サーバーレス VPC アクセスを構成する。サーバーレス VPC アクセスを構成するをご覧ください。