Cloud Service Mesh について

Cloud Service Mesh は、オンプレミスまたは Google Cloud で信頼性の高いサービス メッシュをモニタリングし、管理するのに便利な一連のツールです。

サービス メッシュとは

サービス メッシュは、サービス間で管理され、監視可能で安全な通信を実現するアーキテクチャです。これにより、選択したインフラストラクチャ上に多くのマイクロサービスで構成される堅牢なエンタープライズ アプリケーションを作成できます。サービス メッシュでは、モニタリング、ネットワーキング、セキュリティなどのサービスの実行についての共通の懸念を整合性のある強力なツールで分析するため、サービス デベロッパーやオペレーターはユーザー向けのアプリケーションの開発と管理に専念しやすくなります。

Cloud Service Mesh は、強力で高度な構成が可能なオープンソース サービス メッシュ プラットフォームである Istio を利用しています。このプラットフォームには、業界のベスト プラクティスを実現するツールと機能が用意されています。Cloud Service Mesh は、均一なレイヤとしてインフラストラクチャ全体にデプロイされます。サービス デベロッパーとオペレーターは、アプリケーションのコードを変更することなく、さまざまな機能セットを使用できます。

アーキテクチャ上、サービス メッシュは 1 つ以上のコントロール プレーンとデータプレーンで構成されます。サービス メッシュはプロキシ経由ですべてのトラフィックをモニタリングします。Kubernetes では、プロキシはメッシュのマイクロサービスにサイドカー パターンによってデプロイされます。このパターンにより、アプリケーション ロジックまたはビジネス ロジックがネットワーク機能から切り離されるため、デベロッパーはビジネスに必要な機能に集中できます。また、サービス メッシュを使用すると、運用チームと開発チームはお互いの作業を分離できます。

Cloud Service Mesh を活用するには

Cloud Service Mesh を使用することで、GKE Enterprise によるテストが完了しサポートされている Istio のディストリビューションを入手して、Google Cloud やその他のプラットフォーム上の GKE にサービス メッシュを作成してデプロイできます。その際、Google によるフルサポートをご利用いただけます。

機能

Cloud Service Mesh には、機能とツールの一式が含まれ、信頼性の高い安全なサービスを一元的にモニタリングおよび管理できます。

トラフィック管理

Cloud Service Mesh は、サービス間、メッシュ(内向き、上り)、外部サービス(外向き、下り)へのトラフィック フローを制御します。このトラフィックがアプリケーション(L7)レイヤで管理されるように Istio 対応のカスタム リソースを構成してデプロイします。たとえば、カスタム リソースでは次のことを行えます。

Cloud Service Mesh では、メッシュ内のすべてのサービスのサービス レジストリを名前別およびそれぞれのエンドポイント別に管理します。トラフィック フロー(Kubernetes Pod の IP アドレスなど)を管理するレジストリを維持します。メッシュは、このサービス レジストリを使用してサービスと同時にプロキシを実行することで、適切なエンドポイントにトラフィックを転送します。

オブザーバビリティの分析情報

Google Cloud コンソールの Cloud Service Mesh ページでは、以下のサービス メッシュに関する分析情報を利用できます。

  • メッシュの GKE クラスタ内の HTTP トラフィックに関して、サービスの指標とログが自動的に Google Cloud に取り込まれます。

  • 事前構成されたサービス ダッシュボードで、サービスの理解に必要な情報を確認できます。

  • 高度なテレメトリー(Cloud MonitoringCloud LoggingCloud Trace によって実現)では、サービスの指標とログを深く掘り下げることができます。さまざまな属性でデータをフィルタ、スライスできます。

  • サービス同士の関係を一目で把握できるため、各サービスに接続しているユーザーと、各サービスが依存しているサービスを理解するうえで有用です。

  • 自分のサービスだけでなく、他のサービスとの関係のコミュニケーション セキュリティの分析情報もすばやく確認できます。

  • サービスレベル目標(SLO)により、サービスの状態についての分析情報を取得できます。サービスの状態に関する独自の基準を使用して SLO とアラートを簡単に定義できます。

Cloud Service Mesh のオブザーバビリティ機能の詳細については、オブザーバビリティ ガイドをご覧ください。

セキュリティ上のメリット

  • 盗まれた認証情報によるリプレイまたはなりすまし攻撃のリスクを軽減する。Cloud Service Mesh では、JSON Web Token(JWT)などの署名なしトークンではなく、相互 TLS(mTLS)証明書を使用してピアを認証します。

  • 通信中の暗号化を保証する。認証に mTLS を使用すると、すべての TCP 通信が通信中に暗号化されます。

  • クライアントのネットワークのロケーションやアプリケーション レベルの認証情報にかかわらず、承認されたクライアントだけが機密データを含むサービスにアクセスできるようにします。

  • 本番環境ネットワーク内でユーザーデータ侵害のリスクを軽減する。インサイダーが機密データにアクセスするときに、承認されたクライアントを使用しなければなりません。

  • 機密データのあるサービスにアクセスしたクライアントを識別する。Cloud Service Mesh のアクセス ロギングを使用すると、IP アドレスだけでなく、クライアントの mTLS ID も収集できます。

  • クラスタ内コントロール プレーンのすべてのコンポーネントとプロキシで、FIPS 140-2 認証取得済みの暗号化モジュールが使用されます。

Cloud Service Mesh のセキュリティ上の便益と機能の詳細については、セキュリティ ガイドをご覧ください。

デプロイのオプション

Cloud Service Mesh では、次のデプロイ オプションがあります。

  • マネージド Cloud Service Mesh
  • クラスタ内コントロール プレーン

マネージド Anthos Service Mesh

マネージド Cloud Service Mesh は、マネージド コントロール プレーンとマネージド データプレーンで構成されます。マネージド Cloud Service Mesh では Google がアップグレード、スケーリング、セキュリティに関する作業を行い、ユーザー側の手動メンテナンスの必要性は最小限に抑えられます。マネージド データプレーンを有効にすると、サイドカー プロキシを管理するクラスタ内コントローラが Google によってインストールされます。

次の図は、マネージド Cloud Service Mesh 用の Cloud Service Mesh のコンポーネントと機能を示しています。

マネージド Cloud Service Mesh

マネージド Cloud Service Mesh の設定またはマネージド Cloud Service Mesh への移行については、マネージド Cloud Service Mesh をプロビジョニングするをご覧ください。

クラスタ内コントロール プレーン

次の図は、クラスタ内コントロール プレーンとサイドカー プロキシ用の Cloud Service Mesh のコンポーネントと機能を示しています。

クラスタ内コントロール プレーンを使用したサービス メッシュ アーキテクチャ

クラスタ内 Cloud Service Mesh のインストールについては、Cloud Service Mesh をインストールするをご覧ください。

次のステップ