Что означает AWS CodeDeploy, когда инстанс переводится в автономный режим?

Мы используем AWS с экземплярами CodeDeploy и EC2 для запуска нескольких веб-приложений.

У нас есть 4 экземпляра EC2, на каждом из которых запущено несколько приложений, доступных через разные порты. У нас есть группы развертывания CodeDeploy, настроенные для каждого приложения. Итак, для 5 приложений существует 5 групп приложений / развертывания. Поскольку каждое приложение развертывается во всех 4 экземплярах, каждая группа развертывания включает все 4 экземпляра (с использованием тегов). Эти группы развертывания настроены для выполнения развертываний «на месте». Несмотря на то, что мы используем балансировщик нагрузки приложений, эти группы развертывания не включены для балансировки нагрузки. (В основном потому, что мне неясен ответ на вопрос ниже.)

В документации AWS указано, что во время развертывания «Экземпляры в группе развертывания переводятся в автономный режим». Что именно это означает? Переводит ли весь экземпляр EC2 в автономный режим во время развертывания? Это означает, что все приложения, работающие в одном экземпляре, будут недоступны при развертывании одного приложения в этом экземпляре?

Или это действительно только «офлайн» с точки зрения конкретного статуса приложения CodeDeploy и управления развертыванием? И фактический статус приложения действительно определяется тем, как события жизненного цикла реализованы / обрабатываются в конкретном файле appsec? Это означает, что экземпляр EC2 все еще технически доступен для трафика, независимо от того, доступно ли буквальное приложение или трафик LB направляется на экземпляр?

А если неясно, вариант использования следующий: поскольку мы запускаем несколько приложений в одном экземпляре, можем ли мы безопасно развертывать обновления для отдельного приложения, никоим образом не влияя на доступность других приложений?


person El Carverino    schedule 25.01.2019    source источник


Ответы (1)


Из документации (выделено мной):

Развертывание на месте: приложение в каждом экземпляре в группе развертывания останавливается, устанавливается последняя версия приложения, а новая версия приложения запускается и проверяется. Вы можете использовать балансировщик нагрузки, чтобы отменить регистрацию каждого экземпляра во время развертывания, а затем восстановить его работу после завершения развертывания. Только развертывания, использующие вычислительную платформу EC2 / On-Premises, могут использовать развертывания на месте. Дополнительные сведения о развертывании на месте см. В разделе Обзор развертывания на месте.

В документации ничего не говорится об остановленном экземпляре ...

Что происходит во время развертывания, определяется вашим файлом Appspec, для которого справочная документация имеет вид здесь.

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

На этом рисунке из документации AWS показан Порядок, в котором выполняются хуки (в вашем случае должен быть актуален левый поток:

введите здесь описание изображения

person Maurice    schedule 26.01.2019
comment
Я подтвердил, что это правильно, с некоторыми фактическими испытаниями. CodeDeploy не переводит экземпляр в автономный режим, а просто пытается заменить конкретное приложение на основе того, что описано в файле appsec, вместе с любыми сценариями перехвата событий. - person El Carverino; 24.02.2019