モノリス
全機能を 1 つのデプロイ単位にまとめたアーキテクチャで、シンプルだが大規模化で課題が生じる
アーキテクチャ設計
モノリスとは
モノリスは、全機能を 1 つのデプロイ単位にまとめたアーキテクチャである。シンプルで開発が速いが、大規模化するとデプロイの遅延やチーム間の調整コストが増加する。
モノリス vs マイクロサービス
| 観点 | モノリス | マイクロサービス |
|---|---|---|
| デプロイ | 全体を一括 | サービスごと |
| スケーリング | 全体をスケール | サービスごと |
| 開発速度 (初期) | 速い | 遅い (インフラ構築) |
| 開発速度 (大規模) | 遅い (調整コスト) | 速い (独立) |
| 運用の複雑さ | 低い | 高い |
| トランザクション | 容易 | 分散トランザクション |
モノリスの問題
| 問題 | 説明 |
|---|---|
| デプロイの遅延 | 小さな変更でも全体をデプロイ |
| スケーリングの非効率 | 注文処理だけスケールしたいのに全体をスケール |
| チーム間の調整 | 同じコードベースで衝突 |
| 技術スタックの固定 | 全体が同じ言語・フレームワーク |
モノリスの段階的分割
Phase 1: モノリス (1 Lambda)
Phase 2: モジュラーモノリス (内部を分離)
Phase 3: マイクロサービス (Lambda を分割)
いつモノリスを選ぶか
| ケース | 推奨 |
|---|---|
| 新規プロジェクト | ✅ モノリスから始める |
| チーム 1〜5 人 | ✅ モノリス |
| ドメイン境界が不明確 | ✅ モノリス |
| チーム 10 人以上 | マイクロサービスを検討 |
より深く学ぶには関連書籍が役立つ。