サービスメッシュ

Ambient Mesh あんびえんとめっしゅ

サービスメッシュIstioEnvoyサイドカープロキシeBPFKubernetes
Ambient Meshについて教えて

簡単に言うとこんな感じ!

これまでのサービスメッシュって、各アプリの横に「番人のコンテナ」を貼り付けてたんだけど、Ambient Meshはそれをなくして、ネットワーク基盤側でまとめて面倒を見てくれる新方式なんだ。荷物を各部屋に一人ずつ警備員を置くんじゃなく、建物のセキュリティゲートで一括管理するイメージ!


Ambient Meshとは

Ambient Mesh(アンビエント・メッシュ) とは、Kubernetesクラスター上でマイクロサービス間の通信を管理・保護する「サービスメッシュ」の新しいアーキテクチャです。2022年にIstioプロジェクトから提案され、従来のサービスメッシュが抱えていた「サイドカープロキシ問題」を解消するために設計されました。

従来のサービスメッシュでは、アプリケーションのコンテナ1つひとつに Envoy などのプロキシ(サイドカー)を隣接配置し、通信の暗号化・監視・制御を行っていました。しかしこの方式は、アプリが100個あれば100個のプロキシが動き、CPUやメモリを大量消費するという課題がありました。

Ambient Meshはその名のとおり「環境(Ambient)に溶け込んだメッシュ」を目指し、アプリケーションを変更せずに、インフラ層でサービスメッシュの機能を提供します。サイドカーコンテナが不要になるため、リソース効率が大幅に向上し、既存アプリへの導入摩擦も下がります。


Ambient Meshのアーキテクチャと仕組み

Ambient Meshの最大の特徴は、通信処理を 2つのレイヤー に分離している点です。

レイヤーコンポーネント役割
L4レイヤー(セキュアオーバーレイ)ztunnel(ゼロトラストトンネル)各ノードに1つ常駐。mTLS暗号化・基本認証を担当
L7レイヤー(ウェイポイントプロキシ)Waypoint Proxy必要なサービスにのみ展開。HTTPルーティング・高度なポリシー適用
【従来のサイドカー方式】
  Pod A                Pod B
 ┌──────────┐        ┌──────────┐
 │ App  │Sidecar│───▶│ App  │Sidecar│
 └──────────┘        └──────────┘
  (Envoyが各Podに1つずつ = リソース大)

【Ambient Mesh方式】
  Pod A       Pod B       Pod C
 ┌─────┐    ┌─────┐    ┌─────┐
 │ App │    │ App │    │ App │
 └──┬──┘    └──┬──┘    └──┬──┘
    │           │           │
 ┌──▼───────────▼───────────▼──┐  ← ztunnel(ノードに1つ)
 │        ztunnel (L4)          │
 └─────────────┬────────────────┘
               │(必要なときだけ)
        ┌──────▼──────┐
        │ Waypoint (L7)│
        └─────────────┘

L4とL7の役割分担がポイント

すべての通信はまずztunnelを通ります。ztunnelは各ノードに1つだけ動くので、100個のPodがあっても追加コストはノード数分で済みます。L7レベルの高度な制御(HTTPヘッダー操作・リトライポリシーなど)が必要なサービスにだけ、Waypoint Proxyを別途展開する「必要な分だけ使う」設計です。

覚え方:「環境まかせ、必要なとこだけ手厚く」

Ambient(環境) = 空気のようにインフラに溶け込む基本セキュリティ(ztunnel)
必要なときだけ = L7制御が必要なサービスにだけWaypointを追加


歴史と背景

  • 2017年頃 — Kubernetesの普及とともにマイクロサービスが急増。サービス間の通信管理が課題となる
  • 2017年 — GoogleとLyftがIstioを発表。Envoyサイドカーを使ったサービスメッシュが標準的アプローチに
  • 2022年9月 — IstioチームがAmbient Meshを発表。「サイドカーなしのサービスメッシュ」として大きな注目を集める
  • 2023年 — Istio 1.18でAmbient Meshがアルファ版として正式リリースeBPFとの組み合わせも研究される
  • 2024年 — Istio 1.22でAmbient MeshがBeta昇格。本番環境での採用が現実的な選択肢になる
  • 2025年以降 — CiliumなどCNI(コンテナネットワーク)との統合が進み、eBPFベースの実装も成熟

従来サイドカー方式との比較

サイドカー方式 vs Ambient Mesh 従来のサイドカー方式 Ambient Mesh プロキシ配置 Pod数分のEnvoyが常駐 プロキシ配置 ztunnelはノード数分のみ リソース消費 Pod数に比例して増大 リソース消費 大幅に削減(ノード数依存) アプリ変更の要否 アノテーション追加が必要 アプリ変更の要否 不要(ゼロタッチ導入) L7ポリシー制御 全Podで常時有効 L7ポリシー制御 必要なサービスのみWaypoint追加

実務上の判断ポイント

状況おすすめ
Podが多く、リソースコスト削減が最優先Ambient Mesh
L7の細かいルーティングが全サービスで必要サイドカー方式も検討
既存アプリへの影響を最小化したいAmbient Mesh
本番環境への即時投入(安定性最優先)サイドカー方式(実績豊富)

関連する規格・RFC

規格・プロジェクト内容
Istio 1.22+Ambient MeshをBeta機能として実装
HBONE(HTTP-Based Overlay Network Environment)ztunnelが使うトンネルプロトコル。HTTP/2 CONNECTベース
mTLS(RFC 8446ベース)ztunnelが自動付与する相互TLS認証
eBPFLinuxカーネルレベルでパケット処理。AmbientのL4実装に活用される

関連用語

  • サービスメッシュ — マイクロサービス間の通信を管理・制御するインフラ層の仕組み
  • Istio — Ambient Meshを開発・推進するオープンソースのサービスメッシュ実装
  • サイドカーパターン — アプリコンテナに補助コンテナを添付するデザインパターン
  • Envoy — IstioやAmbient Meshで使われる高機能プロキシ
  • eBPF — Linuxカーネルを安全に拡張する技術。Ambient MeshのL4実装に関わる
  • mTLS — 通信の両端が互いに証明書を検証する相互TLS認証