Я создал два стека, используя CloudFormation.
Первый стек создает кластер с необходимыми ресурсами:
- Балансировщик нагрузки
- Группы автоматического масштабирования
- Целевые группы
- 1010 * Слушатели *
- Экземпляры EC2
- Определения задач и услуги
- Etc ...
Второй стек используется для создания стека CodePipeline для настройки конвейера непрерывной доставки.
Поток должен быть следующим:
- Пользователь отправляет код на Github
- CodePipeline запускается, выполняя следующие этапы:
- Исходный этап : извлекает код из Github
- Стадия сборки : Создает изображение и переводит его в ECR
- Этап развертывания : запускает STACK_UPDATE в первом стеке CloudFormation, описанном выше.
- Сервисы кластера ECS обновляются с помощью обновления стека CloudFormation
Все работает нормально, но у меня проблема. Я обновляю код, и кажется, что приложение работает со старым кодом, то есть конвейер работает зеленым, но код не обновляется, когда я получаю доступ к URL-адресу балансировщика нагрузки. Я предполагаю, что это потому, что сценарии CloudFormation не изменились, но мой код изменился!
Что-нибудь нужно сделать, чтобы заставить стек CloudFormation обновляться? Или я должен выполнить развертывание в кластере ECS вместо CloudFormation на этапе развертывания?