マイクロサービスとは
マイクロサービスアーキテクチャは、アプリケーションを小さな独立したサービスに分割し、それぞれが独自のプロセスで実行されAPIを通じて通信する設計手法です。Netflixが大規模に採用したことで注目を集めました。
モノリスvsマイクロサービス
| 項目 | モノリシック | マイクロサービス |
|---|---|---|
| デプロイ | 全体を一度に | サービスごとに独立 |
| スケーリング | アプリ全体 | ボトルネック部分のみ |
| 技術スタック | 統一 | サービスごとに選択可 |
| チーム | 大規模な一つのチーム | 小さな独立チーム |
| 障害影響範囲 | 全体停止の可能性 | 部分的な影響に限定 |
| 複雑性 | 低い | 高い(分散システム) |
主要な設計パターン
APIゲートウェイパターン:外部クライアントの全リクエストを単一エントリポイントで受け、各マイクロサービスへルーティングします。
サーキットブレーカーパターン:下流サービスの障害が上流に連鎖しないよう、一定回数の失敗でサーキットを「オープン(遮断)」します。
イベント駆動パターン:サービス間をメッセージキュー(Kafka・RabbitMQ)で非同期連携し、結合度を下げます。
サービスメッシュ:Istioなどのサービスメッシュで、サービス間通信のロードバランシング・セキュリティ・可観測性を統合管理します。
マイクロサービス導入の判断基準
導入すべき状況:チーム規模50人以上・デプロイ頻度が高い・スケーリング要件がサービスごとに異なる。
最初からマイクロサービスを設計するのは過剰設計になりがちです。まずモノリスで始め、成長に合わせて段階的に分割するアプローチが多くの場合で合理的です。





