Добавление ответа на основе комментариев.
Поскольку развертывание B / G не выполняется во время перенаправления трафика c, в частности, в «Разрешить трафик c», экземпляры находятся в состоянии «нездоровый».
Если требуемые службы не работают в EC2 и недоступны, они останутся в нездоровом состоянии, и трафик c не может быть перенаправлен на них, следовательно, развертывание завершится неудачей.
Чтобы убедиться, что требуется сервисы / процессы выполняются на серверах EC2, запущенных группой AutoScaling, вы
- обновите конфигурацию / шаблон запуска с помощью «Данные пользователя», чтобы выполнить скрипт при запуске EC2, который установит, настроит и запустит требуемые сервисы, скажем Nginx на порту 80.
- Вы можете создать пользовательский AMI, в котором уже установлено необходимое приложение, и при запуске EC2 требуемый сервис / процесс запустится.
Таким образом, всякий раз, когда ASG запускает новый EC2, он go переходит в исправное состояние в зависимости от времени, необходимого для запуска процесса. Как только он исправен, он будет готов к серверу traffi c и сообщит, что старые экземпляры будут отменены.
Как только старые экземпляры будут отменены, они могут быть прекращены на основании конфигураций в CodeDeploy.