VPC ネットワークへの接続

サーバーレス VPC アクセスを使用すると、App Engine アプリから、Compute Engine VM インスタンス、Cloud Memorystore インスタンス、Cloud SQL インスタンス、その他のリソースに、内部 IP アドレスで直接接続できます。これは次のような場合に役立ちます。

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

サーバーレス VPC アクセスを使用すると、アプリから内部 IP アドレス(RFC 1918 で定義)に送信されるリクエストは、サーバーレス VPC アクセス コネクタ経由で VPC ネットワークにルーティングされます。パブリック IP アドレスに送信されるリクエストはインターネット経由でルーティングされます。内部 IP アドレスは Google Cloud Platform サービスからのみアクセス可能であるため、内部リソースを公共のインターネット接続を経由させずに済み、サービス間の通信のレイテンシも短縮できます。

サーバーレス VPC アクセスでは、Cloud VPNVPC ネットワーク ピアリングを使用して接続された VPC ネットワークとの通信がサポートされています。レガシー ネットワーク共有 VPC ネットワークはサポートされていません。サーバーレス VPC アクセス コネクタには月額料金がかかります。詳細については、サーバーレス VPC アクセスの料金をご覧ください。

VPC ネットワークへの接続

App Engine アプリを VPC ネットワークに接続するには、次の 2 つの手順を行う必要があります。

  1. サーバーレス VPC アクセス コネクタを作成する
  2. 作成したコネクタを使用するように App Engine サービスを構成する

サーバーレス VPC アクセス コネクタは、それを使用するアプリと同じプロジェクトとリージョン内に配置する必要がありますが、異なるリージョンのリソースにトラフィックを送信できます。同じコネクタを複数の App Engine サービスで使用できます。コネクタに関する詳細については、サーバーレス VPC アクセスの構成をご覧ください。

コネクタを作成する

GCP Console または gcloud コマンドライン ツールを使用してコネクタを作成できます。

Console

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

    サーバーレス VPC アクセスに進む

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

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

  4. [リージョン] フィールドで、アプリを配置するリージョンを選択します。

  5. [ネットワーク] フィールドで、接続先の VPC ネットワークを選択します。

  6. [IP 範囲] フィールドに、未使用の CIDR /28 IP 範囲を入力します。この範囲内のアドレスが、コネクタを介して送信されるトラフィックの送信元アドレスとして使用されます。この IP 範囲は、VPC ネットワーク内の既存の IP アドレス予約と重複してはいけません。

  7. (省略可)[最小スループット] フィールドと [最大スループット] フィールドに値を設定して、コネクタのスループットを制御できます。

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

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

gcloud

  1. 次のコマンドを使用して、プロジェクトに対してサーバーレス VPC アクセス API を有効にします。

    gcloud services enable vpcaccess.googleapis.com
    
  2. コネクタを作成します。

    gcloud beta 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 アドレス予約と重複してはいけません。
  3. 使用する前に、コネクタが READY 状態になっていることを確認します。

    gcloud beta compute networks vpc-access connectors describe CONNECTOR_NAME --region REGION
    

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

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

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

コネクタを使用するようにアプリを構成する

サーバーレス VPC アクセス コネクタを作成したら、そのコネクタを使用するように App Engine アプリ内のそのサービスを構成できます。同じコネクタを複数のサービスで使用できます。

コネクタをアプリ内のサービスに接続するには:

  1. サービスの <vpc-access-connector> ファイルに appengine-web.xml セクションを追加します。

    <vpc-access-connector>
      <name>projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME</name>
    </vpc-access-connector>
    

    PROJECT_ID は GCP のプロジェクト ID です。REGIONCONNECTOR_NAME はそれぞれコネクタの作成時に選択したリージョンと名前です。コネクタとアプリは同じリージョンに配置する必要があります。

  2. サービスをデプロイします。

    gcloud beta app deploy WEB-INF/appengine-web.xml
    

サービスをデプロイすると、内部 IP アドレスへのリクエストを送信して VPC ネットワーク内のリソースにアクセスできるようになります。

コネクタとアプリの接続を解除する

アプリを VPC ネットワークに接続する必要がなくなった場合は、サーバーレス VPC アクセス コネクタとの接続を解除できます。

コネクタとサービスの接続を解除するには:

  1. サービスの appengine-web.xml ファイルから <vpc-access-connector> セクションを削除します。

  2. サービスを再デプロイします。

    gcloud app deploy WEB-INF/appengine-web.xml
    

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Java 8 の App Engine スタンダード環境