マイクロサービスとは

マイクロサービスアーキテクチャは、アプリケーションを小さな独立したサービスに分割し、それぞれが独自のプロセスで実行されAPIを通じて通信する設計手法です。Netflixが大規模に採用したことで注目を集めました。

モノリスvsマイクロサービス

項目 モノリシック マイクロサービス
デプロイ 全体を一度に サービスごとに独立
スケーリング アプリ全体 ボトルネック部分のみ
技術スタック 統一 サービスごとに選択可
チーム 大規模な一つのチーム 小さな独立チーム
障害影響範囲 全体停止の可能性 部分的な影響に限定
複雑性 低い 高い(分散システム)

主要な設計パターン

APIゲートウェイパターン:外部クライアントの全リクエストを単一エントリポイントで受け、各マイクロサービスへルーティングします。

サーキットブレーカーパターン:下流サービスの障害が上流に連鎖しないよう、一定回数の失敗でサーキットを「オープン(遮断)」します。

イベント駆動パターン:サービス間をメッセージキュー(Kafka・RabbitMQ)で非同期連携し、結合度を下げます。

サービスメッシュ:Istioなどのサービスメッシュで、サービス間通信のロードバランシング・セキュリティ・可観測性を統合管理します。

マイクロサービス導入の判断基準

導入すべき状況:チーム規模50人以上・デプロイ頻度が高い・スケーリング要件がサービスごとに異なる。

最初からマイクロサービスを設計するのは過剰設計になりがちです。まずモノリスで始め、成長に合わせて段階的に分割するアプローチが多くの場合で合理的です。