サーバーレス VPC アクセスの構成

サーバーレス VPC アクセスを使用すると、Google Cloud のサーバーレス環境(Cloud Run(フルマネージド)、Cloud Functions、または App Engine スタンダード環境)から VPC ネットワークに直接接続できます。この接続により、サーバーレス環境で Compute Engine VM インスタンスや Memorystore インスタンスなど、内部 IP アドレスを持つリソースにアクセスできるようになります。たとえば、次のような場合に便利です。

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

サーバーレス VPC アクセスを使用すると、サーバーレス環境から、内部 IP アドレス(RFC 1918 で定義)または内部 DNS 名に送信されるリクエストが VPC ネットワークにルーティングされます。この内部アドレスには Google Cloud サービスからのみアクセスできます。内部アドレスを使用すると、リソースを公共のインターネットに公開する必要がなくなり、サービス間の通信のレイテンシも短縮されます。

サーバーレス VPC アクセスは、サーバーレス環境でのみリクエストを開始できます。VM によって開始されたリクエストでは、サーバーレス サービスの外部アドレスを使用する必要があります。詳細については、限定公開の Google アクセスをご覧ください。

サーバーレス VPC アクセスでは、共有 VPCネットワークと、Cloud InterconnectCloud VPNVPC ネットワーク ピアリングを介して接続されたネットワークとの通信がサポートされています。サーバーレス VPC アクセスは、レガシー ネットワークをサポートしていません。

サーバーレス VPC アクセス コネクタ

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

コネクタを作成するときは、IP 範囲も割り当てます。コネクタを介して VPC ネットワークに送信されるトラフィックは、この範囲内のアドレスから送信されます。IP 範囲は、VPC ネットワークで予約されていない CIDR /28 範囲である必要があります。コネクタの IP 範囲からネットワーク内のすべての宛先への上り(内向き)を許可するために、優先度 1000 の暗黙的なファイアウォール ルールが VPC ネットワークに作成されます。

サーバーレス VPC アクセスは、コネクタ経由で送信されたトラフィック量に応じて、100 Mbps 単位で自動的にコネクタのスループットをプロビジョニングします。自動的にプロビジョニングされるスループットはスケールアップのみであり、スケールダウンは行われません。少なくとも 200 Mbps のコネクタがプロビジョニングされ、最大 1,000 Mbps までスケールアップできます。コネクタの作成時にスループットのスケーリング上限を構成できます。コネクタを介した実際のスループットが、プロビジョニングされたスループットを超える可能性があるので注意してください(特にトラフィックが短期間で急増する場合)。

サーバーレス VPC アクセス コネクタには使用量に応じて月額料金がかかります。詳しくは料金をご覧ください。

サーバーレス VPC アクセスの例(クリックすると拡大します)
サーバーレス VPC アクセスの例(クリックすると拡大します)

次のことに注意してください。

  • コネクタは、接続先のサーバーレス サービスと同じプロジェクトとリージョンに配置する必要があります。コネクタを作成できるリージョンのリストについては、サポート対象のリージョンを参照してください。
  • 内部 IP アドレスと内部 DNS 名へのトラフィックは、コネクタ経由でルーティングされます。外部 IP アドレスへのトラフィックは、デフォルトでインターネット経由でルーティングされます。
  • 同じコネクタを複数のサーバーレス サービスで使用できます。
  • リージョン間のアクセスを許可するリソースに関しては、トラフィックの送信先のリソースとは別のリージョン内にコネクタを配置できます。その際、コネクタからの下り(外向き)の料金が請求されます。詳細については、料金をご覧ください。

コネクタの作成

コネクタを作成するには、Cloud Console または gcloud コマンドライン ツールを使用します。

Console

  1. プロジェクトで Serverless VPC Access API が有効になっていることを確認します。

    API を有効にする

  2. サーバーレス VPC アクセスの概要ページに移動します。

    サーバーレス VPC アクセスに移動

  3. [コネクタを作成] をクリックします。

  4. [名前] フィールドに、コネクタの名前を入力します。

  5. [リージョン] フィールドで、コネクタのリージョンを選択します。これは、サーバーレス サービスのリージョンと一致する必要があります。詳しくは、サポート対象のリージョンをご覧ください。

  6. [ネットワーク] フィールドで、コネクタを接続する VPC ネットワークを選択します。

  7. [IP 範囲] フィールドに、予約されていない CIDR /28 の内部 IP 範囲を入力します。この IP 範囲は、VPC ネットワーク内の既存の IP アドレス予約と重複してはいけません。たとえば、10.8.0.0/28 はほとんどの新しいプロジェクトで機能します。

  8. (オプション)コネクタのスループットをさらに制御するには、[最小スループット] フィールドと [最大スループット] フィールドを編集します。

  9. [作成] をクリックします。

コネクタの使用準備が整うと、コネクタ名の横に緑色のチェックマークが表示されます。

gcloud

  1. gcloud コンポーネントを最新バージョンに更新します。

    gcloud components update
    
  2. プロジェクトで Serverless VPC Access API が有効になっていることを確認します。

    gcloud services enable vpcaccess.googleapis.com
    
  3. 次のコマンドでコネクタを作成します。

    gcloud compute networks vpc-access connectors create [CONNECTOR_NAME] \
    --network [VPC_NETWORK] \
    --region [REGION] \
    --range [IP_RANGE]
    

    ここで

    • [CONNECTOR_NAME] は、コネクタの名前です。
    • [VPC_NETWORK] は、コネクタを接続する VPC ネットワークです。
    • [REGION] は、コネクタのリージョンです。これは、サーバーレス サービスのリージョンと一致する必要があります。詳しくは、サポート対象のリージョンをご覧ください。
    • [IP_RANGE] は、予約されていない CIDR /28 の内部 IP 範囲です。この IP 範囲は、VPC ネットワーク内の既存の IP アドレス予約と重複してはいけません。たとえば、10.8.0.0/28 はほとんどの新しいプロジェクトで機能します。

    スループット制御などの詳細とオプションの引数については、gcloud のリファレンスをご覧ください。

  4. 使用する前に、コネクタが READY 状態になっていることを確認します。

    gcloud compute networks vpc-access connectors describe [CONNECTOR_NAME] --region [REGION]
    

    出力には、state: READY という行が含まれます。

コネクタの削除

コネクタを削除する前に、まだそれを使用しているサービスがないことを確認してください。サービスからコネクタの接続を解除する方法については、関連するプロダクトのドキュメントをご覧ください。まだサーバーレス VPC アクセス コネクタが接続されている VPC ネットワークは削除できません。VPC ネットワークを削除する場合は、その前に接続されているすべてのコネクタを削除する必要があります。

コネクタを削除するには、Cloud Console または gcloud コマンドライン ツールを使用します。

Console

  1. サーバーレス VPC アクセスの概要ページに移動します。

    サーバーレス VPC アクセスに移動

  2. 削除するコネクタを選択します。

  3. [削除] をクリックします。

gcloud

コネクタを削除するには、次の gcloud コマンドを使用します。

gcloud compute networks vpc-access connectors delete [CONNECTOR_NAME] --region [REGION]

ここで

  • [CONNECTOR_NAME] は、削除するコネクタの名前です。
  • [REGION] は、コネクタが配置されているリージョンです。

コネクタを使用するサービスの構成

コネクタを作成したら、それを使用するようにサーバーレス サービスを構成できます。コネクタを使用するサービスの構成方法は、プロダクトによって異なります。具体的な手順については、関連するガイドをご覧ください。

サポート対象のサービス

サーバーレス VPC アクセスを使用して、次のサービスから VPC ネットワークにアクセスできます。

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

サーバーレス VPC アクセス コネクタは、次のリージョンで作成できます。

  • asia-east2
  • asia-northeast1
  • asia-south1
  • australia-southeast1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west6
  • northamerica-northeast1
  • southamerica-east1
  • us-central1
  • us-east1
  • us-east4

キュレートされた IAM 役割

次の表は、サーバーレス VPC アクセスに関連付けられている Identity and Access Management(IAM)のロールを示しています。各ロールに関連付けられている権限の一覧については、IAM のドキュメントのサーバーレス VPC アクセスのロールをご覧ください。

ロール 説明
サーバーレス VPC アクセス管理者
roles/vpcaccess.admin
すべてのサーバーレス VPC アクセス リソースに対する完全アクセス権
サーバーレス VPC アクセス ユーザー
roles/vpaccess.user
サーバーレス VPC アクセス コネクタのユーザー
サーバーレス VPC アクセス閲覧者
roles/vpaccess.viewer
すべてのサーバーレス VPC アクセス リソースの閲覧者

サービス アカウント

Cloud プロジェクトでオペレーションを実行するため、サーバーレス VPC アクセス サービスはサーバーレス VPC アクセス サービス エージェント サービス アカウントを使用します。このサービス アカウントのメールアドレスは、次の形式になります。

service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com

このサービス アカウントには、デフォルトでサーバーレス VPC アクセス サービス エージェントのロール(roles/vpcaccess.serviceAgent)が設定されています。このアカウントの権限を変更すると、サーバーレス VPC アクセスのオペレーションが失敗する可能性があります。

監査ログ

サーバーレス VPC アクセスの監査ロギングの情報をご覧ください。

料金

サーバーレス VPC アクセスの料金は以下のとおりです。

リソース 料金
サーバーレス VPC アクセス コネクタ コネクタに自動的にプロビジョニングされたスループットに対して、100 Mbps あたり 1 f1-micro インスタンスとして課金されます。
サーバーレス環境から宛先への下り(外向き)ネットワーク Compute Engine ネットワーキング レートで課金

Cloud Console で請求レポートをラベルキー「serverless-vpc-access」でフィルタすることで、サーバーレス VPC アクセスの費用を確認できます。

トラブルシューティング

コネクタの作成でエラーが発生した場合は、次の方法でコネクタを再作成してください。

  • VPC ネットワーク内で予約されている既存の IP アドレスと重複しない RFC 1918 の内部 IP 範囲を指定します。
  • プロジェクトから ID serverless-vpc-access-images で Compute Engine VM イメージを使用できるように、プロジェクトに権限を付与します。これに合わせて組織ポリシーを更新する方法については、イメージ アクセスの制限の設定をご覧ください。
  • VM が IP 転送を有効にできるように constraints/compute.vmCanIpForward 組織のポリシーを設定します。

サーバーレス サービスのコネクタを指定しても、VPC ネットワーク内のリソースにアクセスできない場合は、次のようにします。

  • コネクタの IP 範囲からの上り(内向き)を拒否する、優先度が 1,000 よりも小さいファイアウォール ルールが、VPC ネットワーク上にないことを確認します。