Traffic Director のコンセプト

オープン サービス メッシュ用 Traffic Director

サービス メッシュは、マイクロサービスやその他の最新アプリケーションのデプロイにおいて普及しつつあります。サービス メッシュでは、データプレーンがサービス プロキシ(Envoy など)を使用してトラフィック フローを制御し、サービス メッシュ コントロール プレーンがポリシー、構成、情報をサービス プロキシに提供します。

コントロール プレーンとしてのサービス メッシュ(クリックで拡大)
コントロール プレーンとしてのサービス メッシュ(クリックで拡大)

サービス メッシュを使用すると、サービスを実行するために作成して保守する必要があるネットワーク コードの量が減少します。代わりに、サービス プロキシがビジネス ロジックとともにネットワーク機能を実行します。サービス プロキシを管理するには、サービス コントロール プレーンが必要です。

Traffic Director は、Google Cloud Platform で提供される、サービス メッシュ用フルマネージド トラフィック コントロール プレーンです。Traffic Director を使用すると、複数のリージョンのさまざまなクラスタや VM インスタンスでのグローバルな負荷分散のデプロイ、サービス プロキシからのヘルスチェックのオフロード、高度なトラフィック コントロール ポリシーの構成を簡単に行えます。Traffic Director はオープン標準 API(xDS v2)を使用してデータプレーン内のサービス プロキシと通信するため、専用ソリューションに縛られることなく、選択したサービス メッシュ コントロール プレーンを使用できます。

マイクロサービス環境におけるコントロール プレーンとしての Traffic Director(クリックで拡大)
マイクロサービス環境におけるコントロール プレーンとしての Traffic Director(クリックで拡大)

Traffic Director の機能

オープン サービス プロキシのトラフィック管理

Traffic Director では、Envoy などのオープン標準(xDS v2)サービス プロキシで、GCP マネージド トラフィック管理コントロール プレーンを実施します。

VM とコンテナの操作

Traffic Director マネージド VM サービス インスタンスは、マネージド インスタンス グループを使用してデプロイし、コンテナ インスタンスは、ネットワーク エンドポイント グループを使用してデプロイします。

グローバルな負荷分散

Traffic Director を使用すると、復元性を確保するためにサービス インスタンスを複数のリージョンにデプロイしてリーチできるため、サービス IP アドレスは 1 つだけで済みます。たとえば、GKE サービスを複数のクラスタにデプロイし、各クラスタを異なるリージョンに配置できます。ユーザーに非常に近いインスタンスで障害が発生したり過負荷になったりした場合、トラフィックは別の利用可能なインスタンスにシームレスにルーティングされます。グローバルな負荷分散は、VM およびコンテナに対して RPS(Requests Per Second)を使用するアルゴリズムで実行されます。使用率ベースのアルゴリズムは、インスタンス グループ(VM)の場合のみサポートされています。

大規模なヘルスチェック

Traffic Director では、GCP 提供のヘルスチェックを大規模に実施できます。Envoy またはその他のオープン標準(xDS v2)サービス プロキシから Google の耐障害性システムにヘルスチェックがオフロードされるので、あらゆる規模のデプロイに合わせてヘルスチェックをスケールできます。また、インスタンスには、メッシュサイズのヘルスチェックによる過剰な負荷はかかりません。

リクエスト ルーティングとリッチ トラフィックのポリシー(アルファ版)

Traffic Director は、トラフィック分割などの高度なリクエスト ルーティング機能をサポートしているため、各種ヘッダー値(Cookie など)に基づいたカナリア処理、URL の書き換えやリダイレクト、フォールト インジェクション、トラフィック ミラーリング、高度なルーティングといった機能の活用が可能になります。また、多数の負荷分散スキーム、回路遮断、バックエンド外れ値検出といった高度なトラフィック ポリシーもサポートしています。アルファ版リリースにアクセスするには、ここから登録してください

サービスのインテリジェントかつ高速な自動スケーリング

Traffic Director では需要に合わせた自動スケーリングが可能なため、料金は使用した分しかかかりません。また、クラウド プロバイダに連絡せずに迅速かつインテリジェントにスケールでき、プレウォーミングも不要です。

Traffic Director の利点

このセクションでは、Traffic Director を使用する利点について説明します。

一般提供での SLA によるフルマネージド サービス

Traffic Director の一般提供リリースは、Google が管理するサービスとして、本番環境レベルの 99.99% の SLA が適用されます。問題が発生した場合は、お客様ではなく Google のオペレーターに通知が届きます。お客様側でコントロール プレーンをデプロイして管理する必要がないため、本来の業務に集中していただけます。

高度なトラフィック管理をシンプルに

Traffic Director を使用して、シンプルな負荷分散から高度な機能(リクエストのルーティングやパーセントベースのトラフィック分割など)まで、あらゆる機能を簡単にデプロイできます。

復元性に優れたサービスの構築

サービスを VM またはコンテナとして複数のリージョンでデプロイすることによって常に稼働させ続けることができます。また、Traffic Director を使用して、クロスリージョンのオーバーフローとフェイルオーバーが自動化されたグローバルな負荷分散を実現できます。

デプロイをシームレスにスケーリング

Traffic Director を使用すると、デプロイをシームレスに拡張できます。サービスの数が増えると、大規模なインストール環境であっても、デプロイ全体を管理できるよう Traffic Director によってシームレスにスケールされます。

それぞれのペースに合わせて最新化

Traffic Director は、VM ベースのアプリケーション(Compute Engine)とコンテナ化されたアプリケーション(Google Kubernetes Engine、セルフマネージド Kubernetes)の両方に対して機能し、サービスに段階的に導入できます。

Traffic Director によるグローバルな負荷分散

Traffic Director は、サービス プロキシを使用して、内部のマイクロサービスに対してグローバルな負荷分散を実現します。複数のリージョンにインスタンスを持つ内部マイクロサービス(サービス プロキシベース)をデプロイできます。Traffic Director は、サービス プロキシにヘルス、ルーティング、およびバックエンド情報を提供するので、サービス プロキシは複数のクラウド リージョン内のアプリケーション インスタンスに最適なトラフィック ルーティングを実行できます。

次の図では、グローバルな負荷分散のデプロイは、Frontend、Shopping Cart、Payments という 3 つのグローバル マイクロサービスを備えています。各サービスは、us-central1asia-southeast1 という 2 つのリージョンのマネージド インスタンス グループで実行されます。Traffic Director はグローバル負荷分散アルゴリズムを使用して、カリフォルニアのユーザーからのトラフィックは us-central1 にデプロイされたマイクロサービスに転送し、シンガポールのユーザーからのリクエストは asia-southeast1 のマイクロサービスに転送します。

受信したユーザー リクエストは Frontend マイクロサービスにルーティングされます。その後 Frontend とともにホストにインストールされているサービス プロキシが、トラフィックを Shopping Cart に転送します。Shopping Cart とともにホストにインストールされているサービス プロキシが、トラフィックを Payments マイクロサービスに転送します。

グローバルな負荷分散のデプロイ(クリックして拡大)
グローバルな負荷分散のデプロイ(クリックして拡大)

次の例では、us-central1 で Shopping Cart マイクロサービスを実行している VM が異常であることを示すヘルスチェック結果を受け取った場合、Traffic Director は Frontend マイクロサービスのサービス プロキシに、asia-southeast1 で実行中の Shopping Cart マイクロサービスにトラフィックをフェイルオーバーするよう指示します。自動スケーリングが Google Cloud Platform のトラフィック管理に統合されているため、Traffic Director は追加のトラフィックの asia-southeast1 でマネージド インスタンス グループに通知し、マネージド インスタンス グループのサイズが大きくなります。

Traffic Director は Payments マイクロサービスのすべてのバックエンドが健全であることを検出したので、Shopping Cart の Envoy プロキシに対して、お客様の構成容量までのトラフィックの一部を asia-southeast1 に送信し、残りを us-central1 にオーバーフローさせるよう指示します。

グローバルな負荷分散のデプロイにおける Traffic Director を使用したフェイルオーバー(クリックして拡大)
グローバルな負荷分散のデプロイにおける Traffic Director を使用したフェイルオーバー(クリックして拡大)

Traffic Director と Istio

Istio は、マイクロサービスを保護、接続、および監視するコントロール プレーンを提供します。これには、トラフィック管理のための Pilot、可観測性のための Mixer、サービス間セキュリティのための Istio Security という 3 つの要素があります。

Traffic Director は、グローバルな負荷分散や一元化されたヘルスチェックなどの追加機能とともに、GCP マネージド Pilot を提供します。ただしこのベータ版リリースでは、Traffic Director の構成に Istio API を使用できません。構成には GCP API を使用してください。Traffic Director と Pilot はどちらも、オープン標準 API(xDS v2)を使用してサービス プロキシと通信します。

料金

ベータ版の Traffic Director は無料で提供されます。

制限

プロジェクトごとの既存のすべての転送ルール、バックエンド サービス、およびその他の負荷分散の制限と割り当てが、Traffic Director のデプロイに適用されます。

制限事項

  • ベータ版の Traffic Director は GCP API のみをサポートします。ベータ版の Traffic Director は、Istio API をサポートしません。
  • Traffic Director は HTTP トラフィックでのみサポートされています。
  • Traffic Director のトラフィック コントロール機能はアルファ版で使用できるようになります。アルファ版リリースはここで登録できます。
  • Traffic Director は、ホスト プロジェクト内のすべての負荷分散リソース、またはサービス プロジェクト内のすべての負荷分散リソースのいずれかで、共有 VPC をサポートします。ただし、Traffic Director へのアクセスに使用できるのは、少なくとも 1 つの転送ルール構成が共有 VPC ネットワーク名で定義されているプロジェクトのサービス アカウントのみです。
  • Traffic Director は VPC ピアリングをサポートしません。
  • ベータ版の Traffic Director は、その名前が転送ルールに指定されている GCP ネットワーク内でのみクライアントの負荷分散をサポートします。
  • ベータ版リリースの Traffic Director を使用した GCP エンドポイントのみを構成できます。オンプレミスまたは別のクラウドのエンドポイントはサポートされていません。
  • このドキュメントでは Envoy プロキシについて説明しますが、Traffic Director では任意のオープン標準 API(xDS v2)プロキシを使用できます。ただし、Google では Traffic Director のテストは Envoy プロキシでのみ行われたことに注意してください。このベータ版の間、Traffic Director は Envoy バージョン 1.9.1 以降のみをサポートします。

次のステップ

  • ユースケースに合わせて Traffic Director を構成する方法については、Traffic Director の設定をご覧ください。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Traffic Director のドキュメント