AWS ECS размещает одну задачу на каждый инстанс EC2

Я пытаюсь создать развертывание, в котором как можно больше задач находится на каждом экземпляре EC2, но ECS по-прежнему размещает одну задачу на экземпляр, что делает их сильно недоиспользованными.

Вот все настройки, которые я считаю актуальными:

  • Поставщик емкости ASG использует управляемое масштабирование, целевая емкость установлена ​​на 100 %, экземпляры t3a.micro (2048 ЦП, 960 памяти)
  • Задача использует 480 памяти, 1024 ЦП, но для тестирования я попытался перейти на 200 памяти и 500 ЦП, и ничего не изменилось.
  • Стратегии размещения службы: binpack (процессор) и binpack (память).
  • Задачи находятся в общедоступном VPC в подсетях, которые имеют доступ к nat gateway, назначение публичного ip отключено, сетевой режим — awsvpc
  • Я меняю желаемый счет, чтобы проверить это

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

Какова конфигурация вашей сети?

Pawel Kam 11.02.2023 22:39

@PawelKam Что именно вы имеете в виду? Задачи находятся в общедоступном VPC в подсетях, которые имеют доступ к nat gateway, назначение публичного ip отключено, сетевой режим — awsvpc.

Rikudou_Sennin 12.02.2023 16:21
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Похоже, что у нужного вам экземпляра micro EC2 недостаточно мощности ENI для масштабирования более 1 задачи на экземпляр контейнера.

Согласно документации:

В сетевом режиме awsvpc Amazon ECS создает и управляет Эластичный сетевой интерфейс (ENI) для каждой задачи, и каждая задача получает собственный частный IP-адрес в VPC. Этот ENI отделен от базовые хосты ENI. Если запущен экземпляр Amazon EC2 несколько задач, то ENI каждой задачи также является отдельным.

Поскольку «этот ENI отделен от базовых ENI хостов», для запуска 1 задачи ECS требуется как минимум 2 интерфейса. В случае запуска 2 задач ECS вам потребуется 3 ENI и так далее. Когда я получаю описание типов экземпляров EC2 (вы можете просто запустить aws ec2 describe-instance-types --filters "Name=instance-type,Values=t3a.micro"), я вижу, что t3a.micro имеет максимальное ограничение только в 2 доступных сетевых интерфейса («MaximumNetworkInterfaces»: 2). Таким образом, вам нужно лучше использовать существующее максимальное количество сетевых интерфейсов или получить экземпляр контейнера с возможностью подключения большего количества сетевых интерфейсов.

Решением может быть использование типа экземпляра с более широкими возможностями ENI или увеличение плотности задач с помощью транкинга ENI. Пожалуйста, ознакомьтесь с соображениями по транкингу ENI раньше. Транкинг ENI может выглядеть примерно так:

Именно так и было, спасибо! Не знаю, как мне удалось пропустить это в документации.

Rikudou_Sennin 13.02.2023 13:02

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