複数プロジェクトのネットワーク管理を効率化!Google Cloud 共有VPC 設計・構築ガイド
Google Cloudで複数のプロジェクトを運用する際のネットワーク管理の煩雑さにお悩みですか?本記事では、共有VPCを用いてネットワークを一元管理し、セキュリティと効率を両立させる方法を、具体的な設定手順とともに解説します。
はじめに
企業がGoogle Cloudの利用を拡大するにつれて、開発、本番、研究など、目的ごとに複数のプロジェクトを運用するケースが増えてきます。しかし、プロジェクトごとにVPCネットワークを個別に作成・管理すると、ファイアウォールルールが煩雑になったり、プロジェクト間の通信にピアリングが必要になったりと、管理コストと複雑性が増大します。
このような課題を解決するためにGoogle Cloudが提供するのが共有VPC (Shared VPC) です。共有VPCを利用すると、一つのVPCネットワークを組織内の複数のプロジェクトで共有でき、ネットワーク管理を一元化できます。この記事では、共有VPCの基本概念から、実際の構築手順、動作確認までをステップバイステップでご紹介します。
共有VPCの基本を理解する
2.1 共有VPCとは?
共有VPCは、ある一つのプロジェクト(ホストプロジェクト)が持つVPCネットワークを、他のプロジェクト(サービスプロジェクト)が利用できるようにする機能です。これにより、ネットワークに関するリソース(サブネット、ルート、ファイアウォールなど)を中央で一括管理し、各サービスプロジェクトはVMインスタンスなどのコンピューティングリソースの管理に専念できます。
2.1.1 共有VPCの主なメリット
- 中央集権型のネットワーク管理: ネットワーク管理者がホストプロジェクトでファイアウォールルールやルートを一元管理できるため、組織全体のセキュリティポリシーを統一しやすくなります。
- 管理の簡素化: プロジェクト間の通信にVPCネットワークピアリングやVPNを設定する必要がなく、シンプルで安全な相互通信が可能です。
- コストとリソースの節約: Cloud NATやVPNゲートウェイなどのネットワークリソースをホストプロジェクトに集約できるため、コスト削減につながります。
2.2 共有VPCの主要な構成要素
共有VPCは、役割の異なる2種類のプロジェクトで構成されます。
- ホストプロジェクト: VPCネットワーク、サブネット、ファイアウォールルールなどの共有ネットワークリソースを所有し、管理するプロジェクトです。組織に一つまたは複数設定できます。
- サービスプロジェクト: ホストプロジェクトのVPCネットワークに接続して利用するプロジェクトです。サービスプロジェクトの管理者は、ホストプロジェクトのサブネットを使用してVMインスタンスなどのリソースを作成できますが、ネットワーク自体を変更することはできません。
実践!共有VPCの設定手順
3.1 今回の構成ゴール
今回は、ホストプロジェクトで共有VPCを有効化し、サービスプロジェクトで作成したVMインスタンスが、ホストプロジェクトのサブネットを利用してオンプレミス環境と通信する構成を構築します。

3.2 ホストプロジェクトの設定
サービスプロジェクトに共有するサブネットを、東京リージョンと大阪リージョンに1つずつ作成します。
3.2.1 共有サブネットの作成
- ★東京リージョンのサブネット作成
- hisato@cloudshell:~ (jithub-414902)$ gcloud compute networks subnets create sharedsubnet-tyo01
- --network=mainvpc
- --region=asia-northeast1
- --range=10.24.11.0/24
- --enable-private-ip-google-access
- ★大阪リージョンのサブネット作成
- hisato@cloudshell:~ (jithub-414902)$ gcloud compute networks subnets create sharedsubnet-osa02
- --network=mainvpc
- --region=asia-northeast2
- --range=10.24.12.0/24
- --enable-private-ip-google-access
作成後、サブネットが正しく追加されたことを確認します。

3.2.2 共有VPCの有効化とサービスプロジェクトの接続
次に、このプロジェクトをホストプロジェクトとして設定します。
[VPC ネットワーク] - [共有VPC] を選択し、[共有VPCを設定] をクリックします。

「ホストプロジェクトを有効にする」画面で内容を確認し、[有効にして続行] をクリックします。

「サービスプロジェクトの接続」画面で、このVPCを利用させたいサービスプロジェクト(今回はSpokeAとSpokeB)を追加します。


3.2.3 サブネットへのアクセス権付与
最後に、どのサブネットをサービスプロジェクトに共有するかを選択します。今回は先ほど作成した2つのサブネット (sharedsubnet-tyo01, sharedsubnet-osa02) へのアクセスを許可し、[保存] をクリックします。

設定が完了すると、共有VPCが有効になり、選択したサブネットがサービスプロジェクトに共有されている状態が確認できます。


3.3 サービスプロジェクトの設定
次に、サービスプロジェクト(今回はSpokeAプロジェクト)側で、共有されたネットワークを利用してVMインスタンスを作成します。
3.3.1 共有ネットワークを利用したVMインスタンスの作成
SpokeAプロジェクトに切り替え、[Compute Engine] - [VMインスタンス] からインスタンスを作成します。

名前やマシンタイプなどを設定します。



ネットワーキングの項目で、ネットワークインターフェースを編集します。ここで、「共有ネットワーク(共有元のホストプロジェクト)」 を選択し、ホストプロジェクトから共有されたサブネット(sharedsubnet-tyo01)を選択します。外部IPは「なし」とします。

同様の手順で、大阪リージョンにも共有サブネット(sharedsubnet-osa02)を利用したインスタンスを作成します。

動作確認
4.1 サービスプロジェクトのVMへの接続と疎通確認
サービスプロジェクト SpokeA に作成したVMインスタンス (instance-sharedwin01) に接続し、意図通りにホストプロジェクトのネットワークに接続できているか確認します。
IAP (Identity-Aware Proxy) を利用して、ローカルPCからVMインスタンスへのRDP接続トンネルを確立します。
- C:>gcloud compute start-iap-tunnel instance-sharedwin01 3389 --local-host-port=localhost:0 --zone=asia-northeast1-c
- Picking local unused port [50690].
- Listening on port [50690].
リモートデスクトップで localhost:50690 に接続します。


VMにログイン後、コマンドプロンプトでIPアドレスを確認します。ホストプロジェクトのサブネット 10.24.11.0/24 からIPアドレス(10.24.11.3)が割り当てられていることがわかります。
最後に、ホストプロジェクトのVPCを経由して、オンプレミス環境のサーバー(192.168.10.91)へ ping を実行します。
- C:>ipconfig
- Windows IP Configuration
- IPv4 Address. . . . . . . . . . . : 10.24.11.3
- Subnet Mask . . . . . . . . . . . : 255.255.255.0
- Default Gateway . . . . . . . . . : 10.24.11.1
- C:>ping 192.168.10.91
- Pinging 192.168.10.91 with 32 bytes of data:
- Reply from 192.168.10.91: bytes=32 time=32ms TTL=61
- Reply from 192.168.10.91: bytes=32 time=11ms TTL=61
- Reply from 192.168.10.91: bytes=32 time=16ms TTL=61
- Reply from 192.168.10.91: bytes=32 time=10ms TTL=61
- Ping statistics for 192.168.10.91:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 10ms, Maximum = 32ms, Average = 17ms

まとめ
本記事では、共有VPCを利用することで、Google Cloud上で効率的かつ安全にリソースを共有できることを、具体的な手順を交えて解説しました。サービスプロジェクトのリソースがホストプロジェクトのIPアドレス範囲からIPを割り当てられ、オンプレミス環境まで通信できることを確認しました。
共有VPCは、ネットワーク管理の効率化とセキュリティ対策の両立を目指す組織にとって、非常に有用なツールとなります。組織のクラウド環境の最適化に大きく貢献するため、ぜひ導入を検討してみてください。
富士ソフトでは、お客様の組織構造やガバナンス要件に合わせた、最適なGoogle Cloud Platformのアーキテクチャ設計をご支援しています。共有VPCの導入や、マルチプロジェクト環境の管理でお困りの際は、ぜひお気軽にご相談ください。

