コンテナーの起動にかかる時間は、基礎となるコンテナイメージによって異なります。たとえば、太いイメージ (Debian、Ubuntu、Amazon 1/2 のフルバージョン) は、それぞれのスリムバージョン (Debian-Slim、Ubuntu-Slim、Amazon-Slim) や小さいベースイメージ (Alpine) と比較して、コンテナ内で実行されるサービスの数が多いため、起動に時間がかかる場合があります。
Amazon ECS エージェントはタスクを開始すると、リモートレジストリから Docker イメージを取得し、ローカルコピーをキャッシュします。アプリケーションのリリースごとに新しいイメージタグを使用する場合、この動作は不要です。
ECS_IMAGE_PULL_BEHAVIOR
エージェントパラメータはイメージのプル動作を決定します。以下のオプションが利用できます。
-
ECS_IMAGE_PULL_BEHAVIOR
:default
イメージはリモートでプルされます。プルが失敗した場合、インスタンスにキャッシュされたイメージが使用されます。
-
ECS_IMAGE_PULL_BEHAVIOR
:always
イメージはリモートでプルされます。プルに失敗した場合、そのタスクは失敗します。
デプロイをスピードアップするには、Amazon ECS エージェントパラメータを次のいずれかの値に設定します。
-
ECS_IMAGE_PULL_BEHAVIOR
:once
同じコンテナインスタンスの以前のタスクによりイメージがプルされていないか、自動クリーンアッププロセスによってキャッシュされたイメージが削除された場合にのみ、イメージがリモートでプルされます。それ以外の場合は、インスタンスにキャッシュされたイメージが使用されます。これにより、不要なイメージのプルがなくなります。
-
ECS_IMAGE_PULL_BEHAVIOR
:prefer-cached
キャッシュされたイメージがない場合に、リモートでイメージがプルされます。それ以外の場合は、インスタンスにキャッシュされたイメージが使用されます。キャッシュされたイメージが削除されないように、そのコンテナの自動イメージクリーンアップはオフになっています。
ECS_IMAGE_PULL_BEHAVIOR
パラメータを前述の値のいずれかに設定すると、Amazon ECS エージェントはダウンロードされた既存のイメージを使用するため、時間を節約できます。Docker イメージのサイズが大きい場合、ダウンロード時間がネットワーク経由で取得されるまでに 10 ~ 20 秒かかることがあります。