Помечать группу автоматического масштабирования с помощью DeploymentId для развертываний на месте?

0

У меня есть две группы развертывания для одного и того же набора экземпляров EC2: одна - развертывание на месте (например, для «горячих» исправлений незначительного значения), а другая - сине-зеленое развертывание (например, для больших изменений, где я хочу быть уверенным, что приложение, которое я запускаю, будет правильно работать на вновь подготовленных экземплярах).

Это работает хорошо, но у меня есть одна проблема: если моей группе автоматического масштабирования (используемой в сине-зеленой группе развертывания) необходимо создать новый экземпляр, новый сервер EC2 будет обеспечен идентификатором развертывания, которому ASG помечен в его CodeDeployProvisioningDeploymentIdтег. Этот тег обновляется только когда я выполняю сине-зеленое развертывание. Поскольку эти развертывания происходят реже, это означает, что новые экземпляры, которые я создаю, часто бывают несколькими, когда они создаются.

Я думаю, что мне нужно найти способ обновить значение CodeDeployProvisioningDeploymentIdтега в моей ASG, когда я внедряю изменение с использованием группы развертывания на месте, поэтому оно всегда актуально. Или, в качестве альтернативы, в моем сценарии обеспечения, который выполняется на всех новых экземплярах (для установки зависимостей и т. Д.), Я мог бы сразу же получить последний идентификатор развертывания и установить его на экземпляр.

У кого-нибудь есть какие-либо советы или советы по поводу того, как это сделать?

Мэтт Эндрюс
источник

Ответы:

1

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

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

tangerini
источник