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