共有 VPC ネットワーク上での App Engine フレキシブル環境の使用

App Engine フレキシブル環境では、サービスのインスタンスをデプロイするネットワークを指定できます。このページでは、共有 VPC ネットワーク上で App Engine フレキシブル環境を使用するようにプロジェクトを構成する方法について説明します。

共有 VPC ネットワークの設定方法の詳細については、共有 VPC のプロビジョニングをご覧ください。

共有 VPC を使用する App Engine フレキシブル環境の設定

App Engine フレキシブル環境のインスタンスを共有 VPC ネットワークにデプロイするには、次の 3 つのステップが必要です。

  1. 共有 VPC ネットワーク上で App Engine フレキシブル環境のトラフィックを許可するファイアウォール ルールを作成する

  2. 共有 VPC サービス プロジェクトのサービス アカウントに適切な権限を付与する

  3. 共有 VPC ネットワークを使用するように App Engine サービスを構成する

共有 VPC ネットワークへのトラフィックを許可する

共有 VPC ネットワーク上で App Engine フレキシブル環境へのトラフィックを許可するには、共有 VPC 管理者が共有 VPC ホスト プロジェクト内でファイアウォール ルールを作成する必要があります。このファイアウォール ルールで、フレキシブル環境への配信とヘルスチェック トラフィックを許可します。

ファイアウォール ルールには次のプロパティを指定する必要があります。

  • ネットワーク: 共有 VPC ネットワークの名前
  • トラフィックの方向: 上り
  • 一致したときのアクション: 許可
  • ターゲット: 指定されたターゲットタグ
  • ターゲットタグ: aef-instance
  • ソースフィルタ: IP 範囲
  • ソース IP の範囲: 35.191.0.0/16130.211.0.0/22
  • プロトコルとポート: 指定されたプロトコルとポート
    • tcp: 8443、10402

共有 VPC 管理者は、Google Cloud Platform Console または gcloud コマンドライン ツールを使用してファイアウォール ルールを作成できます。

Console

GCP Console でファイアウォール ルールを作成するには:

  1. ファイアウォール ルールの作成ページに移動します。

    ファイアウォール ルールの作成

  2. [名前] フィールドと [説明] フィールドに、ファイアウォール ルールの名前と説明をそれぞれ入力します。

  3. 上記で指定したとおりに必須プロパティを入力します。

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

gcloud

gcloud コマンドライン ツールでファイアウォール ルールを作成するには、次のコマンドを実行します。

gcloud compute firewall-rules create NETWORK_NAME-flex-firewall \
--project HOST_PROJECT_ID \
--network NETWORK_NAME \
--allow tcp:10402,tcp:8443 \
--target-tags aef-instance \
--source-ranges 35.191.0.0/16,130.211.0.0/22 \
--description 'Allows traffic to App Engine flexible environment'

ここで

  • NETWORK_NAME は、共有 VPC ネットワークの名前です。
  • HOST_PROJECT_ID は、共有 VPC ホスト プロジェクトの GCP プロジェクト ID です。

権限の設定

サービス プロジェクトで App Engine フレキシブル環境インスタンスをネットワークにデプロイできるようにするには、共有 VPC 管理者が次の 2 つのサービス アカウントに Compute ネットワーク ユーザーの役割を付与する必要があります。

  • Google API サービス エージェント(PROJECT_NUM@cloudservices.gserviceaccount.com
  • App Engine フレキシブル環境サービス エージェント(service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com

Console

GCP Console で権限を設定するには:

  1. サービス プロジェクトの IAM 設定ページに移動し、[プロジェクト番号] の値をメモします。

    IAM 設定に移動

  2. ホスト プロジェクトの [IAM] ページに移動します。

    IAM に移動

  3. [追加] をクリックします。

  4. [新しいメンバー] フィールドに、次のメールアドレスをカンマで区切って入力します。PROJECT_NUM の部分は、ステップ 1 で取得したプロジェクト番号に置き換えます。

    • PROJECT_NUM@cloudservices.gserviceaccount.com
    • service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
  5. [役割を選択] プルダウンで、[Compute Engine] > [Compute ネットワーク ユーザー] を選択します。

  6. [保存] をクリックします。

gcloud

  1. App Engine アプリがデプロイされているサービス プロジェクトのプロジェクト番号を取得するため、次のコマンドを実行します。SERVICE_PROJECT_ID の部分は、サービス プロジェクトのプロジェクト ID に置き換えます。

    export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
    
  2. サービス プロジェクトの Google API サービス エージェントに、ホスト プロジェクトの compute.networkUser の役割を付与します。

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member=serviceAccount:$SERVICE_PROJECT_NUM@cloudservices.gserviceaccount.com \
    --role=roles/compute.networkUser
    

    HOST_PROJECT_ID は、共有 VPC ホスト プロジェクトの GCP プロジェクト ID です。

  3. サービス プロジェクトの App Engine フレキシブル環境サービス エージェントに、ホスト プロジェクト内での compute.networkUser の役割を付与します。

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member=serviceAccount:service-$SERVICE_PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com \
    --role=roles/compute.networkUser
    

サービスを構成してデプロイする

ファイアウォール ルールと適切な権限を設定したら、新しいサービスまたは既存の App Engine フレキシブル環境サービスを共有 VPC ネットワークにデプロイできます。

  1. app.yaml ファイルで、ネットワーク設定name フィールドを使用して、共有 VPC ネットワークの完全修飾名を指定します。

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
    

    ここで

    • HOST_PROJECT_ID は、共有 VPC ホスト プロジェクトの GCP プロジェクト ID です。
    • NETWORK_NAME は、共有 VPC ネットワークの名前です。

    サービスを構成して SUBNETWORK_NAME という名前のサブネットワークの一部にするには、subnetwork_name フィールドも設定します。

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
      subnetwork_name: SUBNETWORK_NAME
    
  2. サービスをデプロイします。

    gcloud app deploy
    

構成の確認

App Engine フレキシブル環境サービスが共有 VPC ネットワーク上で実行されていることを確認するには、GCP Console の App Engine の [バージョン] ページでバージョン構成を表示します。

  1. App Engine の [バージョン] ページに移動します。

    App Engine の [バージョン] に移動

  2. 右側の [構成] 列で、目的のバージョンの [表示] をクリックします。

  3. 構成に含まれるネットワーク名が共有 VPC ネットワークの名前であることを確認します。

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

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

PHP の App Engine フレキシブル環境に関するドキュメント