AI活用の教科書
インフラリリース・運用むずかしい3分で読了

サービスメッシュ

Service Meshさーびすめっしゅ

ひとことで言うと

たくさんの小さなサービス同士の通信を、専用の交通整理係がまとめて面倒みる仕組みです。

📖 もうちょい詳しく

何が新しいの?

アプリを小さな部品(マイクロサービス)に分けると、部品どうしの通信がとても増えます。すると「相手が落ちていたら再送する」「通信を暗号化する」「誰がどこと話したか記録する」といった処理を、部品ごとに毎回書く必要が出てきます。サービスメッシュは、その面倒な通信まわりの処理を、アプリ本体から切り離して肩代わりしてくれる仕組みです。

どうやって動いてるの?

各サービスのすぐ隣に、サイドカーと呼ばれる小さな代理(プロキシ)を置きます。サービスが送る通信はいったんこのサイドカーを通り、サイドカー同士がやりとりします。再送・暗号化・記録などはサイドカーが担当するので、アプリのコードを書き換えずに通信のルールを足せます。これらサイドカーを一括で指示する司令塔(コントロールプレーン)もあわせて持つのが一般的です。

何ができるの?

通信の暗号化や、失敗したときの自動再送、アクセスの許可・拒否などを、設定だけでまとめて効かせられます。さらに「どのサービスがどれくらい遅いか」も見えるようになり、障害の原因をたどりやすくなります。

🌱 身近なたとえ

大きなオフィスビルの各部屋に、専属の受付係をひとり置くようなものです。部屋の人(アプリ)は用件を受付係に渡すだけで、相手探し・本人確認・記録は受付係(サイドカー)が代わりにやってくれます。受付係たちは同じマニュアル(コントロールプレーン)で動くので、ルールを変えたいときはマニュアルを一枚直すだけで全員に行きわたります。

✅ まず覚えるポイント

  • マイクロサービス間の「通信まわり」を肩代わりする仕組みです
  • 各サービスの隣に「サイドカー」という代理を置いて通信を中継します
  • 暗号化・再送・アクセス制御をアプリのコードを変えずに足せます
  • 通信の状況が見えるので、障害の調査がしやすくなります
  • Kubernetes のような土台の上で使われることが多いです

🧭 よくある勘違い

ロードバランサーと同じものなの?

役割が重なる部分はありますが、同じではありません。ロードバランサーはおもに「通信を複数の宛先へ振り分ける」ことが仕事です。サービスメッシュは振り分けに加えて、暗号化・再送・記録・アクセス制御まで含めて、サービス間通信を広く面倒みる点が違います。

入れれば必ず速くなるの?

速さが主目的の道具ではありません。むしろサイドカーを一段はさむぶん、通信がわずかに遅くなることがあります。狙いは「通信の運用を楽にし、状況を見えるようにする」ことなので、サービスの数が少ないうちは導入しないほうが身軽な場合もあります。

アプリのコードを書き換える必要があるの?

基本は不要です。通信はサイドカーが横から預かるしくみなので、アプリ側は自分のことだけ書けば済みます。これがサービスメッシュの大きな利点のひとつです。

🧩 関連して覚えると楽な言葉

  • microservices(マイクロサービス): アプリを小さな部品に分ける作り方。メッシュが面倒みる対象です
  • kubernetes(クバネティス): 多数のコンテナを動かす土台。メッシュはこの上で使われることが多いです
  • observability(オブザーバビリティ): 中で何が起きているか観測できる状態。メッシュが通信の可視化を助けます
  • circuit-breaker(サーキットブレーカー): 失敗が続く相手への通信を一時的に止める仕組み。メッシュが提供する機能のひとつです

🏁 ひとことでまとめ

サービスどうしの通信の世話役を、アプリの外にまとめて立てておく仕組みです。