メインコンテンツへ
開発技術開発プロセス・手法

マイクロサービスアーキテクチャの特徴として、最も適切なものはどれか。

ア.すべての機能を一つのプロセスとして動作させる構成であり、デプロイと管理がシンプルになる
イ.アプリケーションを独立してデプロイ可能な小さなサービスに分割し、各サービスが単一の責務を持ち、APIを通じて連携する正解
ウ.すべてのサービスが単一のデータベースを必ず共有しなければならないアーキテクチャパターン
エ.UIフロントエンド・ビジネスロジック・データアクセス層を物理的に分離したサーバに配置する三層アーキテクチャ

解説

マイクロサービスは「大きな工場を小さな専門工房に分割する」設計。一つの工房が壊れても全体は動き続け、人気工房だけ増設(スケールアウト)できる——モノリスの「全部一緒に壊れる・全部一緒に増やす」問題を解決します。

なぜ イ が正解か

マイクロサービスアーキテクチャは、アプリケーションを「注文管理」「在庫管理」「決済」など機能ごとに独立した小さなサービスに分割します。特徴:①各サービスは独立してデプロイ可能。②サービスごとに最適な技術スタックを選択できる。③障害の局所化。④サービスごとの独立したスケールアウトが可能。⑤APIを介して連携(REST・gRPC等)。

なぜ ア は間違いか

すべての機能を一つのプロセスとして動作させるのは「モノリシックアーキテクチャ」の説明です。マイクロサービスはその対極にあります。

なぜ ウ は間違いか

マイクロサービスでは各サービスが独自のデータベースを持つ「Database per Service」パターンが推奨されます。「すべてが単一DBを共有しなければならない」はむしろアンチパターンです。

なぜ エ は間違いか

UIフロントエンド・ビジネスロジック・データアクセス層の三層分離は「三層アーキテクチャ(3-Tier Architecture)」の説明です。マイクロサービスは機能ドメインによる分割であり、技術層による分割ではありません。

出典: AI生成問題(学習用)