問題
問97
ある会社では、業務アプリケーションを複数のコンテナとしてマイクロサービスアーキテクチャで構築している。この環境におけるサービスマネジメント上の考慮点として、最も適切なものはどれか。
- 単一の巨大なアプリケーション(モノリス)であるため、障害発生時の原因特定が容易である。
- サービス間の依存関係が複雑になりがちなため、分散トレーシングなどを用いてサービス全体の監視を強化する必要がある。
- 全てのサービスが一体となっているため、一部のサービスのみを更新することはできない。
- コンテナの数が少ないため、リソース管理や監視のオーバーヘッドはほとんどない。
正解
正解は「イ」です。
解説
正解は「サービス間の依存関係が複雑になりがちなため、分散トレーシングなどを用いてサービス全体の監視を強化する必要がある。」です。マイクロサービスアーキテクチャとは、大きなアプリケーションを「商品管理」「顧客管理」「決済」といった小さな独立したサービス(マイクロサービス)の集まりとして構築する手法です。各サービスはコンテナという軽量な実行環境で動きます。
この手法のメリットは、サービスごとに開発・修正・拡張がしやすい点ですが、一方でデメリットも存在します。それは、サービス同士が互いに通信しあって連携するため、全体の動きが複雑になることです。
例えば、ある一つのリクエスト(商品の注文など)が、裏側では複数のサービスをまたいで処理されます。そのため、どこかで問題が発生したときに、どのサービスのどの処理が原因なのかを特定するのが難しくなります。この問題を解決するため、「分散トレーシング」のような専用の監視ツールを導入し、リクエストの全体的な流れを追跡できるようにすることが、サービスマネジメント上の重要な考慮点となります。
ア(単一の巨大なアプリケーシ…):
マイクロサービスは「複数の小さなサービス」の集まりであり、「単一の巨大なアプリケーション(モノリス)」とは正反対の構成です。記述が誤っています。
ウ(全てのサービスが一体とな…):
マイクロサービスは各々が独立しているため、「一部のサービスのみを更新できる」のが大きなメリットです。記述が誤っています。
エ(コンテナの数が少ないため…):
マイクロサービスアーキテクチャでは、機能ごとにコンテナを分けるため、一般的にコンテナの数は多くなります。そのため、管理や監視のオーバーヘッド(付随的な手間)はむしろ増大します。記述が誤っています。
解法のポイント
この問題を解くには、マイクロサービスアーキテクチャの基本的な特徴、特にメリットとデメリットを理解していることが重要です。メリットは「柔軟性・拡張性が高い」「サービスごとの独立したデプロイが可能」などです。一方、デメリット(考慮点)は「システム全体の複雑性の増大」「分散システム特有の監視の難しさ」です。選択肢ア、ウ、エはマイクロサービスの特徴と正反対のことを述べているため、消去法で考えることも有効です。選択肢イは、まさにマイクロサービスが抱える典型的な課題とその対策を述べており、最も適切な記述となります。
用語補足
マイクロサービスアーキテクチャ:
大きなシステムを、小さな独立したサービスの集まりとして作る設計方法です。一つの大きなレストランではなく、寿司屋、天ぷら屋、そば屋など、専門店が集まったフードコートのようなイメージです。
コンテナ:
アプリケーションを動かすために必要なものを一式詰め込んだ、軽量な仮想環境です。どこにでも持ち運べる弁当箱のように、どんな環境でも同じようにアプリケーションを動かすことができます。
モノリスアーキテクチャ:
全ての機能が一つにまとまった、巨大な一枚岩のようなアプリケーションの設計方法です。マイクロサービスの対義語で、全てのメニューを提供する巨大なファミリーレストランのようなイメージです。
分散トレーシング:
マイクロサービス環境で、一つのリクエストが複数のサービスをどのように渡り歩いて処理されたかを追跡・可視化する技術です。荷物が配送センターをいくつも経由して届けられる際の、追跡サービスのようなものです。


