Ограничения неизменяемых развертываний на AWS / EB


Я пытаюсь понять недостатки неизменяемых развертываний на AWS / Elastic Beanstalk. В документах говорится следующее:

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

(Источник: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environmentmgmt-updates-immutable.html)

Однако я не могу придумать практического сценария, который потерпел бы неудачу. Я использую шаблоны CloudFormation для всех конфигураций. Можно ли интерпретировать вышесказанное так, что я не могу развернуть изменения CloudFormation а также изменения в приложении (.jar) одновременно? Я был бы очень признателен за разъяснения.
1 2

1 ответ:

Возьмите это с солью, потому что это просто предположение, основанное на чтении документов; я думаю, что базовая поддержка составляет $40/месяц, было бы хорошим вопросом, чтобы спросить их, чтобы знать наверняка.

Можно ли интерпретировать вышеизложенное, что я не могу развернуть изменения CloudFormation, а также изменения в приложении (.jar) в то же время

Я предполагаю, что вы развернете свое приложение .jar использует процесс, отличный от вашего шаблона CloudFormation. Значение при развертывании исходного кода вы не используете CloudFormation, вы можете использовать инструмент CI / CD, например Codeship. А когда вы вносите изменения в шаблон CloudFormation, вы входите в консоль AWS и обновляете шаблон там (или используете инструмент AWS CLI).

Изменение обоих одновременно, я думаю, подпадает под то, что они здесь говорят. Не делайте этого по очевидным причинам; вы не хотите, чтобы CloudFormation пыталась внести изменения в экземпляр ec2 в то же время, когда EB закрывает этот экземпляр и запускает новый один. Но более распространенным примером будет, я думаю, если вам случится использовать .ebextensions для некоторых параметров конфигурации.

.ebextensions это способ настроить некоторые вещи в EB, которые CloudFormation не может сделать или легко сделать. Это конфигурационные файлы, которые развертываются вместе с исходным кодом в папке с именем /.ebextensions в корне проекта. Примером может служить изменение некоторых специфических настроек linux https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

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