У меня есть кластер ECS со службой, выполняющей задачу, которую я определил. Это просто простой флэш-сервер, поскольку я учусь использовать ECS. Теперь я пытаюсь понять, как обновить свое приложение и беспрепятственно развернуть его.
- Я начинаю с того, что сервер фляги возвращает
Hello, World! (rev=1)
. - Я изменяю свой
app.py
локально, чтобы сказатьHello, World! (rev=2)
- Я перестраиваю образ докера и нажимаю на ECR
- Поскольку мой образ по-прежнему называется
image_name:latest
, я могу просто обновить службу и принудительно выполнить новое развертывание с помощью:aws ecs update-service --force-new-deployment --cluster hello-cluster --service hello-service
- Мой минимальный процент установлен на 100, а мой максимальный установлен на 200% (с использованием скользящих обновлений), поэтому я предполагаю, что новый экземпляр EC2 должен быть настроен, пока старый отключается. Я наблюдаю (постоянно обновляя конечную точку ELB HTTP), что rev =? в сообщении чередуется вперед и назад:
(rev=1)
, затем(rev=2)
в обязательном порядке (циклический, а не случайный). - Затем через некоторое время (может быть, 30 секунд?) Листание прекращается и появляется новое сообщение:
Hello, World! (rev=2)
- На протяжении всего этого процесса я заметил, что больше не было запущено ни одного экземпляра EC2. Так что все это должно было происходить в одном и том же случае.
Что здесь происходит? Это правильный способ обновления приложения в ECS?