Network Connectivity Centerを徹底解説!

記事タイトルとURLをコピーする

G-gen の杉村です。Google Cloud (旧称 GCP) の VPC やオンプレミス (専用線・VPN) ネットワークの間でハブアンドスポーク構成を実現するためのフルマネージドサービスである Network Connectivity Center をご紹介します。

概要

Network Connectivity Center とは

Network Connectivity Center とは、Google Cloud の VPC やオンプレミス (専用線・VPN) ネットワークの間でハブアンドスポーク・アーキテクチャを構成するためのフルマネージドサービスです。

ハブには、スポークとして「Cloud VPN」「Cloud Interconnect」「Compute Engine VM のルータ仮想アプライアンス (VPC)」を接続できます。これらで接続されたネットワークが、ハブを通して経路交換し、フルメッシュ接続ができるようになります。

ハブアンドスポークとは

ハブアンドスポーク (Hub and Spoke) とは、ネットワークのトポロジを表現する用語です。

スポークとは車輪における輻 (や) の意味で、車輪の中心から輪に向けて放射状に伸びる棒のことです。

車輪の輻 (や)

これに見立てて、ハブとなるノードを中心にして放射状にネットワークが配置されるトポロジをハブアンドスポークアーキテクチャと呼びます。

ネットワークにおけるハブアンドスポーク

アーキテクチャ例

Network Connectivity Center を使うと、以下のような構成を取ることができます。Google Cloud の VPC である Network A と、オンプレミス拠点であるサイト A、B、C を接続してフルメッシュ通信を実現しています。

サンプルアーキテクチャ

この図におけるハブとスポークの表現の方法は、先に掲げた「ネットワークにおけるハブアンドスポーク」の図と比べて、直感的ではないかもしれません。これは「Network Connectivity Center のハブとは、パケットが実際に通過する訳ではなく、スポーク間で経路交換をさせるためにグルーピングするためのリソースである」という点に起因します。詳細は後述します。

料金

Network Connectivity Center の料金は以下の2軸で決まります。

  • スポークの利用料金
  • データ転送料金

前者のスポークの利用料金は、スポークが存在する時間に対する従量課金です。ただし無料枠として3つの VPN スポークと3つの Cloud Interconnect スポークは無料です。それぞれ4つめ以降は、どのリージョンでも1スポークあたり一律 $0.075/h で、31日間ある月なら $55.8/月 の課金が発生します (2023年7月現在の単価)。

後者のデータ転送料金は、Google Cloud と外部ネットワークの間で流れるデータサイズに対して課金されます。単価は地域や総データサイズによって異なりますが、例として東京リージョンの Google Cloud と日本国内の外部ネットワークの間における0〜1TiBの範囲内での単価は $0.14/GiB です (2023年7月現在の単価)。

さらに2023年7月現在ではまだ課金が開始されていませんが、将来的に「Advanced Data Networking (ADN)」料金の課金が予告されています。これはスポークからハブを介して処理されたデータサイズへの課金のことで、$0.02/GiB が予告されています。

最新の料金表や計算例については、以下のドキュメントをご参照ください。

AWS Transit Gateway との違い

他のクラウドサービス経験者が仕様を理解しやすくするために、Amazon Web Services (AWS) の AWS Transit Gateway との違いを簡記します。

Network Connectivity Center と AWS Transit Gateway は共に複数のネットワークを接続してハブアンドスポーク構成を実現するためのフルマネージドサービスです。

AWS Transit Gateway では細かいルーティングの制御ができること、仮想アプライアンスを要せずして複数 VPC を接続できる点が違いです。

観点 Network Connectivity Center AWS Transit Gateway
対応スポーク 専用線 / VPN / VPC 専用線 / VPN / VPC
ルーティング フルメッシュ接続が前提 (経路の再広報のみ) AWS Transit Gateway 自体がルートテーブルを持つ。静的ルートを含む細かいルート設計が可能
課金 時間(h)とデータ容量(GiB) 時間(h)とデータ容量(GiB)
その他 オンプレを含むサイト間のフルメッシュ接続に複数 VPC を追加する場合は Router アプライアンスが必須 -

コンポーネント

概要

Network Connectivity Center のコンポーネントには大きく分けて「ハブ」と「スポーク」が存在します。

ハブは、Network Connectivity Center で構築するハブアンドスポークアーキテクチャのネットワークの中心となるコンポーネントです。

ハブは1つのプロジェクトに所属します。また、グローバルリソース (特定のリージョンに所属しないリソース) です。ハブにはほとんど設定項目が存在せず、スポークをグルーピングするためのリソースと考えて差し支えありません。

一方の スポークは、ハブと外部ネットワークを繋ぐリソースです。リージョンリソースであり、一つのVPC ネットワークに所属します。

スポークの種類 (タイプ)

スポークには以下の種類 (タイプ) があります。

No 名称 説明 ユースケース
1 VPN トンネル Cloud VPN (HA VPN) を接続するためのスポーク サイト間データ転送
2 VLAN アタッチメント Cloud Interconnect 接続するためのスポーク サイト間データ転送
3 Router アプライアンス 仮想ルータアプライアンスで確立された VPN を接続したり VPC 同士を接続するためのスポーク サイト間データ転送 / サイト-to-クラウド接続 / VPC 間接続
4 VPC VPC 同士を接続するためのスポーク VPC 間接続

上記のようなスポークを作成し「サイト間データ転送」オプションを有効化することで、スポーク同士での通信が可能になります。

各スポークタイプの概要

VPN トンネル タイプのスポークは、その名の通り Cloud VPN トンネルを通して外部ネットワークと接続します。なお Cloud VPN には「Classic VPN」とより新しい「HA VPN」がありますが、後者のみが利用可能です。

VLAN アタッチメント タイプも同様に、Cloud Interconnect リソースである VLAN アタッチメントを通して外部ネットワークと接続します。

Router アプライアンス は、仮想ルータのアプライアンス (Compute Engine VM) を指しています。このスポークを使うパターンは後述します。ルータアプライアンスは、Google が指定する特定のサードパーティが公開するマシンイメージからデプロイする必要があります。

VPC タイプのスポークは、その名の通り複数 VPC 間を接続するためのスポークです。他組織・他プロジェクトの VPC 同士も接続が可能です。ただしこの VPC タイプのスポークを持つハブは、その他のタイプのスポークを持てなくなり、VPC 間接続専用になります。

サイト間データ転送

概要と制限事項

スポークでサイト間データ転送を有効化すると、同じハブに接続されたスポーク同士の間で BGP による経路交換が行われ、フルメッシュの相互通信が可能になります。

ただしあるハブでサイト間データ転送を行うには、全てのスポークリソース (VPN トンネル、VLAN アタッチメント、アプライアンス VM) が同じ VPC に所属している必要があります。

またサイト間データ転送は使えるリージョンが制限されています。以下の国の範囲内のリージョンでのみ、使用可能です。

  • 日本
  • オーストラリア
  • インド
  • 英国
  • 米国

具体的なリージョン名は以下のドキュメントにリストされています。

その他の制限事項や考慮事項は、以下を参照してください。

経路交換とトラフィック

サイト間データ転送が複数スポークで有効化されると、各スポークが BGP で受け取った経路が Network Connectivity Center により全スポークに再広報されます。これによりスポーク同士がフルメッシュでトラフィックをやりとりできるようになります。

実際にパケットがハブを通るわけではなく、Google Cloud の内部ネットワークで折り返して、スポーク間で直接トラフィックがやりとりされます。

経路交換とトラフィック

AS 番号

サイト間データ転送では各ネットワークは BGP を用いて経路交換するため、以下の AS 番号 (ASN) の要件に従う必要があります。

  • 単一ハブに紐づく Cloud Router は全て同じ AS 番号
  • 各スポーク側は、単一スポーク内では同じ AS 番号
  • Cloud Router と各スポークは、重複しない AS 番号

AS 番号 (ASN) の設計

VPC 間接続 (VPC スポーク)

概要

VPC タイプのスポーク を用いることで、VPC 間のフルメッシュ接続を実現できます。異なる組織・異なるプロジェクトの VPC ネットワーク同士を接続することも可能です。

現在では IPv4 アドレスのみに対応しています。エクスポートフィルタにより特定の IP レンジのみルート交換を除外することも可能です。これにより特定のサブネットだけをフルメッシュ接続から除外することが可能になります。

なお VPC スポークを作ったハブでは、VPC スポーク以外のタイプのスポーク (VPN トンネル, VLAN アタッチメント, Router アプライアンス) が使用不可になるという点に注意が必要です。つまりオンプレを含むフルメッシュのサイト間通信構成にはこの VPC スポークは使えません。

VPC スポークを使ったフルメッシュ接続

他のプロジェクトとの接続

VPC タイプのスポークでは、異なる組織・異なるプロジェクトの VPC ネットワーク同士を接続することも可能です。

ハブを持つプロジェクトは別のプロジェクトで VPC スポークが作られた場合、作成時は、スポークが非アクティブ状態になります。ハブ側の管理者が承認して初めて、スポークが有効化されます。

VPC ネットワークピアリングとの違い

異なる VPC ネットワーク同士の接続は、Network Connectivity Center を使わなくても VPC ネットワークピアリング を用いることで実現できます。しかし VPC ネットワークピアリングは VPC ネットワーク同士をピアツーピアで繋ぐ機能のため、VPC の数を n とすると n(n-1)/2 のピアリングが必要になります。VPC の数が多くなればなるほど各種上限への抵触リスクと管理オーバヘッドが上昇します。

Network Connectivity Center の VPC スポークを使えば、VPC ネットワークをハブに接続することで容易にフルメッシュ接続を実現できます。また、VM インスタンス数の制限もありません。VPC ネットワークピアリングとの差異に関するその他の情報は以下の公式ガイドをご参照ください。

VPC ネットワークピアリングとの違い

VPC ネットワークピアリングとの推移的接続

ある VPC が VPC ネットワークピアリング経由で受け取ったルートは、Network Connectivity Center へは再広報されません。この仕様により、例えば Network Connectivity Center を経由して他の VPC と接続された Private Service Access (Cloud SQL や Memorystore、Cloud Build などがホストされる Google 管理ネットワークへの接続経路) への推移的接続を行うことはできません。

VPC ネットワークピアリングへの推移的接続

制限

代表的な仕様上の制限等を紹介します。全量は公式ドキュメントをご参照ください。

  • 構成の制限
    • VPC スポークを作ったハブでは、VPC スポーク以外のタイプのスポーク (VPN トンネル, VLAN アタッチメント, Router アプライアンス) が使用不可
    • VPC ネットワークピアリング同士で接続されている2つの VPC ネットワークは、同じ Network Connectivity Center ハブには接続できない
    • 同じハブに接続する VPC 間では IP アドレスの重複は不可 (エクスポートフィルタで除外すれば可)
    • エクスポートフィルタは VPC 作成時のみ指定可能で、作成後は変更できない
  • 通信仕様の制限
    • ハブ経由での VPC ネットワークピアリングへの推移的接続は不可
    • ハブ経由での VPC 間の静的・動的ルート交換は不可
    • ハブ経由で他の VPC の 内部 Application Load Balancer への接続は不可
  • 数量の制限 (割り当てと制限)
    • スポークあたりエクスポートフィルタで指定可能なレンジは 16 個まで
    • プロジェクトあたりの VPC スポーク数の最大値 : 1,000
    • ハブあたりのアクティブな VPC スポーク数の最大値 : 250

Router アプライアンスを使った構成

概要

Router アプライアンスタイプのスポークの用途は最も分かりづらいかもしれません。以下のような用途で使われます。

  • オンプレミス拠点と VPC を接続 (サイト-to-クラウド接続)
  • VPC 間接続

Router アプライアンスタイプのスポークは、Compute Engine VM で動作する仮想ルータアプライアンスをベースリソースとします。

仮想ルータは Google Cloud の指定するサードパーティのイメージファイルから起動します。デプロイされた仮想ルータは Cloud Router と経路交換を行うことができ、これにより他のスポークとの経路交換を実現できます。サードパーティは Cisco、Fortinet、Palo Alto Networks などが対応しており、以下の一覧で確認できます。

オンプレミス拠点と VPC を接続 (サイト-to-クラウド接続)

オンプレミス拠点と複数 VPC の間で経路を交換し、フルメッシュ接続を行うために Router アプライアンスタイプのスポークを利用できます。

複数 VPC にまたがる Router アプライアンス

Compute Engine VM は複数の VPC ネットワークにまたがってネットワークインターフェイスを持つことができます。これにより仮想ルータ VM は複数 VPC ネットワーク間でパケットのルーティングを行うことができます。

またこの図では、Router アプライアンスがオンプレミスサイトとの IPSec VPN を確立しており、オンプレミスのルータとの経路交換も行っています。仮想ルータは Cloud Router から VPC のプレフィクスを学習して、BGP を使って経路交換を行います。

VPC 間接続

異なる複数の VPC ネットワーク間で接続を確立するために Router アプライアンスを使う方法も紹介されています。

VPC 間のトポロジ

監視・運用

モニタリング指標

Network Connectivity Center のモニタリング指標は Cloud Monitoring で自動的に取得されます。

各スポークにおける上り・下りのバイト数が主です。また各スポーク (VPC や Cloud VPN、Cloud Interconnect) の情報は、各サービス側のメトリクスを参照します。

監査ログ

Network Connectivity Center からは Cloud Logging に監査ログが送信されます。設定変更 (ハブやスポークの作成・更新・削除) などが記録され、Cloud Logging のメトリクスエクスプローラで閲覧することができます。

Cloud Logging については以下もご参照ください。

blog.g-gen.co.jp

補足事項・留意点

可用性

スポーク間を通るパケットは、実際に Network Connectivity Center のハブを通るわけではありません。Network Connectivity Center はあくまで経路交換を実現する仕組みであり、実際のパケットは Google Cloud の内部ネットワークで折り返してスポーク同士で直接やりとりされます。そのため、スポークリソース (Cloud VPN / Cloud Intercconnect / Router アプライアンス) の可用性が重要になります。

それぞれの可用性の考え方は、以下をご参照ください。

また Router アプライアンスを使うケースでのアーキテクチャ例は以下のドキュメントでも示されています。

Network Connectivity Center 自体はルート交換を司るため、それ自体の可用性も重要です。以下のページで SLA が公開されています。

パフォーマンス

サイト間 (スポーク同士) のデータ転送のパフォーマンスはベストエフォートであり、レイテンシや帯域は保証されません。

サイト間データ転送における通信制御

Network Connectivity Center のサイト間データ転送はフルメッシュ接続が原則です。

特定のサイトから特定の VPC への通信を制御したい場合などは、オンプレミス側であればオンプレミス側のファイアウォール、VPC 側であれば VPC ファイアウォールルール / ポリシーで、特定の IP レンジや特定プロトコル・ポート番号の通信を制限する必要があります。

Network Connectivity Center 側で特定のルートのみをフィルタするようなことはできません。

IP アドレスの留意点

Network Connectivity Center は IPv4 アドレスのみをサポートしています。IPv6 アドレスをサポートしていません。

また Router アプライアンスタイプのスポークでは RFC 1918 アドレスのみがサポートされており、いわゆる Privately used public IP (PUPI) はサポートされません。

カスタムルートによる推移的通信との違い

Network Connectivity Center を使わなくても Cloud Router のカスタムルート広報機能を使えば、VPC を介した推移的通信が可能です。

ただしこの場合は、Cloud Router から広報するルートはスタティックに指定しなければいけません。Network Connectivity Center のサイト間通信の場合は、交換したルートを BGP で動的に再広報できるのが異なる点と言えます。

杉村 勇馬 (記事一覧)

執行役員 CTO / クラウドソリューション部 部長

元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。