LinuCシステムアーキテクト SA02試験の例題と解説
SA.05.2コンテナの設計とビルド
LinuC システムアーキテクト SA02試験の出題範囲から「SA.05.2 コンテナの設計とビルド」についての例題を解いてみます。
例題
独自のアプリケーションを含めたコンテナイメージを作成する際に、最小限のファイルのみが含まれる distroless のようなイメージを親イメージとして用いることの目的として、適切なのは次のうちどれか。2つ選びなさい。
- コンテナイメージのサイズを削減する。
- 潜在的なセキュリティリスクを低減する。
- アプリケーションの実行速度を向上させる。
- アプリケーションをコンテナで実行できるようにするまでのビルド手順 (Dockerfile の記載など) をシンプルにする。
- コンテナに含めたアプリケーションのデバッグを容易にする。
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「1. コンテナイメージのサイズを削減する。」と「2. 潜在的なセキュリティリスクを低減する。」です。
distroless と呼ばれるイメージは、アプリケーションを実行するために必要な最小限のシステムファイルとランタイムのみを提供するものです。これを親イメージとすることで、コンテナイメージのサイズを縮小し、イメージのサーバー間転送時間の短縮などの効果が期待できます。また、このコンテナイメージにとって不要なファイルが無いということはすなわち脆弱性などを突く対象 (Attack Surface) が減るということで、潜在的なセキュリティリスクを低減することが期待できます。
それ以外の選択肢は不正解です。コンテナイメージのサイズ削減とアプリケーションの実行速度は基本的に無関係です。また、親イメージに含まれるものが少ないということは、基本的に実行したいアプリケーションのビルドや依存ファイルの設置手順が複雑になることを意味します。さらに、distroless イメージにはデバッグツールがほとんど含まれていないため、デバッグはより困難になる可能性があります。
一般的に「余計なものが含まれていないコンテナ」はメリットが多いと考えられていますが、実際にこのようなコンテナイメージを作成したり運用したりするのはハードルが高くなる場合もあるので、要件に応じて適切な管理方法を検討する必要があります。
例題作成者
LinuC システムアーキテクト 試験開発コミュニティ