Anthos Service Mesh について
Anthos Service Mesh は、オンプレミスまたは Google Cloud で信頼性の高いサービス メッシュをモニタリングし、管理するのに便利な一連のツールです。
サービス メッシュとは
サービス メッシュは、サービス間で管理され、監視可能で安全な通信を実現するアーキテクチャです。これにより、選択したインフラストラクチャ上に多くのマイクロサービスで構成される堅牢なエンタープライズ アプリケーションを作成できます。サービス メッシュでは、モニタリング、ネットワーキング、セキュリティなどのサービスの実行についての共通の懸念を整合性のある強力なツールで分析するため、サービス デベロッパーやオペレーターはユーザー向けのアプリケーションの開発と管理に専念しやすくなります。
Anthos Service Mesh は、強力で高度な構成が可能なオープンソース サービス メッシュ プラットフォームである Istio を利用しています。このプラットフォームには、業界のベスト プラクティスを実現するツールと機能が用意されています。Anthos Service Mesh は、インフラストラクチャ全体にわたって統一されたレイヤとしてデプロイされます。サービス デベロッパーとオペレーターは、アプリケーションのコードを変更することなく、さまざまな機能セットを使用できます。
アーキテクチャ上、サービス メッシュは 1 つ以上のコントロール プレーンとデータプレーンで構成されます。サービス メッシュはプロキシ経由ですべてのトラフィックをモニタリングします。Kubernetes では、プロキシはメッシュのマイクロサービスにサイドカー パターンによってデプロイされます。このパターンにより、アプリケーション ロジックまたはビジネス ロジックがネットワーク機能から切り離されるため、デベロッパーはビジネスに必要な機能に集中できます。また、サービス メッシュを使用すると、運用チームと開発チームはお互いの作業を分離できます。
Anthos Service Mesh を活用するには
Anthos Service Mesh を使用することで、GKE Enterprise によるテストが完了しサポートされている Istio のディストリビューションを入手して、Google Cloud やその他のプラットフォーム上の GKE にサービス メッシュを作成してデプロイできます。その際、Google によるフルサポートをご利用いただけます。
機能
Anthos Service Mesh には、機能とツールの一式が含まれ、信頼性の高い安全なサービスを次のような形で一元的にモニタリングおよび管理できます。
トラフィック管理
Anthos Service Mesh は、サービス間、メッシュ(内向き、上り)、外部サービス(外向き、下り)へのトラフィック フローを制御します。このトラフィックがアプリケーション(L7)レイヤで管理されるように Istio 対応のカスタム リソースを構成してデプロイします。たとえば、カスタム リソースでは次のことを行えます。
- カナリア デプロイメントと Blue/Green デプロイメントを作成する。
- サービスの特定のルートをきめ細かく管理する。
- サービス間の負荷分散を構成する。
- サーキット ブレーカーを設定する。
Anthos Service Mesh では、メッシュ内のすべてのサービスのサービス レジストリを名前別およびエンドポイント別に管理します。トラフィック フロー(Kubernetes Pod の IP アドレスなど)を管理するレジストリを維持します。メッシュは、このサービス レジストリを使用してサービスと同時にプロキシを実行することで、適切なエンドポイントにトラフィックを転送します。
オブザーバビリティの分析情報
Google Cloud コンソールの [Anthos Service Mesh] ページでは、次のようにサービス メッシュに関する情報を利用できます。
メッシュの GKE クラスタ内の HTTP トラフィックに関して、サービスの指標とログが自動的に Google Cloud に取り込まれます。
事前構成されたサービス ダッシュボードで、サービスの理解に必要な情報を確認できます。
高度なテレメトリー(Cloud Monitoring、Cloud Logging、Cloud Trace によって実現)では、サービスの指標とログを深く掘り下げることができます。さまざまな属性でデータをフィルタ、スライスできます。
サービス同士の関係を一目で把握できるため、各サービスに接続しているユーザーと、各サービスが依存しているサービスを理解するうえで有用です。
自分のサービスだけでなく、他のサービスとの関係のコミュニケーション セキュリティの分析情報もすばやく確認できます。
サービスレベル目標(SLO)により、サービスの状態についての分析情報を取得できます。サービスの状態に関する独自の基準を使用して SLO とアラートを簡単に定義できます。
Anthos Service Mesh のオブザーバビリティの詳細については、オブザーバビリティ ガイドをご覧ください。
セキュリティ上のメリット
盗まれた認証情報によるリプレイまたはなりすまし攻撃のリスクを軽減する。Anthos Service Mesh では、JSON Web Token(JWT)などの署名なしトークンではなく、相互 TLS 証明書(mTLS)を使用してピアを認証します。
通信中の暗号化を保証する。認証に mTLS を使用すると、すべての TCP 通信が通信中に暗号化されます。
クライアントのネットワークのロケーションやアプリケーション レベルの認証情報にかかわらず、承認されたクライアントだけが機密データを含むサービスにアクセスできるようにします。
本番環境ネットワーク内でユーザーデータ侵害のリスクを軽減する。インサイダーが機密データにアクセスするときには、必ず承認されたクライアントを使用するようにします。
機密データのあるサービスにアクセスしたクライアントを識別する。Anthos Service Mesh のアクセス ロギングを使用すると、IP アドレスだけでなく、クライアントの mTLS ID も収集できます。
クラスタ内コントロール プレーンのすべてのコンポーネントとプロキシで、FIPS 140-2 認証取得済みの暗号化モジュールが使用されます。
Anthos Service Mesh のセキュリティ上の便益と機能の詳細については、セキュリティ ガイドをご覧ください。
デプロイのオプション
Anthos Service Mesh では、次のデプロイ オプションがあります。
- マネージド Anthos Service Mesh
- クラスタ内コントロール プレーン
マネージド Anthos Service Mesh
マネージド Anthos Service Mesh は、マネージド コントロール プレーンとマネージド データプレーンで構成されます。マネージド Anthos Service Mesh では Google がアップグレード、スケーリング、セキュリティに関する作業を行い、ユーザー側の手動メンテナンスの必要性は最小限に抑えます。マネージド データプレーンを有効にすると、サイドカー プロキシを管理するクラスタ内コントローラが Google によってインストールされます。Fleet API を使用してマネージド Anthos Service Mesh をプロビジョニングすると、デフォルトでマネージド データプレーンが有効になります。asmcli
を使用したプロビジョニングはオプションであり、手動による追加手順が必要です。
次の図に、マネージド Anthos Service Mesh の Anthos Service Mesh コンポーネントと機能を示します。
マネージド Anthos Service Mesh の設定または移行については、マネージド Anthos Service Mesh をプロビジョニングするをご覧ください。
クラスタ内コントロール プレーン
次の図は、クラスタ内コントロール プレーンとサイドカー プロキシの Anthos Service Mesh のコンポーネントと機能を示しています。
クラスタ内 Anthos Service Mesh のインストールについては、Anthos Service Mesh をインストールするをご覧ください。