Amazon Elastic Container Service (Amazon ECS) を使用してイメージをプルするときの遅延を軽減したいです。
解決策
イメージのサイズを小さくする
イメージの取り込み時間を短縮するには、イメージサイズを小さくします。イメージサイズを小さくする方法については、Docker Docs のウェブサイトで「ベストプラクティスを策定する」を参照してください。
Amazon Linux 2023 コンテナイメージを使用する場合は、AL2023 の最小コンテナイメージを使用してイメージサイズを小さくすることがベストプラクティスです。
最も近い AWS リージョンのエンドポイントを使用する
遅延を軽減するには、アプリケーションが実行されている場所に最も近いリージョンエンドポイントを使用します。
Amazon Elastic Container Registry (Amazon ECR) Public や Docker Hub などのパブリックレジストリを使用する場合は、プルスルーキャッシュを使用します。プルスルーキャッシュを使用すると、アプリケーションと同じエンドポイントを持つプライベートレジストリにイメージをデプロイできます。詳細については、「アップストリームレジストリを Amazon ECR プライベートレジストリと同期する」を参照してください。
イメージが既に、別のリージョンの Amazon ECR プライベートレジストリにある場合は、プライベートイメージのレプリケーションを使用します。プライベートイメージのレプリケーションを使用すると、同じイメージをアプリケーションリージョンにデプロイできます。
ECS_IMAGE_PULL_BEHAVIOR を 1 会に設定する
Amazon Elastic Compute Cloud (Amazon EC2) 起動タイプを使用している場合は、ECS_IMAGE_PULL_BEHAVIOR パラメータを変更して Amazon ECS のプル動作を構成します。コンテナインスタンスのストレージを削減するには、ECS_IMAGE_PULL_BEHAVIOR を once に設定します。この構成ではキャッシュされたイメージを使用します。イメージが以前にプルされたことがないか、自動クリーンアップによって削除された場合にのみイメージをリモートで取得します。イメージのクリーンアップに関する詳細については、「自動 Amazon ECS タスクとイメージのクリーンアップ」を参照してください。
次の例では、ECS_IMAGE_PULL_BEHAVIOUR が once に設定されています。amazonlinux:2023-minimal コンテナを使用するタスクの初回起動時に、EC2 インスタンスの Amazon ECS エージェントがイメージをプルします。イメージのプルが開始および終了した時期を確認するには、msg の値をチェックします。イメージがプルされた所要時間を確認するには、elapsed および elapsedMs を参照します。
level=info time=2024-11-11T17:02:09Z msg="Pulling image for container concurrently" container="al2023" image="amazonlinux:2023-minimal" task="taskid"
level=info time=2024-11-11T17:02:14Z msg="Finished pulling image for container" task="taskid" container="al2023" image="amazonlinux:2023-minimal" elapsed="4.6245648s" elapsedMs=4624
amazonlinux:2023-minimal コンテナを使用するタスクが 2 回目に開始されると、Amazon ECS エージェントはキャッシュを使用しますが、イメージはプルしません。msg 値を参照し、Amazon ECS がキャッシュされたイメージを見つけて使用したかどうかを確認します。
level=info time=2024-11-11T17:07:06Z msg="Found cached image, use it directly for container" task="taskid" container="al2023" image="amazonlinux:2023-minimal"
Amazon ECS エージェントの設定パラメータに関する詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。
関連情報
Amazon ECR のクロスリージョンレプリケーションが導入されました
Amazon ECR のパフォーマンスを最適化する