[速報]フルマネージドなサービスメッシュサービス Cloud Service Mesh が登場
はじめに
こんにちは。クラウドエース株式会社の間瀬です。
今回は 2024 年 4 月にラスベガスで開催されている Google Cloud Next'24 で発表された Cloud Service Mesh について速報記事として情報をお届けしたいと思います。
関連するセッションの動画、スライドや公式ブログが既に公開されているため、引用しながら解説したいと思います。
サービスメッシュとは?
分散された複数のアプリケーションから構成されるサービスにおいて、認証/認可、通信の暗号化、トラフィック管理/分割、ロギング、トレーシング、モニタリングといった各アプリケーションで横断的に実装する必要がある処理を担うレイヤです。
共通的な処理をサービスメッシュで担うことで、これら横断的な処理の統制を行いつつ、アプリケーションのビジネスロジックの開発に注力できるようになります。
従来より Google Cloud では Anthos Service Mesh や Traffic Director といったマネージドなサービスメッシュサービスが提供されていました。
Cloud Service Mesh = Anthos Service Mesh + Traffic Director + α(新機能)
今回発表された Cloud Service Mesh は Anthos Service Mesh と Traffic Director が統合されて両サービスの特長が取り込まれるようです。
ただ、単純に既存サービスを統合するだけではなく、随時新しい機能が追加されるとのことで既に +α として新たな機能が発表されています。
まずは従来のサービスの概要について説明します。
Anthos Service Mesh
Anthos Service Mesh(以下、ASM) は Google Kubernetes Engine(以下、GKE) で利用することができる Istio がベースとなったサービスメッシュサービスです。Google Cloud はもちろん、他パブリッククラウドやオンプレミス上の GKE にもインストールすることが可能です。
GKE を構築する環境に依りますが、Google Cloud 上の GKE であればマネージドサービスでありつつも Istio のほとんどの機能を利用することができるのが特長で、前述しているサービスメッシュのユースケースを網羅することができます。
Anthos Service Mesh はサービスメッシュの役割を担う Envoy プロキシをアプリケーション Pod にサイドカーコンテナとして自動挿入するプロキシを活用したサービスメッシュとなります。
Traffic Director
Traffic Director は ASM が GKE に特化したサービスメッシュだとすると、こちらは GKE のみならず GCE 上のアプリケーションもサービスメッシュに加えることができるのが特長です。
更に プロキシによるサービスメッシュだけでなく、プロキシが不要なプロキシレス gRPC でのサービスメッシュも提供しています。
プロキシレスなサービスメッシュのユースケースとしては、非常に高いパフォーマンスが求められる、リソース消費を極力節約したいようなケースになります。
また、GKE におけるサービスメッシュについては Istio とは異なり、Gateway API を利用したサービス間のトラフィック制御を行うことができます。
+α その1: Ambient Mesh によるサービスメッシュ
サイドカーやプロキシレスに新たに並ぶ、サービスメッシュのアーキテクチャとなります。Ambient Mesh は GKE ノードごとにプロキシを 1 つ用意してサービスメッシュの役割の一部を担います。
一部と強調した理由としては、Ambient Mesh としてのプロキシは mTLS といった L4 の処理のみを担うようです。
トラフィックのルーティングや分割といった L7 の処理については、マネージドな LB で担うことによって、従来のサイドカーよりもノード上の処理が軽量になり、スケーラビリティも向上するようです。
サービスメッシュの実際のユースケースとして、mTLS の機能のみが利用されることが多いことから機能配置の見直しが行われたようです。
+α その2: Cloud Run でサービスメッシュをサポート
GKE,GCE に加えて Cloud Run にてサービスメッシュが利用できるようになるようです。
+α その3: 機能拡張ポイントの提供
上級者向けになりそうですが、サービスメッシュで担う機能を拡張することができるようにいくつかの機能を提供するようです。
WASM
WebAssembly(WASM) による機能拡張をサポートするようです。Envoy は C++ で実装されていますが、これに限らず言語を選択して実装が可能となります。
Envoy External Processing
Envoy から外部のサービスへ接続できるようにする Envoy の拡張プラグインをサポートするようです。例えば自前でカスタマイズしたサービスと連携させることで、柔軟に要件に対応することができるようになります。
Envoy Filter
Envoy を介したリクエスト、レスポンスといった通信の前後で様々な処理を追加することができる Envoy Filter をサポートするようです。
Envoy には認証/認可のための機能など様々なプラグインが用意されているのですが、それらをフィルタとして処理を追加することができるようになります。個人的に Envoy Filter を使いたいケースは多いのでこれは嬉しい情報でした。
まとめ
サービスメッシュのアップデート状況を追っていた身としては、今回の発表はとても印象が大きかったです。今後も引き続きアップデートを予定しているとのことなので、注視していきたいと思います。
本内容の詳細を知りたい方は以下の出典元を確認してください。
Discussion