Полезное правило для сервисной памяти AWS ECS или требований к процессору - PullRequest
1 голос
/ 09 июня 2019

Я использую AWS ECS для развертывания моего веб-сайта. Теперь я хочу знать -

  1. Если есть какое-либо практическое правило или какой-либо способ определить объем памяти или размер процессора для служб?
  2. Или каким-либо образом определить экземпляр семейства EC2 для кластера?
  3. Лучше ли использовать Fargate вместо EC2 для экономии средств?
  4. Как лучше использовать автоматическое масштабирование в AWS ECS?

У меня есть два определения задач -

  1. Веб-сервер для обслуживания HTML, CSS, JS (Frontend Server)
  2. Микросервисы (внутренний сервер)

1 Ответ

3 голосов
/ 09 июня 2019
  1. На самом деле запустить службы с некоторой представительной нагрузкой. Смотрите с помощью инструмента, подобного top (1), который может подсказать вам фактическое использование памяти (в top ищите столбец rss или rsz) и загрузку процессора. Использование ресурсов любой данной службы невероятно зависит от выбора языка, времени выполнения, загрузки, параллелизма, алгоритмических решений, ограничений базы данных и т. Д., И на самом деле практического правила не существует.

  2. Сопоставьте фактическое измеренное использование ресурсов, некоторый гипотетический план развертывания и список типов экземпляров AWS EC2 . Если у вас есть 4 службы, для каждой из которых требуется 1 полное ядро ​​ЦП и 1 ГБ ОЗУ, и вы хотите запустить 3 реплики каждой из них, то вам нужно всего 12 ядер и 12 ГБ ОЗУ; если вы хотите, чтобы это распространилось на 3 хоста, то 3 экземпляра c5.xlarge дают вам 12 ядер и 24 ГБ оперативной памяти.

  3. Как правило, управляемые сервисы AWS не дешевле, чем запускать тот же сервис самостоятельно в чистых экземплярах EC2. В случае с Fargate это по цене в часах ЦП и часах ГБ для запланированных задач. На момент написания этой статьи гипотетическая рабочая нагрузка, которую я описал выше, обойдется примерно в 0,54 доллара США в час за us-east-1; для EC2 по требованию 3 экземпляра c5.xlarge будут стоить 0,51 доллара США в час (и это становится дешевле, если вы можете совершить покупку зарезервированных экземпляров). Если ваша рабочая нагрузка слишком высока, может быть проще планировать и отменять расписание задач ECS, чем экземпляров EC2, и модель ценообразования Fargate может работать лучше для вас.

  4. Документация ECS содержит учебник по настройке CloudWatch и группу автоматического масштабирования для автоматического расширения кластера . Уменьшить его немного сложнее (вам нужно установить для экземпляра значение , подождать, пока задачи действительно сместятся, а затем отменить его).

  5. Если вы все равно находитесь в среде все-AWS, рассмотрите размещение статического контента непосредственно в S3 . Это, вероятно, будет дешевле и проще в управлении, чем использование выделенного сервера.

...