コンテンツに移動
デベロッパー

Google Cloud ネットワーキングの概要

2021年11月9日
https://storage.googleapis.com/gweb-cloudblog-publish/images/networking_banner_aPPJc9U.max-2600x2600.png
Google Cloud Japan Team

※この投稿は米国時間 2021 年 10 月 29 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud の物理ネットワーク体系

Google Cloud は複数のリージョンに分かれていて、さらにゾーンに細分化されています。

  • リージョンとは、ある VM から別の VM へのラウンドトリップ時間(RTT)が通常 1 ms 以下である地理的なエリアのことです。

  • ゾーンとは、完全に分離され、独立した障害発生ドメインを持つ、リージョン内にあるデプロイエリアのことです。

つまり、単一の障害が発生した場合でも、異なるゾーンや異なるリージョンにある 2 台のマシンが同時に影響を受けることはありません。

この記事を書いている時点で、Google は 200 以上の国で 27 以上のリージョンと 82 以上のゾーンを所有しています。これには、146 のネットワーク エッジのロケーションと、コンテンツを配信する CDN が含まれます。このネットワークは、Google 検索、マップ、Gmail、YouTube にも使用されています。

Google ネットワーク インフラストラクチャ

Google ネットワーク インフラストラクチャは、主に 3 種類のネットワークで構成されています。

  • ネットワーク内のすべてのマシンを接続する、データセンター ネットワーク。この中には、数十万キロメートルにも及ぶ光ファイバー ケーブルを束ねた 十数本の海底ケーブルが含まれています。

  • すべてのデータセンターを接続するソフトウェアベースのプライベート ネットワーク WAN。

  • Google ネットワークに流入するユーザー向けトラフィック用のソフトウェア定義パブリック WAN。

マシンはインターネットからパブリック WAN を経由して接続され、プライベート WAN によってネットワーク上の他のマシンに接続されます。例えば、一つのリージョンのクラウド上で稼働している仮想マシンから別のリージョンの GCS バケットにパケットを送信する場合、そのパケットは Google のネットワーク バックボーンから出ることはありません。さらに、Google のネットワーク エッジには、ネットワーク ロードバランサとレイヤ 7 のリバース プロキシがデプロイされていて、TCP / SSL 接続をユーザーに最も近い場所で終端させることで、HTTPS 接続の確立に必要な 2 つのネットワークのラウンド トリップを節約しています。

Cloud ネットワーキング サービス

Google の物理的なネットワーク インフラストラクチャは、クラウドでアプリケーションを実行するのに必要なグローバル仮想ネットワークを支えています。さらに、アプリケーションのリフト&シフト、拡張、モダナイゼーションに必要な仮想ネットワーキングとツールを提供しています。

接続

まず必要なのは、仮想ネットワークをプロビジョニングして、他のクラウドやオンプレミスから接続し、他のプロジェクトやリソースが誤ってネットワークにアクセスできないようにリソースを隔離することです。

  • ハイブリッド接続: 本番のネットワークと開発のネットワークをオンプレミス環境で利用している X 社の場合を考えてみましょう。オンプレミス環境と Google Cloud を接続して、2 つの環境間でリソースやサービスの接続を簡素化したいと考えています。専用接続には Cloud Interconnect を、IPSec のセキュアなトンネルを介した接続には Cloud VPN を使用します。どちらも利用できますが、どれだけの帯域幅を必要とするかによって選択します。高い帯域幅と多くのデータを必要とする場合は、Dedicated Interconnect をおすすめします。Cloud Router は、オンプレミス環境と Google Cloud VPC 間の動的ルートを有効にします。また、複数のネットワークやロケーションを持っている場合は、Network Connectivity Center を使用して、Google のネットワークを広域ネットワーク(WAN)として利用することで、Google Cloud 外部のさまざまなエンタープライズ サイトに接続できます。

  • Virtual Private Cloud(VPC): X 社はすべてのリソースを VPC にデプロイしていますが、本番環境と開発環境を分けておくことが要件となっています。そのため、共有 VPC を使用する必要があります。これにより、複数のプロジェクトのリソースを共通の Virtual Private Cloud(VPC)ネットワークに接続し、その内部 IP を使用して安全かつ効率的に相互通信ができます。

  • Cloud DNS: Cloud DNS で以下を管理します。

    • 一般公開 DNS ゾーンと限定公開 DNS ゾーン

    • インターネットと VPC 内でそれぞれ使用するパブリック IP とプライベート IP

    • DNS ピアリング

    • 転送

    • スプリット ホライズン

    • DNS セキュリティの DNSSEC

スケーリング

スケーリングには、アプリケーションの迅速なスケーリングだけでなく、単一または複数のリージョンのリソース間で負荷をリアルタイムに分散させることや、コンテンツ配信を高速化してラスト ワンマイル パフォーマンス向けに最適化することが含まれます。

  • Cloud Load Balancing: Compute Engine のアプリケーションを迅速にスケーリングします。プレウォーミングは必要ありません。ロード バランシングの対象となるコンピューティング リソースを地理的にユーザーに近いリージョンに分散して配置し、求められる高可用性要件を満たすことができます。また、1 つのエニーキャスト IP アドレスの背後にリソースを配置する、インテリジェントな自動スケーリング機能を使ってスケールアップまたはスケールダウンする、Cloud CDN と統合する、といったことも可能です。

  • Cloud CDN: 世界中に分散された Google のエッジ キャッシュを活用し、Compute Engine によって提供されるウェブサイトやアプリケーションのコンテンツを高速で配信します。Cloud CDN を採用することでネットワーク レイテンシの低減に加え、配信元のトラフィックの負荷を軽減するとともに、配信費用も削減できます。一度 HTTP(S) ロード バランシングを設定すると、チェックボックスをオンにするだけで Cloud CDN を有効にできます。

セキュリティ

インフラストラクチャへの DDoS 攻撃を防ぎ、Google Cloud 内のサービスに接続する際のデータ漏洩リスクを軽減し、パブリック IP アドレスを持たないリソースのインターネット アクセス制御を可能にするネットワーク アドレス変換を行うネットワーク セキュリティ ツールをご用意しています。

  • ファイアウォール ルール: 指定した構成に基づいて、仮想マシン(VM)インスタンスとの接続を許可または拒否できます。すべての VPC ネットワークは、分散ファイアウォールとして機能します。ファイアウォール ルールはネットワーク レベルで定義されますが、接続はインスタンスごとに許可または拒否されます。VPC ファイアウォール ルールはインスタンスと他のネットワークの間だけでなく、同じネットワーク内の個々のインスタンスの間にも存在します。

  • Cloud Armor: HTTP(S) ロードバランサと連携して、インフラストラクチャへの DDoS 攻撃を防ぐ組み込みの防御機能を提供します。IP と位置情報に基づくアクセス制御、ハイブリッドとマルチクラウドでのデプロイ向けサポート、事前構成されている WAF ルール、名前付き IP リストなどがあります。

  • Packet Mirroring: Packet Mirroring は、セキュリティ ステータスのモニタリングと分析で役立ちます。VPC Packet Mirroring では、Virtual Private Cloud(VPC)ネットワーク内で特定のインスタンスからトラフィックのクローンを作成し、検査用として転送します。Packet Mirroring では、すべてのトラフィック(内向きと外向き)と、ペイロードとヘッダーを含むパケットデータがキャプチャされます。ミラーリングはネットワークではなく仮想マシン(VM)インスタンスで行われるため、追加の帯域幅は VM 上でのみ消費されます。

  • Cloud NAT:  外部 IP アドレスを持たない特定のリソースからインターネットへの送信接続が可能になります。

  • Cloud IAP: VPN を使用せずに、信頼できないネットワークからの作業をサポートします。また、ユーザー ID を確認し、コンテキストを使用してユーザーにアクセスを許可すべきかどうかを判断します。Cloud IAP は ID とコンテキストを使用して、オンプレミス アプリケーションやクラウドベースのアプリケーションへのアクセスを保護します。

最適化

インフラストラクチャがパフォーマンスのニーズを満たしているかを確認するには、ネットワーク パフォーマンスの監視を怠らないことが重要です。これには、ネットワーク トポロジの可視化とモニタリング、診断テストの実行、リアルタイムでのパフォーマンス指標の評価などが含まれます。  

  • Network Service Tiers - プレミアム ティアは、低レイテンシで信頼性の高い Google のグローバル ネットワークを利用して、外部システムからのトラフィックを Google Cloud のリソースに届けます。一方、スタンダード ティアはインターネット経由でトラフィックをルーティングします。パフォーマンスを重視するならプレミアム ティアを、低コストの代替手段としてであればスタンダード ティアを選択します。

  • Network Intelligence Center - Google Cloud ネットワークのオブザーバビリティ、モニタリング、トラブルシューティングのための単一コンソールを提供しています。

モダナイズ

インフラストラクチャをモダナイズして、マイクロサービスベースのアーキテクチャを採用し、コンテナ化の利用を拡大すると、異種混合サービスのインベントリを管理して、サービス間のトラフィックをルーティングするツールの利用が必要になります。

  • GKE ネットワーキング(+ Anthos オンプレミス)- GKE を使用すると、Kubernetes と Google Cloud では、Kubernetes Deployment の宣言モデルと Google Cloud 上のクラスタ構成に応じて、各ノードの IP フィルタリング ルール、ルーティング テーブル、ファイアウォール ルールの動的な構成を行います。

  • Traffic Director - グローバル サービス メッシュ(クラスタ外部)でマイクロサービスを実行する際に有用です。アプリケーション ロジックをネットワーキング ロジックから分離することで、開発速度を向上させ、サービスの可用性を高め、組織に最新の DevOps プラクティスを導入できます。

  • Service Directory - 環境を問わず、サービスを検出、公開、接続するためのプラットフォームです。Service Directory では、すべてのサービスに関するリアルタイム情報を 1 か所にまとめ、サービス エンドポイントが少数であっても数千であっても、サービスのインベントリ管理を大規模に実行できます。

Google Cloud ネットワーキング プロダクトの詳細情報については、こちらをご覧ください。  

Video Thumbnail

#GCPSketchnote をさらにご覧になるには、GitHub リポジトリをフォローしてください。同様のクラウド コンテンツについては、Twitter で @pvergadia をフォローしてください。thecloudgirl.dev もぜひご覧ください。 

- Google デベロッパー アドボケイト Priyanka Vergadia

投稿先