コンテナと AMI の最適化 - AWS Batch

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンテナと AMI の最適化

最初に実行するジョブセットでは、コンテナのサイズと構造が重要です。コンテナが 4 GBを超える場合は、特に当てはまります。コンテナイメージは、レイヤーで構築されます。レイヤーは、3つの並行スレッドを使用して Docker により並行して取得されます。max-concurrent-downloads パラメータを使用して、同時にスレッド数を増やすことができます。詳細については、Dockerドキュメント を参照してください。

より大きなコンテナを使用することもできますが、起動時間を短縮するために、コンテナの構造とサイズを最適化することをお勧めします。

  • コンテナが小さいほどフェッチが速い — コンテナが小さいほど、アプリケーションの起動時間の高速化につながります。コンテナのサイズを小さくするには、あまり更新されないライブラリやファイルをAmazon マシンイメージ (AMI) にオフロードします。またバインドマウントを使用して、コンテナへのアクセスを可能にすることもできます。詳細については、バインドマウントを参照してください。

  • サイズが同じレイヤーを作成し、大きなレイヤーを分割する — 各レイヤーは 1つのスレッドで検索されます。ですから、大きなレイヤーは、ジョブの起動時間に大きく影響する可能性があります。コンテナのサイズを大きくすることと、起動時間を短縮することの望ましいトレードオフとして、レイヤーの最大サイズを 2 GB にすることをお勧めします。docker history your_image_id コマンドを実行して、コンテナイメージの構造とレイヤーサイズを確認できます。詳細については、Docker ドキュメントを参照してください。

  • Amazon Elastic Container Registry をコンテナリポジトリとして使用する — 何千ものジョブをパラレル実行すると、自己管理型リポジトリに障害が発生したり、スロットルされたスループットが抑制されたりする可能性があります。Amazon ECR は大規模に動作し、最大 100 万個以上の vCPUs を使用するワークロードを処理できます。

    Diagram showing layers of machine images and containers with data types and change frequencies.