Можно ли использовать AWS CodeDeploy с ECS, AutoScaling и поставщиком емкости?

Сначала я немного объясню свой случай.

Я использую консоль AWS (веб-сайт), чтобы делать все, о чем я расскажу. В настоящее время я размещаю новый проект, который представляет собой API. Мне нужно решение, которое может автоматически адаптироваться к текущему трафику, и я хочу, чтобы развертывание было как можно проще.

Для размещения своего API и других служб я использую кластер ECS, в котором в настоящее время есть только одна служба (API). К нему также прикреплен ALB (Application Load Balancer). Эта служба может запускать от 1 до X задач, где X - максимальное количество экземпляров, которое может запустить автоматическое масштабирование. Автоматическое масштабирование предназначено для настройки количества экземпляров по мере увеличения количества запросов к ALB.

Замечание: на каждый экземпляр приходится одна задача. Таким образом, наличие 5 экземпляров означает 5 всего задач.

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

Поскольку я хочу, чтобы развертывание было простым, я сначала выбрал CodeBuild, чтобы кое-что сделать (например, создать многоразовый и настраиваемый образ докера для моего API). Я обнаружил, что CodePipeline также может каким-то образом обернуть процесс сборки И процесс развертывания. Но для этого нужно, чтобы CodeDeploy уже был настроен, поэтому я попытался создать его с ECS в качестве вычислительной платформы.

Теперь проблема в том, что CodeDeploy требуется служба ECS для использования синих / зеленых развертываний. Кажется, что для включения синего / зеленого развертывания нам не разрешено иметь поставщика емкости.

Поставщики емкости кластера не поддерживаются при использовании сине-зеленого типа развертывания. Источник

Я нашел тему, которая, кажется, использует автоматическое масштабирование в качестве вычислительной платформы для приложения CodeDeploy Источник

Но здесь используют только EC2, а не ECS ...

Итак, есть ли другой способ достичь того, чего я хочу?


comment
Думаю, вы уже сами ответили - нельзя использовать B / G с поставщиками емкости.   -  person Marcin    schedule 03.02.2021
comment
Хм, да, я понял это, написав пост. Возможно, мне стоило перефразировать заголовок, чтобы он был больше похож на то, могу ли я избавиться от поставщика емкости в моем случае, чтобы иметь возможность использовать CodeDeploy   -  person Luxior    schedule 03.02.2021
comment
Вам не обязательно использовать CP для использования ECS, но вам придется самостоятельно управлять масштабированием ваших инстансов.   -  person Marcin    schedule 03.02.2021
comment
@Luxior Поддерживает ли он сейчас? Спасибо!   -  person Franxi Hidro    schedule 09.06.2021
comment
@FranxiHidro Согласно этой теме на git github.com/aws/containers-roadmap/issues/ 713 это, к сожалению, я не тестировал, потому что наша среда уже работает. Не знаю, должен ли я сам отвечать на этот пост, даже если я не могу проверить, работает ли он   -  person Luxior    schedule 10.06.2021


Ответы (1)


Следуйте этому документу: https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-ecs-deployment.html, CodeDeploy в настоящее время не поддерживает поставщик емкости Amazon ECS.

person Franxi Hidro    schedule 03.02.2021