2015-04-19 4 views
2

Amazon's EC2 Container Service позволяет запускать любое количество контейнеров, которые вы хотите, и выберет экземпляр EC2 для автоматического запуска контейнеров. Это отличные возможности. Тем не менее, мы действительно обеспокоены автоматической масштабируемостью.Поддерживает ли AWS ECS динамическую масштабируемость каждого контейнера?

Сценарий:

  1. запускает контейнер через AWS ECS Console.
  2. HTTP-запросы начинаются.
  3. Нагрузка HTTP значительно увеличивается со временем.
  4. Использование ЦП (или ОЗУ) в контейнере приближается к 100%.

Вопрос 1: Будет ли ECS запускать еще один контейнер автоматически?

Вопрос 2: Будет ли ECS автоматически закрывать один из контейнеров при понижении нагрузки процессора (или ОЗУ)?

ответ

2

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

Update Ноябре 29, 2017

AWS Fargate это технология для Amazon ECS и EKS *, что позволяет вам контейнеры работать без необходимости управлять серверами или кластерами. С AWS Fargate вам больше не нужно создавать, настраивать и масштабировать кластеры виртуальных машин для запуска контейнеров.

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

+0

Thanks mate. Я надеялся, что интеграция ELB + ECS будет работать на основе каждого контейнера. Правильно ли говорить, что интеграция ELB + ECS не имеет представления о том, какие TaskDefifitions запускать, когда использование становится высоким? –

0

Так это не говорит об этом прямо и Натаниэль, безусловно, может быть правильным, но this blog from April 9th в этом году, кажется, подразумевает, по крайней мере, что вы можете делать то, что вы просите

долгоиграющих приложений Ранее Amazon ECS включены два пути до расписание Докерные контейнеры на кластере. Вы можете запускать задачи один раз для процессов, таких как пакетные задания, которые выполняют работу, а затем останавливаются. Вы, , также можете совершать вызовы API-интерфейсов Amazon ECS для извлечения состояния информации о кластере, а затем использовать его для подключения стороннего или персонализированного планировщика.

С сегодняшним запуском вы также можете использовать новый планировщик Amazon ECS Service для управления долгосрочными приложениями и службами. Планировщик услуг помогает поддерживать доступность приложений, а позволяет масштабировать ваши контейнеры вверх или вниз, чтобы соответствовать требованиям к потребностям приложения . Вот что он делает для вас:

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

+0

В нем говорится о балансировке нагрузки, но не упоминается автоматическое масштабирование. Ручное масштабирование - это не то, что мы ищем. –

1

Вы должны идеально поместить масштабирование как на уровне ec2, так и на ecscontainer.

В случае, если вы используете ASG, на ASG может быть настроено масштабирование ec2, основанное на аварийных сигналах cloudwatch.

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


18 мая 2016 года ECS выпустила возможность автомасштабирования. вам не понадобится Lambda для создания возможностей масштабирования на уровне обслуживания.

Пожалуйста, обратитесь к документации по выпуску и функции ниже

https://aws.amazon.com/about-aws/whats-new/2016/05/amazon-ec2-container-service-supports-automatic-service-scaling/

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html

0

По состоянию на декабрь 2017 года Amazon объявил новый сервис под названием Fargate. Цитирование:

AWS Fargate позволяет легко масштабировать ваши приложения. Вам больше не нужно беспокоиться о предоставлении достаточных вычислительных ресурсов для ваших контейнерных приложений. После определения требований к вашему приложению (например, CPU, памяти и т. Д.) AWS Fargate управляет всем масштабированием и инфраструктурой, необходимой для быстрого запуска ваших контейнеров. Вам больше не нужно решать, когда до масштабируйте свои кластеры или упакуйте их для оптимального использования.

Я предполагаю, что полужирный текст означает, что Fargate будет масштабироваться вверх и вниз ресурсы для меня. Тем не менее, не 100%.

Смежные вопросы