Рубрики
Uncategorized

ECS: без сервера или нет? Фаргейт против кластеров EC2

Когда дело доходит до развертывания контейнеров Docker на AWS, у разработчиков есть два варианта: эластичный контейнер … Tagged с 100daysOfCode, Codenewbie, DevOps, Docker.

Когда дело доходит до развертывания контейнеров Docker на AWS, у разработчиков есть два варианта: кластеры EC2 Elastic Container Service (ECS) и Fargate. Но что из них подходит для Ваш заявление? В этой статье я смотрю на плюсы и минусы каждого — и обсуждаю, почему мы недавно внесли огромные средства в нашу собственную стратегию в TinyStacks.

Статья Джея Аллена

Кластеры EC2 против Fargate

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

Если вы не знакомы с ECS, Вы захотите проверить документацию AWS Для обзора ключевых концепций. Короче говоря, ECS позволяет работать с изображениями Docker, определяя Услуги которые состоят из одного или нескольких Задачи , с каждым задачей, является управляемым экземпляром определенного контейнера Docker.

Конечно, запуск контейнера Docker требует наличия машин для их запуска на Анкет В ECS это абстрагировано в идее ECS Cluster , логическая группировка услуг и задач. У разработчиков есть два варианта в том, как создавать и управлять кластерами ECS.

Первый выбор — создание кластера Amazon EC2. В этом сценарии вы используете изображение виртуальной машины Amazon EC2 для создания одного или нескольких виртуальных машин, которые размещены в вашей учетной записи AWS. Затем вы можете запустить задачи по случаю своего кластера.

Второй, более поздний выбор — Fargate. С FARGATE, аппаратные и виртуальные машины, на которых работают ваши контейнеры Docker, полностью управляются AWS в качестве «без сервера».

Не должно быть сюрпризом, что, поскольку совершенно разные сервисы — один на сервере, один без серверов — Fargate и EC2 -кластеры используют разные модели ценообразования. С помощью кластеров EC2 вы платите только за пропускную способность EC2 Compute и упругое блочное хранение (EBS), которую вы используете. В отличие от этого, заряды FARGATE за использование за минуту, причем расходы варьируются в зависимости от количества виртуального процессора (VCPU) и памяти, которые используют ваши контейнеры.

Кластеры FARGATE и EC2 — это разные средства для одного и того же конца: запуск контейнеров Docker в масштабируемом манере. Но каждый может иметь преимущества перед другим, в зависимости от вашего конкретного сценария.

Преимущества Fargate

Как и в случае с любой серверной службой, очарование Fargate поставляется в простоте управления. Если вы управляете своими собственными кластерами EC2, вам нужно беспокоиться о целом множестве операционных проблем — безопасности виртуальной машины, исправления и обслуживания операционной системы, а также времени безотказной работы. Поскольку Fargate использует емкость, управляемую AWS, вам не нужно беспокоиться о том, чтобы экземпляры EC2 оставались здоровыми и безопасными — AWS делает это для вас.

Использование FARGATE также может привести к операционной эффективности. С кластерами EC2 вы запускаете два ключевых операционных риска: недооценка , или не создавать достаточных случаев для удовлетворения требований вашей рабочей нагрузки; и Перепровидение , или переплачивать за Слишком много емкость, которую вы в конечном итоге не используете. С FARGATE вы платите только за выполнение контейнера — никогда за неиспользованную емкость виртуальной машины.

Преимущества кластеров EC2

Однако это не означает, что Fargate всегда лучший выбор. Есть несколько убедительных причин, по которым вы можете использовать вместо этого использовать кластеры EC2.

Ключевым преимуществом кластеров EC2 является цена. В то время как Fargate легко и удобен, это удобство стоит. Фаргейт подвергся критике со стороны сообщества разработчиков за то, что он был дорогой по сравнению с кластерами EC2. Действительно, сам AWS заявил, что Чем больше вы можете максимизировать VCPU и использование памяти кластера, тем более экономически эффективными кластерами EC2 становятся Анкет

Кроме того, кластеры EC2 могут принести вашим клиентам дополнительное спокойствие с точки зрения безопасности. В то время как AWS усердно работает, чтобы обеспечить полную изоляцию задач, работающих на FARGATE, компании в конфиденциальных отраслях, таких как финансы и здравоохранение, могут быть осторожны с их рабочими нагрузками, работающими вместе с другими произвольными процессами.

Наш опыт в крошечных веществах

В TinyStacks мы усердно работаем над тем, чтобы предоставить сквозное опыт развертывания на AWS, который освобождает команды разработчиков, чтобы сосредоточиться на коде их приложения, а не на инфраструктуре DevOps. Поскольку все приложения с поддержкой TinyStacks развернуты в качестве контейнеров Docker, работающих на ECS, мы очень заинтересованы в оптимизации нашего использования ECS для производительности, масштабируемости и стоимости.

Первоначально мы использовали кластеры FARGATE исключительно для наших развертываний стеков DevOps. Однако после запуска некоторых чисел мы пришли к выводу, что переход на наши собственные кластеры EC2 может быть более рентабельным. Мы запустили некоторые тесты, используя кластеры EC2 с Amazon ECS Cluster Auto Scaling Включено, масштабируя наши кластеры, когда экземпляры были максимально максимальными при использовании ЦП в течение более 75% в течение 5 минут, и масштабирование, когда они находились под этим порогом в течение того же количества времени. Мы также настроили масштабирование сервиса ECS и обеспечили синхронизировано с масштабированием кластеров.

То, что мы нашли, было довольно поразительным: максимизируя использование кластеров, Мы смогли сократить наши расходы на ECS с кластерами EC2 на 40% по сравнению с Fargate Анкет Самая маленькая экономия стоимости пришла с большими экземплярами. EC2 M5.xlarge с 4 VCPU и 16GIB RAM выступил до 138,24 долл. США в месяц по сравнению с кластером FARGATE аналогичного размера, который составил около 167,788 долл. США в месяц — разница в стоимости 18%. Но самый маленький размер экземпляра, который мы использовали — T3.Nano с 2 VCPU и 0,5 -гвообразным оперативной памятью — составлял всего 3,744 долл. США в месяц. Сравните это с самым маленьким типом экземпляра Fargate, VCPU. Это полная экономия стоимости 79%.

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

Короче говоря, Fargate определенно имеет некоторые преимущества с точки зрения простоты использования и обслуживания. Но с точки зрения стоимости, Cluster Hosting EC2 для ECS, безусловно, является явным победителем.

Оригинал: «https://dev.to/tinystacks/ecs-serverless-or-not-fargate-vs-ec2-clusters-11ch»