AWS Группа развертывания CodeDeploy (синий / зеленый) с двумя балансировщиками нагрузки - PullRequest
0 голосов
/ 01 августа 2020

Моя архитектура выглядит так:

Internal ALB -> Target Group 1 
                               \ 
                                 -> Fargate Task (using ECS Service)
                               /
External ALB -> Target Group 2 

Эта служба ECS работает полностью нормально. Я могу выполнить задачу, используя оба балансировщика нагрузки для внутреннего и внешнего трафика. c.

Я хочу создать группу развертывания Blue / Green CodeDeploy, соответствующую приложению CodeDeploy, которое успешно развернет обслуживание по мере необходимости. Для всего этого я использую интерфейс командной строки.

Проблема в том, что, поскольку я использую два балансировщика нагрузки, я не могу связать их оба для создания группы развертывания CodeDeploy. Есть ли какие-нибудь указатели на то, как я могу создать эту группу развертывания?

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

В целом, я хочу добиться, чтобы к сервису можно было обращаться внутри VP C с использованием внутреннего ALB, а также извне с помощью его publi c ALB. Итак, я создал как ALB, так и слушателей для этих ALB, а затем эти целевые группы присоединяются к службе ECS.

1 Ответ

0 голосов
/ 04 августа 2020

В настоящее время CodeDeploy не поддерживает использование нескольких целевых групп, они поддерживаются только при использовании стиля развертывания скользящего обновления 1 (не сине-зеленое действие):

Несколько целевые группы поддерживаются только тогда, когда служба использует тип контроллера развертывания скользящего обновления (ECS). Если вы используете CodeDeploy или внешний контроллер развертывания, несколько целевых групп не поддерживаются.

Если это возможно для службы, рекомендуемым обходным путем было бы использовать скользящие обновления ECS вместо Blue / Green CodeDeploy. Если это невозможно, единственный другой обходной путь - либо разделить службу на две (по одной для каждого порта), либо разработать пользовательскую лямбда-функцию, которая будет работать как часть ловушки жизненного цикла 2 , лямбда-функции придется позаботиться о создании дополнительной целевой группы.

...