Anthos Service Mesh とは

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

サービス メッシュとは

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

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

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

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

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

Anthos Service Mesh を活用するには

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

機能

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

注: Google Cloud コンソールの Anthos Service Mesh ページなど、一部の機能は Google Cloud の GKE でのみ使用できます。各プラットフォームでサポートされているサービス メッシュ機能については、サポートされる機能をご覧ください。

トラフィック管理

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

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

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

Google Cloud Console の Anthos サービス メッシュページでは、次のようにサービス メッシュに関する情報を利用できます。

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

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

  • 高度なテレメトリー(Cloud MonitoringCloud LoggingCloud 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 のセキュリティ上の便益と機能の詳細については、セキュリティ ガイドをご覧ください。

デプロイのオプション

1.9 より前のバージョンでは、ユーザー側で Anthos Service Mesh コントロール プレーンをクラスタにインストールしてアップグレードしました。Anthos Service Mesh 1.9 以降では、次のデプロイ オプションがあります。

  • Google 管理のコントロール プレーンをデプロイする。
  • サービス メッシュに Compute Engine VM を追加する。

Google 管理のコントロール プレーン

Google 管理のコントロール プレーンを使用すると、メッシュのアップグレード、スケーリング、保護が自動的に処理されるため、ユーザーによる手動でのメンテナンス作業を最小限に抑えることができます。次の図は、Google 管理のコントロール プレーンとクラスタ内サイドカー プロキシに関連する Anthos Service Mesh のコンポーネントと機能を示しています。

Google 管理のコントロール プレーンを使用したサービス メッシュ アーキテクチャ

Google 管理のコントロール プレーンの設定または移行の詳細については、Google 管理のコントロール プレーンの構成をご覧ください。

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 を使用したサービス メッシュ アーキテクチャ

詳細については、Compute Engine VM を Anthos Service Mesh に追加するをご覧ください。

次のステップ