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ベースの実装も成熟
従来サイドカー方式との比較
実務上の判断ポイント
| 状況 | おすすめ |
|---|---|
| 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認証 |
| eBPF | Linuxカーネルレベルでパケット処理。AmbientのL4実装に活用される |