Anthos Service Mesh は、オンプレミスまたは Google Cloud で信頼性の高いサービス メッシュをモニタリングし、管理するのに便利な一連のツールです。
サービス メッシュとは
サービス メッシュは、サービス間で管理され、監視可能で安全な通信を実現するアーキテクチャです。これにより、選択したインフラストラクチャ上に多くのマイクロサービスで構成される堅牢なエンタープライズ アプリケーションを作成できます。サービス メッシュでは、モニタリング、ネットワーキング、セキュリティなどのサービスの実行についての共通の懸念を整合性のある強力なツールで分析するため、サービス デベロッパーやオペレーターはユーザー向けのアプリケーションの開発と管理に専念しやすくなります。
Anthos Service Mesh は、強力で高度な構成が可能なオープンソース サービス メッシュ プラットフォームである Istio を利用しています。このプラットフォームには、業界のベスト プラクティスを実現するツールと機能が用意されています。Anthos Service Mesh は、インフラストラクチャ全体にわたって統一されたレイヤとしてデプロイされます。サービス デベロッパーとオペレーターは、アプリケーションのコードを変更することなく、さまざまな機能セットを使用できます。
アーキテクチャ上、サービス メッシュは 1 つ以上のコントロール プレーンとデータプレーンで構成されます。サービス メッシュはプロキシ経由ですべてのトラフィックをモニタリングします。Kubernetes では、プロキシはメッシュのマイクロサービスにサイドカー パターンによってデプロイされます。仮想マシン(VM)では、プロキシが VM にインストールされます。このパターンにより、アプリケーション ロジックまたはビジネス ロジックがネットワーク機能から切り離されるため、デベロッパーはビジネスに必要な機能に集中できます。サービス メッシュを使用すると、運用チームと開発チームはお互いの作業を分離できます。
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 10.3 以降では、次のデプロイ オプションがあります。
- クラスタ内コントロール プレーン
- マネージド Anthos Service Mesh
- サービス メッシュに Compute Engine VM を追加する
クラスタ内コントロール プレーン
次の図は、クラスタ内コントロール プレーンとサイドカー プロキシの Anthos Service Mesh のコンポーネントと機能を示しています。
マネージド Anthos Service Mesh
マネージド Anthos Service Mesh は Google が管理するコントロール プレーンで構成されます。Anthos Service Mesh 1.10.4 以降では、必要に応じて Google が管理するデータプレーンを有効にできます。マネージド Anthos Service Mesh によって、Google がアップグレード、スケーリング、セキュリティを処理し、ユーザー側の手動メンテナンスの必要性を最小限に抑えます。Google 管理のデータプレーンを有効にすると、名前空間にアノテーションが追加され、サイドカー プロキシを管理するクラスタ内コントローラがインストールされます。
次の図に、マネージド Anthos Service Mesh の Anthos Service Mesh コンポーネントと機能を示します。
マネージド Anthos Service Mesh の設定または移行については、マネージド Anthos Service Mesh の構成をご覧ください。
Compute Engine VM 用の Anthos Service Mesh
Compute Engine VM 用の Anthos Service Mesh がプレビュー版機能として利用できます。Compute Engine のマネージド インスタンス グループ(MIG)と、同じメッシュ内の Google Cloud クラスタの GKE で実行されているサービスの管理、監視、保護を行うことができます。Anthos Service Mesh のメリットを活用しながら、サービスを実行する最適な環境を組み合わせることができます。次の図は、GKE クラスタと同じサービス メッシュ内の MIG を示しています。
詳細については、Compute Engine VM を Anthos Service Mesh に追加するをご覧ください。
次のステップ
- インストール ガイドを使用して Anthos Service Mesh をインストールする
- トランスポート セキュリティを構成する