【システムアーキテクチャ】すべての機能を単一のプログラムに集約!「モノリスアーキテクチャ」|情報処理問題1000本ノック
基本情報技術者試験、応用情報技術者試験、システムアーキテクト試験のシステム設計・クラウド移行分野で頻出の根幹概念。「モノリスアーキテクチャ」の定義と、対比される「マイクロサービスアーキテクチャ」とのメリット・デメリットを攻略しましょう。
1. 【 問題 】:テクノロジ・開発系(システムアーキテクチャ設計)
【 問題 】 ソフトウェアのアーキテクチャ構造に関する記述です。UI処理、業務ロジック、データベースアクセスなどのすべてのアプリケーション機能が、単一のコードベースおよび実行ファイルとして統合・構築されている設計スタイルは、次のうちどれか。
(ア)マイクロサービスアーキテクチャ(Microservices Architecture)
(イ)モノリスアーキテクチャ(Monolithic Architecture)
(ウ)サーバーレスアーキテクチャ(Serverless Architecture)
(エ)イベント駆動型アーキテクチャ(Event-Driven Architecture)
2. 正解:
正解:(イ)モノリスアーキテクチャ(Monolithic Architecture)
3. 解説:「『大きな1つの巨大な岩(一枚岩)』としてのシステム構造!」
モノリス(Monolith)とは「一枚岩」を意味する言葉です。
小規模開発の段階ではシンプルな構造で扱いやすい一方、システムが大きくなると「1箇所の修正で全機能のテストと再デプロイが必要になる」「特定の機能だけを個別にスケール(拡張)できない」といった限界が生じます。
| 比較項目 | モノリスアーキテクチャ | マイクロサービスアーキテクチャ |
|---|---|---|
| 構成単位 | すべての機能が1つのプログラム(一体型) | 機能ごとに独立した複数のサービス群(分散型) |
| デプロイ・更新 | 一部分の変更でもシステム全体の再デプロイが必要 | サービスごとに独立して開発・デプロイが可能 |
| スケーラビリティ | 全体をまるごと複製して増強(部分拡張は困難) | 負荷の高い特定サービスだけを個別にスケールアウト可能 |
| 初期開発・運用 | 全体像を把握しやすく、初期開発やテストが容易 | サービス間通信(API)や分散管理の設計が複雑 |
1. 理解のコツ:
・「全部入りのお弁当箱」がモノリスです。おかずを1つ変更するだけでも、お弁当箱全体を作り直す必要があります。
・一方、小分けのパックを組み合わせる「バイキング方式」がマイクロサービスです。
2. 試験対策の視点:
・問題文に「単一のプログラム」「一体型の構成」「全体をまとめてデプロイ」「単一のコードベース」と来たら、迷わずモノリス(モノリシック)アーキテクチャを選択しましょう!
・近年は、既存の「モノリス」から「マイクロサービス」へ段階的に移行する(モダナイゼーション)文脈で出題されることが非常に多いです。
4. まとめ
すべての機能が単一の実行ファイル・プログラムとして統合された従来の設計構造。これがモノリスアーキテクチャです。対話的なAPI連携で各機能を独立させるマイクロサービスとの違いも含めて完璧に理解しておきましょう!