AWS CodeDeploy Синий / Зеленый Развертывание застряло? - PullRequest
0 голосов
/ 10 апреля 2020

Я выполнял AWS Blue / Green развертывание, чтобы протестировать базовый c apache сервер, и когда CodeDeploy проходит через 4 шага развертывания B / G, он застрял на шаге 3, то есть маршрутизация трафика c для замены экземпляров около получаса. Я не могу понять, что не так, даже после долгого времени и нескольких попыток. Я не знаю, правильна ли моя установка или нет. Вот мои настройки для развертывания B / G.

  1. Создана группа автоматического масштабирования с именем orginalautoscalinggroup с двумя экземплярами.
  2. Создана две целевые группы: одна для исходного env и вторая для замены env а именно originaltargetgroup & replacementtargetgroup.
  3. Прикрепленный originaltargetgroup является частью originalautoscalinggroup.
  4. Создал балансировщик нагрузки приложения, а именно apploadbalancer и прикрепил его с помощью originaltargetgroup
  5. Теперь apploadbalancer присоединен с originaltargetgroup, который присоединен с originalautoscalinggroup.

Моя конфигурация Codedeploy B / G выглядит следующим образом.

  1. Тип развертывания: B / G
  2. Конфигурация Env: автоматически копировать группу автоматического масштабирования Amazon EC2
  3. Группа автоматического масштабирования Amazon EC2: originalautoscalinggroup
  4. Traffi c изменение маршрута : Reroute traffi c немедленно
  5. Политика завершения: Завершение исходных экземпляров в группе развертывания
  6. Конфигурация развертывания: CodeDeployDefault.AllAtOnce
  7. Балансировщик нагрузки приложения.
  8. Целевая группа: originaltargetgroup

Я не могу подключить правильный балансировщик нагрузки или целевую группу. Пожалуйста, помогите.

Изображение1

Изображение2

1 Ответ

0 голосов
/ 13 апреля 2020

Добавление ответа на основе комментариев.

Поскольку развертывание B / G не выполняется во время перенаправления трафика c, в частности, в «Разрешить трафик c», экземпляры находятся в состоянии «нездоровый».

Если требуемые службы не работают в EC2 и недоступны, они останутся в нездоровом состоянии, и трафик c не может быть перенаправлен на них, следовательно, развертывание завершится неудачей.

Чтобы убедиться, что требуется сервисы / процессы выполняются на серверах EC2, запущенных группой AutoScaling, вы

  1. обновите конфигурацию / шаблон запуска с помощью «Данные пользователя», чтобы выполнить скрипт при запуске EC2, который установит, настроит и запустит требуемые сервисы, скажем Nginx на порту 80.
  2. Вы можете создать пользовательский AMI, в котором уже установлено необходимое приложение, и при запуске EC2 требуемый сервис / процесс запустится.

Таким образом, всякий раз, когда ASG запускает новый EC2, он go переходит в исправное состояние в зависимости от времени, необходимого для запуска процесса. Как только он исправен, он будет готов к серверу traffi c и сообщит, что старые экземпляры будут отменены.

Как только старые экземпляры будут отменены, они могут быть прекращены на основании конфигураций в CodeDeploy.

...