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

サーバーレス VPC アクセスを使用すると、App Engine スタンダード環境と Cloud Functions から VPC ネットワークに直接接続できます。この接続により、App Engine スタンダード環境アプリと Cloud Functions が、内部 IP アドレスを介して VPC ネットワーク内のリソースにアクセスできるようになります。内部 IP アドレスを使用すると、Google Cloud サービス間の通信のレイテンシが改善され、内部リソースがインターネットに公開されることがなくなります。

サーバーレス VPC アクセスでは、アプリまたは関数のみが、VPC ネットワーク内のリソースにリクエストを送信し、それらのリクエストに対するレスポンスを受信できます。VM がアプリまたは機能へのリクエストを開始する反対方向の通信では、アプリまたは機能のパブリック アドレスを使用する必要があります。詳細については、限定公開の Google アクセスをご覧ください。

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

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

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

また、コネクタを作成するときに、コネクタを介して送信されるトラフィック向けに、ソースアドレスに使用する IP 範囲をコネクタに割り当てます。この IP 範囲は、VPC ネットワークでまだ予約されていない CIDR /28 範囲である必要があります。

サーバーレス VPC アクセスは、コネクタ経由で送信されたトラフィック量に応じて、100 Mbps 単位で自動的にコネクタのスループットをプロビジョニングします。自動的にプロビジョニングされるスループットはスケールアップのみであり、スケールダウンは行われません。少なくとも 200 Mbps のコネクタがプロビジョニングされます。スループットが 1,000 Mbps を超えることはできません。コネクタの作成時にスループットの下限と上限を構成できます。

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

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

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

  • コネクタは、そのコネクタに接続するアプリまたは関数と同じプロジェクトおよび同じリージョンに配置する必要があります。コネクタを作成できるリージョンのリストについては、サポートされているリージョンを参照してください。
  • 内部 IP アドレスへのトラフィックはコネクタ経由で、パブリック 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 アドレス予約と重複してはいけません。

  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 アドレス予約と重複してはいけません。

    より詳しい情報とオプションの引数については、gcloud のリファレンスをご覧ください。

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

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

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

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

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

コネクタの削除

コネクタを削除する前に、まだそれを使用しているサービスがないことを確認してください。コネクタの切断については、App Engine または Cloud Functions のドキュメントをご覧ください。

Console

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

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

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

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

gcloud

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

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

ここで

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

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

コネクタを作成したら、App Engine または Cloud Functions で、それを使用するアプリまたは関数を構成できます。コネクタは、それに接続するアプリまたは関数と同じリージョンに配置する必要があります。同じリージョンに複数のアプリや関数がある場合は、同じコネクタを使用できます。たとえば、同じリージョンにあるアプリと関数が同じ VPC ネットワークと通信する必要がある場合、コネクタを共有できます。

コネクタを使用するサービスの構成方法は、プロダクトによって異なります。詳しい手順については、関連プロダクトのドキュメントをご覧ください。

サポート対象のサービス

サーバーレス VPC アクセス コネクタをサポートするサービスは次のとおりです。

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

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

  • us-central1
  • us-east1
  • us-east4
  • europe-west1
  • europe-west2
  • europe-west3
  • asia-northeast1
  • asia-east2
  • asia-south1

キュレートされた IAM 役割

次の表は、サーバーレス VPC アクセスに関連付けられている Cloud Identity and Access Management(Cloud IAM)役割と、各役割に含まれている権限を示しています。

役割 説明 権限
サーバーレス VPC アクセス管理者
roles/vpcaccess.admin
すべてのサーバーレス VPC アクセス リソースに対する完全アクセス権 vpcaccess.connectors.get
vpcaccess.connectors.list
vpcaccess.connectors.use
vpcaccess.connectors.create
vpcaccess.connectors.delete
vpcaccess.operations.get
vpcaccess.operations.list
vpcaccess.locations.list
サーバーレス VPC アクセス ユーザー
roles/vpcaccess.user
サーバーレス VPC アクセス コネクタのユーザー vpcaccess.connectors.get
vpcaccess.connectors.list
vpcaccess.connectors.use
vpcaccess.operations.get
vpcaccess.operations.list
vpcaccess.locations.list
サーバーレス VPC アクセス閲覧者
roles/vpcaccess.viewer
すべてのサーバーレス VPC アクセス リソースの閲覧者 vpcaccess.connectors.get
vpcaccess.connectors.list
vpcaccess.operations.get
vpcaccess.operations.list
vpcaccess.locations.list

監査ロギング

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

料金

サーバーレス VPC アクセスの料金は以下のとおりです。サーバーレス VPC アクセスがベータ版の間または一般提供時に、料金は変更される場合があります。

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

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