Как быстро ECS может загнать контейнер в контейнер?

Какое минимальное/среднее время для AWS ECS Fargate для загрузки и запуска изображения докеров?
Для аргументов ради, 45MB anapsix/alpine-java изображение.

Я хотел бы изучить использование ECS Fargate, чтобы ускорить процесс создания программного обеспечения на локальном компьютере на медленном ноутбуке/ПК, имея программное обеспечение, построенное на более быстром удаленном сервере.
Таким образом, время загрузки изображения имеет решающее значение для того, чтобы сделать endevour стоящим.

Ответ 1

Я бы не согласился с принятым ответом, учитывая мой опыт работы с Fargate.

Я запустил 1000 контейнеров на Fargate, и даже был представлен в блоге об архитектуре AWS для нашего использования Fargate. https://aws.amazon.com/blogs/architecture/building-real-time-ai-with-aws-fargate/

Для частных подсетей за шлюзом NAT время запуска для нас не отличается от времени, когда контейнеры находятся за IGW. Если вы используете только один экземпляр NAT, ваш пробег может отличаться.

Время запуска контейнера в Fargate полностью определяется размером вашего контейнера. Fargate не кэширует контейнеры, поэтому каждая задача запуска приводит к извлечению из докера. Если ваши изображения основаны на Ubuntu, у вас будет плохое время.

У нас есть смесь GO с нуля и контейнеров Alpine.

В среднем на основе метрик мы собрали из 1000 запусков, с нуля контейнеры запускаются и исправны в целевой группе через 10-15 секунд.

Альпийские контейнеры запускаются в среднем за 30-40 секунд и становятся здоровыми.

Все, что длиннее, и ваши контейнеры, вероятно, слишком велики для Fargate, чтобы иметь какой-либо смысл, пока они не предлагают предварительно кэшированный ecr или что-то подобное.

Для вашего конкретного примера у нас есть контейнеры аналогичного размера, если ваша точка входа быстро исправна (т.е. не 60-секундное время запуска Java), ваш контейнер объемом 45 МБ должен запуститься и быть готовым к работе через 30-60 секунд.

Ответ 2

Сейчас я запускал более 100 контейнеров в Fargate, а на публичном VPC они занимают около 4 минут в среднем, но я видел его до 7-8 минут в плохой день.

Если вы запустите его на Private VPC, тогда время может пойти на юг в спешке. Я видел, что для запуска контейнера Fargate требуется 2 часа, если экземпляр NAT перегружен.

Надеюсь, AWS ускорит это со временем. Мне не нужно занимать больше времени, чтобы запустить контейнер Fargate, чем загружать изображение докеры в ECR.

Ответ 3

Я все еще жду кэширования в Fargate, которое доступно в ECS + EC2.
Тем не менее, это мой опыт работы с контейнерами Docker на Fargate.
Размер контейнера в зависимости от времени загрузки:

4000 МБ ~ 5 минут
2400 МБ ~ 4 минуты
1000 МБ ~ 2 минуты
350 МБ ~ 50 секунд

Ответ 4

Можно использовать ECS_IMAGE_PULL_BEHAVIOR = предпочитаемое кэширование в типе запуска EC2, чтобы значительно сократить время запуска агента.