サービスメッシュ
マイクロサービス間の通信を管理するインフラ層。サービスディスカバリ・負荷分散・認証・暗号化・可観測性をアプリコードを変更せずにサイドカーパターンで実現する。Istioが代表的。
サービスメッシュとは?
サービスメッシュは、マイクロサービスアーキテクチャにおけるサービス間通信を管理するインフラストラクチャ層です。サービスコードを変更せずに、通信の暗号化・認証・負荷分散・可観測性を実現します。
なぜサービスメッシュが必要か?
マイクロサービスが数十〜数百に増えると、サービス間の通信管理が複雑になります:
- サービスAがサービスBに通信するとき、どこにいるか?
- 通信は暗号化されているか?
- 失敗したらリトライするか?
- どのサービスがボトルネックか?
これらをアプリコードに書くと、全サービスに散乱します。サービスメッシュはこれをインフラ層で一元管理します。
サイドカーパターン
各サービスのPodにEnvoyなどのプロキシ(サイドカー)を自動注入し、全通信をサイドカー経由にします。
[サービスA] ←→ [Envoy Proxy] ←ネットワーク→ [Envoy Proxy] ←→ [サービスB]
代表的なサービスメッシュ
| 製品 | 特徴 |
|---|---|
| Istio | 最もメジャー・機能が豊富・複雑 |
| Linkerd | 軽量・シンプル・Rustで実装 |
| Consul Connect | HashiCorp製・VM環境も対応 |
| AWS App Mesh | AWSネイティブ |
まとめ
サービスメッシュはKubernetes環境でマイクロサービスが10サービスを超えてきた頃から導入を検討する価値があります。ただし複雑性が増すため、必要性を十分に評価してから導入することを推奨します。
関連する用語 (DevOps)
全58件を見るSRE
Site Reliability Engineering(サイト信頼性エンジニアリング)の略。Googleが提唱した、ソフトウェアエンジニアリングの手法を運用・インフラに適用するアプローチ。SLO・エラーバジェット・トイルの削減が核心概念。
カナリアリリース
新バージョンを全ユーザーにいきなり公開せず、まず少数(5〜10%)のユーザーにのみ提供してリスクを最小化するリリース手法。問題があれば即座にロールバックできる。
Secret
Kubernetesでパスワード・APIキー・TLS証明書などの機密情報を管理するリソース。Base64エンコードで保存され、Podへのマウントや環境変数での参照が可能。本番ではVault等の外部シークレット管理との連携が推奨される。
IT用語: ブルー/グリーンデプロイとは|ダウンタイムゼロのリリース手法
本番環境(Blue)と新バージョン環境(Green)を並列稼働させ、瞬時に切り替えるブルー/グリーンデプロイの仕組みを解説。
ELK Stack
Elasticsearch・Logstash・Kibanaの3ツールの組み合わせ。ログの収集(Logstash)・保存・検索(Elasticsearch)・可視化(Kibana)をセットで提供する定番ログ分析基盤。
IaC(Infrastructure as Code)
インフラ構成をコードとして記述・管理する手法。Terraform・AWS CDK・Ansibleなどのツールを使い、インフラの再現性・バージョン管理・自動化を実現する。