Как работает развертывание с нулевым временем простоя с помощью ECS?

У нас есть кластер ECS, выполняющий одну задачу в Fargate. Мы хотим настроить развертывание так, чтобы у нас не было простоев, гарантируя при этом, что трафик направляется только к одной задаче за раз.

Установив desiredCount на 1, minimumHealthyPercent на 100% и maximumPercent на 200%, ECS запустит одну новую задачу без предварительной остановки существующей задачи. Это дает нам нулевое время простоя.

Однако как обрабатывается трафик во время этого процесса? Когда ECS запускает новую задачу, прекратит ли она отправлять трафик существующей задаче перед тем, как направить трафик на новую (что является нашим желаемым поведением)? Или ECS будет маршрутизировать трафик к обеим задачам до тех пор, пока старая задача не будет остановлена ​​(чего мы хотим избежать)?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
364
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ECS не обрабатывает маршрутизацию трафика в этом сценарии, маршрутизацией трафика занимается ваш балансировщик нагрузки. По умолчанию балансировщик нагрузки выполняет циклическую маршрутизацию трафика. Как только в целевой группе станут доступны два экземпляра задачи, балансировщик нагрузки будет отправлять каждый второй запрос в другой экземпляр вашей задачи. Это означает, что в течение короткого времени во время развертывания оба экземпляра задачи ECS будут обрабатывать трафик.

Алгоритмы маршрутизации, доступные для настройки в вашей целевой группе, описаны здесь. Как видите, все они представляют собой некую форму распределения запросов по всем доступным целям. Таким образом, изменение алгоритма маршрутизации не поможет вам достичь желаемой цели.

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

Если вы установите для параметра Задержка отмены регистрации целевой группы значение 0, она должна (теоретически) отменить регистрацию старого экземпляра задачи и прекратить отправлять на него трафик, как только новый экземпляр пройдет проверку работоспособности Порог работоспособности Посчитайте. Я думаю, что это самое близкое к достижению заявленной вами цели: «прекратить отправку трафика на существующую задачу, прежде чем направлять трафик на новую».

Другие вопросы по теме

Похожие вопросы

Сервисный модуль Systemd не может получить доступ к Jarfile в Ubuntu при запуске документа SSM
Есть ли способ прикрепить политики ServiceRoles к роли, созданной вручную, с помощью AWS CDK?
Как создать несколько правил группы безопасности AWS, прочитав несколько файлов yaml с помощью terraform?
Как избежать ошибки «Неверный тип аргумента» при выполнении, казалось бы, допустимой команды AWS CLI, созданной с использованием jq и bash?
Поместите объект/файл в S3 (паркет или CSV)
Импортируйте существующие ресурсы AWS с помощью CDK
Почему мой шаблон исключения Glue Crawler не применяется?
Какой API нам следует использовать, чтобы получить назначенные роли из ключа доступа AWS и секретного ключа доступа AWS?
Невозможно загрузить PDF в корзину S3 через заранее назначенный URL-адрес, созданный из моего бэкэнда Node
Как настроить различные наборы методов класса на основе переменной среды?