ホーム モダナイゼーション戦略

モノリスからマイクロサービスへの分割パターン

Strangler Figパターンによる段階的移行手法、既存システムとの共存設計を解説します。

最終更新: 2026-07-28 カテゴリ: モダナイゼーション戦略

7Rの「Refactor」戦略の代表例が、モノリシックなアプリケーションを マイクロサービスへ分割するモダナイゼーションです。本記事ではその代表的な 移行パターンを解説します。

SAA レベル:基礎概念

モノリスとマイクロサービスの基本的な違い

項目モノリスマイクロサービス
デプロイ単位アプリケーション全体で1つサービスごとに独立
スケーリングアプリケーション全体を一括でスケールサービスごとに個別スケール可能
技術選択の自由度統一された技術スタックサービスごとに異なる技術選択が可能

SAA 試験のポイント

モノリスの問題点は、一部の機能だけがボトルネックになっている場合でも、アプリケーション全体をスケールさせる必要があるという非効率性です。マイクロサービス化により、負荷の高い機能だけを個別にスケールできる、という基本的なメリットがSAAで問われます。

SAP レベル:高度な設計シナリオ

Strangler Fig(絞め殺しの木)パターン

SAP 試験のポイント

モノリスを一度にすべて書き換える「ビッグバンリライト」は、非常に高いリスクを伴います。SAPレベルでは、Strangler Figパターンを使い、モノリスの一部機能を少しずつ新しいマイクロサービスに置き換え、段階的に既存システムを「絞め殺す」ように縮小させていくアプローチが推奨されます。API Gatewayやロードバランサーでルーティングを制御し、置き換えた機能へのリクエストは新サービスへ、未置き換えの機能はモノリスへ振り分けます。

Phase 1: API Gatewayを導入し、すべてのリクエストをモノリス経由でルーティング
Phase 2: 「ユーザー認証機能」を新マイクロサービスとして切り出し、該当リクエストのみ新サービスへ
Phase 3: 「注文処理機能」を切り出し、同様にルーティング
   ...
Phase N: モノリスに残る機能がなくなり、完全にマイクロサービス化が完了

既存システムとの共存設計

SAP 試験のポイント

移行期間中は、モノリスと新マイクロサービスがデータを共有しながら共存する必要があります。共有データベースへの依存が残っている場合、新旧両方のシステムから同じテーブルにアクセスする設計になりがちで、これは長期的には技術的負債になります。SAPレベルでは、新サービスは独自のデータストアを持ち、モノリスとのデータ整合性はイベント駆動(CDC等)で同期するという設計が、より健全な移行として問われます。

設計上の落とし穴

「マイクロサービス化はすべての機能を対象にすべき」という判断は、過剰な複雑性を生む場合があります。SAPレベルでは、変更頻度が高く、独立してスケールする必要がある機能から優先的に切り出し、変更が少なく安定している機能は無理にマイクロサービス化しないという選択的なアプローチが問われることがあります(すべてを分割することが常に正解ではない)。

切り出す機能の優先順位付け

  • ビジネス上の変更頻度が高い機能(頻繁に新機能がリリースされる領域)を優先的に切り出すことで、アジリティの向上効果を早期に得られる
  • スケーラビリティのボトルネックになっている機能(トラフィック集中箇所)も優先度が高い

データベース分割の考慮

  • モノリスの単一データベースを分割する際は、トランザクション境界の見直しが必要になる(2-2のSagaパターンの記事とも直結する論点)
  • 安易な分割は分散トランザクションの複雑性を招くため、ビジネスドメインの境界(Bounded Context)に沿った分割設計が重要

まとめ

  • SAA: モノリスとマイクロサービスの基本的な違い、マイクロサービス化のメリットを理解する。
  • SAP: Strangler Figパターンによる段階的移行、既存システムとの共存期間のデータ整合性設計、切り出し優先順位の判断ができる。

次は コンテナ化・EKS/ECSへの移行を見ていきましょう。