G-genの小林です。当記事では、Google Cloud(旧称 GCP)の VPC の基本機能をご紹介します。
はじめに
Virtual Private Cloud(VPC)は、仮想ネットワークを構築するためのサービスです。Google Cloud の Compute Engine や Google Kubernetes Engine(GKE)といったサービスを使う上で重要です。VPC に所属するサービスをセキュアに使用するためには、VPC の設計が非常に重要になりますので、基本的な VPC の機能を覚えていきましょう!
また当記事では、Google Cloud と Amazon Web Services(以下、AWS)で類似の機能を並べて紹介します。AWSの VPC は知っているけど、Google Cloud の VPC がわからないという方は是非、参考にしてください。
VPC ネットワークとサブネット
VPC ネットワーク
VPC ネットワークは、プライベートな仮想ネットワークです。作成された個々のネットワークのことを指し、単にネットワークと呼ばれることもあります。
Google Cloud の VPC ネットワークの最大の特徴は、複数のリージョンをまたいだグローバルリソースである点です。AWS の VPC は、単一のリージョンに作成するリージョンリソースですが、Google Cloud の VPC ネットワークは、Google Cloud が提供するすべてのリージョンにまたがります。
また AWS では VPC 作成時に IP アドレス範囲を CIDR 形式で指定しますが、Google Cloud では VPC ネットワークは IP アドレス範囲を持ちません。VPC ネットワークの配下に作成されるサブネットが IP アドレス範囲を持ちます。
- 参考 : VPC ネットワーク
サブネット
VPC ネットワークの配下には、Compute Engine VM 等のリソースを配置するネットワーク単位であるサブネットを作成します。サブネットは、単一リージョン内に作成するリージョンリソースです。サブネットは、リージョン内のすべてのゾーンにまたがっています。
- 参考 : サブネット
イメージ図
VPC ネットワークとサブネットを模式図にすると、以下のようになります。
AWS の VPC をご存知の方のために、AWS の VPC とサブネットの関係を表した図も掲載します。
VPC の作成モード
Google Cloud では、VPC ネットワークの作成時、サブネット作成モードとして、自動モードとカスタムモードの2つから選択します。
自動モードを選択すると、Google Cloud が提供するすべてのリージョンに、所定の IP アドレス範囲のサブネットが作成されます。検証用途などの利用に最適です。
一方のカスタムモードは、自動でサブネットは作成されません。ユーザー自ら、リージョンや IP アドレス範囲を指定してサブネットを作成します。本番環境で利用する場合は、こちらが推奨です。
- 参考 : サブネット作成モード
ルート
Google Cloud では、パケットをルーティングするための経路としてルートを登録します。AWS ではサブネットごとにルートテーブルを紐づけますが、Google Cloud では VPC ネットワークが1つのルートテーブルを持ち、VPC 内のすべての VM がこのルートテーブルを参照します。
デフォルトで、すべてのサブネット同士が互いに通信できるルートと、インターネットへのルートが作成されます。そのほかのルートはユーザー自身で登録する必要があります。
また、それぞれのルートにはプライオリティを設定します。プライオリティの数字が若いルートから、優先的に評価されます。
- 参考 : ルート
Cloud NAT
外部 IP アドレスを持たないインスタンスがインターネットへのアクセスをするために利用するのが、Cloud NAT です。Cloud NAT はフルマネージドの NAT インスタンスです。
なお、AWS の場合は NAT Gateway 作成後に、ルートテーブルで NAT Gateway をターゲットとしたルートを追加する必要がありますが、Google Cloud では必要ありません。
- 参考 : Cloud NAT の概要
VPC ネットワークピアリング
VPC ネットワークピアリングは、2つの VPC ネットワーク同士を接続し、内部 IP アドレスでの接続を可能にする機能です。
AWS と同様、ピアリングは VPC ネットワークを1:1で接続します。以下のように、直接ピアリングしていない VPC ネットワーク同士はパケットが到達しません(2ホップ制限、もしくは推移的ピアリングの禁止)。
また、ピアリングする VPC ネットワーク配下のサブネットは、IP アドレス範囲が重複してはいけません。
- 参考 : VPC ネットワーク ピアリング
共有 VPC
通常、VPC ネットワークは1つのプロジェクトに閉じるリソースです。しかし共有 VPC 機能を使うと、VPC ネットワークを他のプロジェクトに共有することができます。
以下のようなユースケースが考えられます。
- ルート、ファイアウォール、Cloud VPN 等のリソースはネットワーク管理者が集中管理したい
- VM の管理権限を開発チームに与えるが、ネットワークは設定変更させたくない
こういった際に共有 VPC を使うことで、セキュアな権限設計や、ネットワークの一元管理が実現できます。
- 参考 : 共有 VPC
その他 VPC の詳細
以下の記事では、VPC の仕組みを詳細に解説しています。より詳しく知りたい場合は、参照してください。
小林 あゆみ (記事一覧)
クラウドソリューション部 営業チーム
AWSエンジニアからGoogle Cloud営業に転向
福井からリモートワーク中
趣味はMonkey125でツーリング、Netflix鑑賞、旅行