web-dev-qa-db-ja.com

Google Cloud:共有VPCとApp Engine

次の設定でGoogleCloudを使用しています。

共有VPCホストプロジェクト:「app1」と呼ばれるサブネットを持つ「production」と呼ばれるネットワークがあり、他のすべてのプロジェクト間で共有されます。

App1プロジェクト:VMインスタンスとApp Engineがノードで実行されています。VMインスタンスは、共有VPCネットワークのサブネットに直接接続されています。

問題は、AppEngineを同じネットワークに接続することが不可能に見えることです。 app.yamlファイルにパラメーターを挿入すると、ネットワークが見つからなかったと表示されます(現在のプロジェクトのみを検索します)。

では、App EngineインスタンスをVMに接続するにはどうすればよいですか?ネットワークピアリングを作成しようとしましたが、成功しませんでした。

1
John White

最後に、AppEngine Flexで可能です: https://cloud.google.com/appengine/docs/flexible/nodejs/using-shared-vpc

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

ネットワーク:名前:projects/Host_PROJECT_ID/global/networks/NETWORK_NAME

どこ

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

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

ネットワーク:名前:projects/Host_PROJECT_ID/global/Networks/NETWORK_NAME subnetwork_name:SUBNETWORK_NAME

1
Maciek Sawicki

達成したいことについて調査した後、確認できるいくつかのポイントがあります。

  • まず、app1サブネットワークがApp Engineアプリケーションと同じリージョンにあることを確認してくださいデプロイしようとしています。 ドキュメントで に記載されているように、サブネットは接続しようとしているアプリケーションと同じリージョンにある必要があることに注意してください。そうしないと、subnet not foundエラーが表示される可能性があります。 これらの手順 ;のように、サブネットでリージョン(例:us-central)を指定できます。 App Engineアプリケーションが実行されているリージョン(この例ではus-central)と同じである必要があります。アプリケーションの作成時に設定したアプリのリージョンを変更することはできないため、アプリの場所を確認するには、 App Engine Dashborard に移動するか、コマンドgcloud app describeを実行します。
  • また、試してみてください VPCピアリング。これは、Compute EngineインスタンスをApp Engineアプリケーションに接続するのに適しています。これを行うには、 このセットアップウォークスルー で詳しく説明されている手順に従うことができます。
1
dsesto

残念ながら、共有VPCを介して共有されているネットワークにGoogle App Engine(GAE)を接続することはできません。 共有VPC ドキュメントから:

  • 共有VPCネットワークに関連付けられているサービスプロジェクトのGAEフレキシブルはサポートされていません。

提案されているように、 VPCピアリング を使用するか、プロジェクト間で VPN接続 をセットアップしてGAEをVMに接続することができます

1
harls