[ GCP ] メガネと学ぶ GCP (10) ネットワーキング・サービスについて

[ GCP ] メガネと学ぶ GCP (10) ネットワーキング・サービスについて

こんばんは、七色メガネです。

GCPシリーズとしては少し時間が空いてしまいました。
気を取り直して、今回はGCPのネットワーキング・サービスについて勉強していきたいと思います。

 

5種のネットワーキング・サービス

GCPで提供されるネットワーキング・サービスには、次の5種があります。

  1. VPC
    論理的に分離された仮想ネットワーク。
  2. Cloud Load Balancing
    ネットワーク内外の負荷分散を行うサービス。
  3. Cloud CDN
    世界中のエッジポイントを用いたキャッシュサービス。
  4. Cloud DNS
    高品質なDNSサービス。
  5. Cloud Interconnect
    GCPネットワークとオンプレミス・ネットワークをセキュアに接続するサービス。

今回の記事では、比較的重要度の小さい CDN と DNS を除き、他3種の詳細についてまとめていこうと思います。

Virtual Private Cloud (VPC)

VPCネットワークは、GCPリソースを接続することを想定して作成される仮想ネットワークです。このネットワークにより、GCE / GAE / GKE / その他リソース などを相互に接続することが出来ます。

VPCのイメージ

VPC の基本特徴

VPCネットワークは、グローバルなリソースです。特定のリージョンやゾーンには紐づけられません。
ネットワーク構成の一番外側の容れ物、と考えて良いかもしれません。

VPCネットワークは、ユーザが作成したプロジェクトに紐づけられます。プロジェクトの中にVPCネットワークが構成される、と考えて大丈夫です。
1プロジェクトに対して、複数のネットワークを紐づけることも出来ます。

VPCネットワークには、複数のサブネット(後述)を指定することが出来ます。IPアドレスの範囲は、サブネットにおいて定義されます。

サブネットとは?

サブネットとは、VPCネットワーク内で有効なIPアドレス範囲を定義した設定です。
VPCネットワークは、1つまたは複数のサブネットにより構成されています。この時VPCネットワーク自体はIPアドレスを保持しておらず、サブネットが保持するIPアドレスを使用しています。

サブネットはリージョンに紐づいています。プロジェクトにデフォルト設定のVPCネットワークを紐づけた場合、初期設定で全てのリージョンにサブネットが作成されます。またサブネットは、同一リージョン内の別ゾーンにまたがって作成することもできます。

サブネットのIPアドレス範囲は拡張することができます。起動中のVMなどに対し、サブネットの拡張に伴う影響などはありません。

VPCネットワーク内での通信

VPCネットワーク内での通信とはつまりGCEなどのインスタンス間での通信ですが、これらの通信においては、内部IPアドレス(プライベート・アドレスとも)が用いられます。この時、内部通信に対して、ファイアウォール・ルールを設定することが出来ます。それにより、通信のルールを定義し通信を制御することが出来ます。

インスタンスがそれぞれ別のリージョンに属している時でも、それぞれのインスタンスが同一のVPCネットワークに属しているならば、この間で行われる通信はVPCネットワークを使用できます。

VPCネットワーク外との通信

同じリージョンに存在するインスタンス同士であっても、同一のVPCネットワークに属していないならば、その間で行われる通信はインターネット経由になります。

ただし同じ条件であっても、「VPCネットワーク・ピアリング」機能を用いた場合には、異なるVPC間でもプライベート通信を行うことができます。

VPCネットワーク・ピアリングとは?

ピアリングは、別々のプロジェクトや、他の組織に属するプロジェクト間などでのプライベート通信を実現する技術です。GCE、GKE、そして GAE の フレキシブル構成を持つインスタンスにおいて使用することができます。

ピアリングされたVPC間で行われる通信に対しては、ファイアウォールによる通信制御が可能です。

この時通信が許可されるのは、直接ピアリングしている相手との通信のみです。たとえば インスタンスAがBと、AがCとピアリング設定を行なっている時、インスタンスBとCがプライベート通信を行うことはできません(推移的ピアリングの非サポート)。

VPC Rooting とは?

VPCルーティングは、ネットワーク トラフィックが VM インスタンスから他の宛先に到達する経路を定義します。これらの宛先は、VPC ネットワークの内部(別の VM など)の場合もあれば、VPC ネットワークの外部の場合もあります。

Cloud Load Balancing

GCPのロードバランサーは、大別して2つの負荷分散を行うことができます。それは、「内部・負荷分散」と「外部・負荷分散」です。外部・負荷分散の中では、特に「HTTP(S)負荷分散」と「ネットワーク負荷分散」が重要です。

負荷分散のイメージ

初めに、外部負荷分散と内部負荷分散を併用しているアーキテクト図を確認します。

ここでは、インターネットを経由してきたHTTPトラフィックを外部のロードバランサが受け取り、各リージョンまたはゾーンのインスタンスへと振り分けています。

振り分け先のインスタンスより先の工程へとトラフィックを進めるところで、内部のロードバランサを使用しています。内部でトラフィックを受け取ったバランサーは、所属リージョン内のインスタンスについて、トラフィックを再振り分けしています。

HTTP(S)負荷分散 とは?

この負荷分散では、クライアントからのHTTPまたはHTTPSリクエストを、世界中のサーバへ負荷分散する機能が提供されます。
ここでは、Target Proxy が転送ルールを保持し、トラフィック条件をそれに照合した上で、保持している Url にしたがってトラフィックをバックエンドサービスへ振り分けます。

ロードバランサーは全てのバックエンドの前に置かれるため、ロードバランサが保持する一つの外部IPアドレス(グローバルIPアドレス)だけで、複数のリージョンへのトラフィック振り分けを実現することができます。

この負荷分散状況は、Stack Driver Logging から確認することができます。

ネットワーク負荷分散とは?

HTTP(S)負荷分散はレイヤー7のプロトコル、すなわちWebアクセスによるトラフィックを分散対象としていました。
ネットワーク負荷分散では、レイヤー4のプロトコル、すなわち TCP / SSL や UDP に対する負荷分散を実現します。

 

Cloud Interconnect

Interconnect、と整理してしまいましたがオンプレミス環境とVPCを接続するという目的を果たす方法には、いくつかの選択肢があります。それを紹介します。

Cloud Interconnect

Cloud Interconnect では、オンプレミス ネットワークと Virtual Private Cloud ネットワークの間のデータ転送の確実性を実現する、低レイテンシかつ高可用の接続が提供されます。また、双方のネットワークから、内部IPアドレスへの直接アクセスが実現されます。

この接続では相互を専用の接続で結びつけます。したがって、公共のインターネットを使用することがありません。

Cloud Interconnect には2つのオプションがあります。

1つは、Dedicated Interconnect です。このオプションでは、オンプレミスのネットワークとVPCのネットワークを物理的に接続します。最もハイレベルなネットワーク環境を提供するものです。
もう1つは、Partner Interconnect です。このオプションでは、サービスプロバイダを通して相互接続を実現します。サーブスプロバイダを介したくない場合、このオプションは推奨されません。

2つのオプションでは料金設定などが大きく異なるので、導入に当たっては慎重な検討が必要です。

Interconnect には、SLAが適用されます。

VPN

VPNでは、オンプレミス ネットワークと Virtual Private Cloud ネットワークを安全に接続することができます。2つのネットワークには VPNゲートウェイ が用意され、相互のトラフィックはこのゲートウェイを介してやりとりされます。

このVPNは IPsec のみに対応しているため、それで要件が満たせない場合には Interconnect を選択する必要があります。

Peering

Peeringには、2種類の方法があります。
1つは Direct Peering で、Dedicated Interconnect に近い考え方のピアリングです。
もう1つは Carrier Peering で、これは Partner Interconnect に近い考え方のピアリングです。

Direct Peering

Direct Peering は、オンプレミス ネットワークとGoogleのエッジネットワークとの間に直接的なピアリング接続を確立する方法です。
Google と直接の接続を持つという意味では Dedicated Interconnect と同じですが、Direct Peering で接続されるのは Google のエッジネットワークです。
Direct Perring では GCP のオブジェクト使用しません。したがって、GCP を使用していなくてもこのピアリングを使用することができます。
Dedicated Interconnect よりも安価ですが、SLAの保証はされません。

Carrier Peering

Carrier Peering では、サービス プロバイダが提供するエンタープライズ クラスのネットワーク サービスを利用して、ネットワークの相互接続を実現します。
この場合も、SLAの保証はされません。

参考

https://cloud.google.com/vpc/docs/vpc?hl=ja

https://cloud.google.com/vpc/docs/vpc-peering?hl=ja

https://cloud.google.com/vpc/docs/routes?hl=ja

https://cloud.google.com/load-balancing/docs/load-balancing-overview?hl=ja

https://cloud.google.com/interconnect/docs/concepts/overview?hl=ja

https://cloud.google.com/interconnect/docs/how-to/choose-type?hl=ja

https://cloud.google.com/interconnect/docs/how-to/direct-peering?hl=ja

https://cloud.google.com/interconnect/docs/how-to/direct-peering?hl=ja

 

GoogleCloudPlatformカテゴリの最新記事