SAP-C02既存のソリューションの継続的な改善HARD単一選択

ある企業が AWS 上でコンテナ化されたアプリケーションを Amazon ECS Fargate で運用しており、アプリケーションの起動時間が遅いという問題があります。コンテナイメージのサイズが 3GB あり、ECR からのプル時間が起動の大部分を占めています。コンテナの起動時間を短縮するには、どの方法が最も効果的ですか?

  1. A. コンテナイメージを圧縮して S3 に保存し、起動時に展開する
  2. B. Fargate から EC2 のオートスケーリングに移行し、AMI にコンテナイメージを焼き込む
  3. C. Amazon ECR のイメージレイヤーキャッシュを活用するよう Dockerfile を最適化し、頻繁に変更されるレイヤーを最後に配置する。さらに、Amazon ECR に保存するイメージを OCI インデックスと Lazy Loading(SOCI: Seek-Optimized Container Image)を使用することで、イメージ全体のダウンロード完了前にコンテナを起動する
  4. D. コンテナを事前に大量に起動しておき、リクエストが来たら既存のコンテナを使用する
解答と解説を見る

正解: C

Dockerfile の最適化(変更頻度の低いレイヤーを先に配置)でレイヤーキャッシュを活用できます。AWS は ECS Fargate で SOCI(Seek-Optimized Container Image)インデックスをサポートしており、イメージ全体のダウンロードを待たずにコンテナを起動(Lazy Loading)できます。3GB のイメージでも数秒以内の起動が可能になります。またマルチステージビルドでイメージサイズそのものを削減することも重要です。 A: S3 への保存と展開は ECR より遅く、コンテナ起動のフローを複雑にします。 D: 事前起動は高い待機コストが発生します。Fargate のサーバーレスの特性を失うことになります。 B: EC2 への移行は AMI への焼き込みは可能ですが、Fargate のマネージドな特性を失い、EC2 クラスターの管理負荷が生じます。

▸ この試験を本気で演習する(全150問・無料)