【システム構成要素】複雑な通信をスマートに管理!「サービスメッシュ」|情報処理問題1000本ノック
システムを小さなサービスの集合体として構築する「マイクロサービス」。サービスが増えるほど難しくなる「サービス間の通信」を一括管理する仕組みを攻略しましょう。
1. 問題:マイクロサービス間の通信制御
【 問題 】 マイクロサービスアーキテクチャにおいて、サービス間の通信(サービス間連携)を制御するためのインフラ層のことを何と呼ぶでしょうか? 認証・認可、暗号化、リトライ(再送)、動的なルーティングなどをアプリケーションコードから分離して実現します。
① APIゲートウェイ ② サービスメッシュ ③ コンテナオーケストレーション ④ ロードバランサ
2. 正解:システムアーキテクチャに関する正解
正解: ② サービスメッシュ
3. 解説:アプリケーションを通信の悩みから解放する
サービスメッシュは、各サービスの横に「サイドカー(プロキシ)」を配置し、通信処理をすべてそのプロキシに任せる仕組みです。これにより、開発者は「通信が失敗したらどうするか」というコードを書かずに、ビジネスロジックに集中できます。
[ サービスA ] ─── [ プロキシ ]
│ (認証・暗号化・再送)
[ サービスB ] ─── [ プロキシ ]
■ サービスメッシュが提供する主な機能
・可観測性:どのサービス間が混雑しているか可視化する。
・トラフィック制御:A/Bテストやカナリアリリースを容易にする。
・セキュリティ:サービス間の通信を自動で暗号化(mTLS)する。
・回復性:タイムアウト設定や再送、サーキットブレーカーを適用する。
★ サイドカー (Sidecar):主となるアプリケーションと同じ場所に配置される補助的なプロキシ(例:Envoy)。
★ コントロールプレーン:メッシュ全体のポリシーを管理・配布する司令塔(例:Istio)。
★ サーキットブレーカー:通信エラーが続く際、一時的に遮断して連鎖的なシステムダウンを防ぐ仕組み。
1. 理解のコツ: サービス同士が直接話すのではなく、それぞれに「専属の秘書(プロキシ)」をつけて、秘書同士が複雑な調整(認証や再送)を行うイメージです。網目(メッシュ)のように張り巡らされた通信経路を、一元管理する「見えないインフラ」だと考えましょう。
2. 試験対策の視点: 「マイクロサービス間」「認証・認可」「再送処理の一括管理」というキーワードが出たらサービスメッシュです。APIゲートウェイとの違いは、APIゲートウェイが「外部からの入り口」を守るのに対し、サービスメッシュは「内部同士の通信」を支える構成要素である点にあります。
4. まとめ
「サービス間の通信機能をインフラ層として切り出し、網目状に管理する」。これがサービスメッシュです。システムの規模が大きくなっても、安全かつ確実に通信を繋ぎ続けるための現代的なアーキテクチャであることを押さえておきましょう!