基本情報技術者試験 練習問題 20:マイクロサービスとモノリシックアーキテクチャの比較
マイクロサービスアーキテクチャについて述べた文として、正しいものはどれか。
- マイクロサービスアーキテクチャは複数の小さく独立したサービスに分割し、各サービスが自律的にデプロイ・スケーリングできる。
- マイクロサービスアーキテクチャはサービス間の結合度を高めることで、統合テストを簡素化する。
- マイクロサービスでは異なるプログラミング言語を使用することは許されず、すべてのサービスが同じ言語である必要がある。
- マイクロサービスは常にモノリシックアーキテクチャより優れており、すべての新規プロジェクトで採用されるべきである。
- マイクロサービスでのサービス間通信ではメッセージキューやRESTful APIが一般的に使用される。
Qraftユーザーの成績:難易度 Dランク(レーティング1117)・正答率 69%(11/16回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)
正解と解説を見る
正解:マイクロサービスアーキテクチャは複数の小さく独立したサービスに分割し、各サービスが自律的にデプロイ・スケーリングできる。
マイクロサービスアーキテクチャは現代的なアプリケーション開発における重要なアーキテクチャパターンです。
マイクロサービスの特徴:
1. 独立性:各サービスは独立して開発・デプロイできます
2. スケーラビリティ:負荷が高いサービスのみスケールアップできます
3. 復旧力:1つのサービス障害が全体に波及しにくい
4. 技術多様性:各サービスで異なるプログラミング言語、データベースを使用可能
正しいのは「マイクロサービスアーキテクチャは複数の小さく独立したサービスに分割し、各サービスが自律的にデプロイ・スケーリングできる」です。
マイクロサービスの課題:
サービス間の通信がネットワーク経由になるため:
- 遅延とネットワーク分割のリスク
- サービス間の依存関係が複雑化(統合テストが難しくなる)
- 分散トレーシングやログ管理の複雑化
サービス間通信:
- RESTful API:同期通信、シンプルだが遅延に弱い
- メッセージキュー:非同期通信、解結合度が高い
- gRPC:高性能な同期通信
技術多様性:
マイクロサービスの利点の一つが、サービスごとに異なる技術スタックを選択できることです。
適用時の注意:
すべてのプロジェクトに向いているわけではありません。小規模チームや小規模プロジェクトではモノリシックが効率的です。