コンテンツに移動
ネットワーキング

Google Cloud のネットワーキング ソリューションを使った分散アプリケーションの組み立ておよび管理

2022年6月2日
https://storage.googleapis.com/gweb-cloudblog-publish/images/networking_spotlight.max-2600x2600.jpg
Google Cloud Japan Team

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

クラウドの時代である今、最新アプリケーションは異なる環境にわたって実行されるサービスから組み立てられています。このアプローチのメリットは、アプリケーションを構築するにあたって、ニーズに最も合うサービスを組織が選べるという点です。しかし、異種のコンポーネント サービスからアプリケーションを組み立てることで、次のような複雑さも生じます。

  • 確実かつ安全な方法でサービスを接続する

  • 一貫した方法で効率良く分散サービス全体のトラフィックを管理する

  • サービスを構築するチームとサービスを活用するチームの間の境界を明確に定義する

Google Cloud を使った次世代アプリケーションの配信の場である Google Cloud Networking Spotlight で説明したとおり、Google は先日、分散アプリケーションの組み立てと管理に伴う複雑さを軽減するためのソリューションを導入しました。これらのソリューションには、サービスをひとまとまりのアプリケーションにもっと効率良くオーケストレートするための 3 つのコア ネットワーキング ソリューションが含まれます。

  • オープンソース Envoy プロキシをベースにした新しいクラウド ロードバランサ。このロードバランサなら、フルマネージドのロードバランサを使用する際、または xDS ベースのソリューションEnvoy プロキシなど)を使用する際に、共通のトラフィック管理機能を使えるようになります。さらに、異なる環境をまたいで実行されるサービスでも、この共通トラフィック管理機能を使用できます。

  • ハイブリッド ロード バランシングおよびハイブリッド接続ソリューション。サービスが配置されている環境にかかわらず連携できるようにするため、ハイブリッド ネットワーク環境でサービスを接続します。接続するサービスには、Google Cloud、マルチクラウド環境、またはオンプレミスで実行されるものが含まれます。

  • Private Service Connect。異なるネットワークにわたるサービスをもっとシームレスに接続できるようになります。また、このソリューションは、サービスの開発と保守を行う組織(サービス プロデューサー)とサービスを利用する組織(サービス コンシューマー)を明確に区別します。

Google Cloud ネットワーキング スタック

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_networking_spotlight.max-1500x1500.jpg

図 1. コア Google Cloud ネットワーク プロダクトの概要

これらのソリューションを実際の環境に当てはめて理解するため、まずはコア Google Cloud ネットワーク プロダクトの概要を確認しましょう。

  • Google Cloud プロダクト スタックの基盤は、Network Connectivity Center などの接続ソリューションです。Network Connectivity Center には、1 つに集約された接続レイヤへの安全かつ確実な接続をオンプレミスとマルチクラウドのデプロイで可能にする物理相互接続と VPN が含まれます。

  • 次のレイヤは、クラウド インフラストラクチャ ツールで構成されます。これは、ネットワーク境界を保護し、企業ネットワークを出入りすることが可能なデータを全社的に確実に制御できるようにします。

  • その上のレイヤはサービス ネットワーキング プロダクトで、デベロッパーがサービス中心に考えられるようにするためのものです。デベロッパーは IP やポートなどの下位レベルのネットワーク構造について悩むことなく、 再利用可能なサービスをビジネス アプリケーションに組み立てるという観点で考えることができます。

  • スタックの一番上はアプリケーション配信ソリューションで、アプリケーションの大規模な配信を可能にします。クラウド ロードバランサ、CDN、Cloud Armor プロダクトなどのソリューションがあります。

  • これらすべての周囲には Network Intelligence Center があります。これは、ネットワークに起きていることを一括表示するものです。

これらのソリューションを併用することで、Google Cloud Networking の次の 3 つの主な機能が実現します。

  • Cloud Load Balancing と Envoy プロキシによる高度なユニバーサル トラフィック管理

  • マルチクラウドとオンプレミスのハイブリッド ネットワーク デプロイ全体でのサービス接続

  • Private Service Connect によるサービス接続の簡素化と保護

このブログの後半ではこれらのソリューションをもっと詳しく説明し、分散アプリケーションの場所を問わず、どのようにユーザー エクスペリエンスを最適化するかを説明します。

Cloud Load Balancing と Envoy プロキシによる高度なユニバーサル トラフィック管理

では、次世代の Google Cloud ロードバランサを紹介します。新バージョンのグローバル外部 HTTPS ロードバランサと、新しいリージョン外部 HTTPS ロードバランサがあります。既存の内部 HTTPS ロードバランサに加わったこれらの新しいロードバランサが、次世代の Google ロードバランサ機能の象徴です。新しいクラウド ロードバランサでは、Cloud Native Computing Foundation(CNCF)オープンソース プロジェクトである Envoy プロキシを使い、一貫したデータプレーンと、高度なトラフィック管理をサポートする機能セットを提供します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_networking_spotlight.max-1100x1100.jpg

図 2. 次世代の Google クラウド ロードバランサの概要

次世代のクラウド ロードバランサには、高度なルーティングやトラフィック ポリシーなどの新しいトラフィック管理機能があるため、複雑なワークロードに求められる柔軟性をもってトラフィックを制御できます。高度なトラフィック管理機能の例には、以下があります。

  • リクエストのミラーリング(パス外の機能検証などのユースケース向け)

  • 重み付けによるトラフィック分割(カナリアテストなどのユースケース向け)

  • 信頼性検証のためのフォールト インジェクション(カオステストなど)

  • 新しいロード バランシング アルゴリズムとセッション状態アフィニティのオプション

また、Google の次世代ロードバランサはオープンソース テクノロジーを基盤にしているため、分散型環境全体でサービスをモダナイズし、効率良く管理するために使用できます。たとえば、マルチクラウドまたはオンプレミス環境で実行されるオープンソースの Envoy サイドカー プロキシをクラウド ロードバランサと併用すれば、異種のアーキテクチャ全体でのユニバーサル トラフィック制御およびデータプレーン ソリューションを作成できます。オプションとして、サービス メッシュ アーキテクチャ向けのフルマネージドのコントロール プレーンである Traffic Director を使うと、Envoy プロキシを始めとした xDS 互換のプロキシ間でトラフィックをさらに効率的に管理できるようになります。

分散アプリケーションをまたぐユニバーサル トラフィック管理アーキテクチャをどのように活用できるか、一例を紹介します。たとえば、複数の商取引アプリケーションで使われるショッピング カート サービスなど、分散型システムで使われる新しいサービスをロールアウトする場合を考えてください。ロールアウトのカナリアテストを適切に実施するには、クラウド ロードバランサ組み込みの重み付けしたバックエンド サービス機能を Traffic Director で管理される Envoy サイドカー プロキシで使います。ここで重みを段階的に変えることで、サービスの新機能またはバージョンを調整しながら一貫した手法で安全に分散アプリケーションをまたいでデプロイでき、アーキテクチャ全体で新しいサービスに一定のカナリアテストを実施できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_networking_spotlight.max-2000x2000.jpg
図 3. 分散アプリケーション全体でのカナリアテスト

Google Cloud での高度なトラフィック管理について詳しく学べるリソースは、次のとおりです。

ハイブリッド アーキテクチャ、マルチクラウドおよびオンプレミス デプロイを管理するためのソリューション

オンプレミス、Google Cloud 内部、他のクラウドまたは Software as a Service(SaaS)プロバイダで実行される分散アプリケーションがあるケースを考えてみましょう。ハイブリッド ロード バランシングハイブリッド接続を活用すると、分散されたそれぞれの要素を一つにまとめることができます。これにより、活用できる最適なサービスを使い、最終的には常に変わるビジネス需要に順応する柔軟性を手に入れながら、絶えず変化する市場の需要に適応し、アプリケーションを段階的にモダナイズするための実用的なアプローチを取ることができます。ハイブリッド ロード バランシングは、分散アプリケーションの幅広いすべてのユースケースで、分散型トラフィックをインテリジェントに管理します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_networking_spotlight.max-2000x2000.jpg

図 4. ハイブリッド ロード バランシングとハイブリッド接続のユースケース

Google Cloud のハイブリッド ロード バランシングとハイブリッド接続のソリューションには、サービスとアプリケーションを異なるネットワークをまたいで安全かつ確実に接続するよう設計されたコンポーネントが含まれます。これらの接続性に関するオプションには、プライベート相互接続Partner および Direct)、VPN、さらには 公共のインターネットが揃っているため、プライベート接続とパブリック接続の両方を使ってアプリケーション サービスを組み立てることができます。さらに、クラウド ロードバランサは、バックエンド サービスが配置されている場所を問わずにトラフィックを管理できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_networking_spotlight.max-1400x1400.jpg

図 5. ハイブリッド ロード バランシングのデプロイ

ハイブリッド ロード バランシングおよび接続を次世代の Google Cloud ロードバランサと組み合わせることで、Google Cloud、オンプレミス、マルチクラウド分散アプリケーション デプロイをまたいだ高度なトラフィック管理が実現します。

ハイブリッド、マルチクラウド、オンプレミスのアーキテクチャについて詳しくは、以下のリソースを参照してください。

Private Service Connect によるサービス接続の簡素化と保護

分散アプリケーションにまたがって使用されるサービスは、1 つのチーム(サービス プロデューサー)が作成および保守を担当し、個別のアプリケーションを構築する他のチーム(サービス コンシューマー)が使用することが少なくありません。このアプローチは、サービスの再利用に加え、サービスを構築するチームと使用するチームの役割分担を可能にすることで、分散アプリケーションを組み立てるにあたって大きなメリットを発揮します。ただし、これらのサービスを環境全体で接続し、管理するうえで、複雑さも生じてしまいます。

Private Service Connect なら、ネットワークに依存しない接続レイヤと組み込みのサービス所有権構造によって、分散アプリケーション全体で効率的にサービスを再利用できます。Private Service Connect はピアリングを行うことなく、そして IP アドレス空間の共有もせずに 2 つのクラウド ネットワークを接続する方法を提供し、Google Cloud 内、またはオンプレミスやマルチクラウド デプロイにわたるサービスとシームレスに通信できます。

Private Service Connect は、VPC 内からプライベート IP アドレスを付与します。これを使えば、Google Cloud Storage や BigQuery などの Google サービス、MongoDB や Snowflake などのサードパーティ SaaS サービス、さらには組織内の異なる VPC にまたがってデプロイされている独自のサービスにも、非公開でアクセスできます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/6_networking_spotlight.max-1800x1800.jpg
図 6. Private Service Connect の概要

また、Private Service Connect では、コンシューマー(サービスへの接続を開始するチーム)の懸念事項を、プロデューサー(接続先のサービスを提供するチーム)のものと区別できます。これらの役割は Private Service Connect に組み込まれているため、独自の組織構造を定義するトイルを行う必要はなく、シンプルに Google Cloud にすでに用意されている ID およびアクセス権限を活用できます。

Private Service Connect に関するリソースは、次のとおりです。

まとめ

ぜひ今回ご紹介したソリューションを、エンジニアとクラウド アーキテクトの皆さんがハイブリッド環境およびマルチクラウド環境で堅牢な分散アプリケーションを大規模に構築するためのツールとしてお役立てください。ネットワークの細かい部分ではなく、ユーザーに最大の価値をもたらすサービスからアプリケーションを組み立てることにもっと時間を割けるようになることを願っています。

これらの高度なユースケース、そして実際にお客様が Google Cloud Networking ツールをどのように使用しているかについて詳しくは、本日 5 月 24 日の Networking Spotlight に登録するか、オンデマンドに登録して後からご覧ください。


- シニア プロダクト マネージャー Adam Michelson
投稿先