Рубрики
Uncategorized

Как мы потеряли 800 долларов / мес с фарвиатом Amazon ECS

Никогда не оставляйте службу ECS в неправильном настроенном состоянии. Помечено с AWS, DevOps, Docker, ECS.

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

Когда вы впервые развертываете службу ECS, агент ECS извлекает ваше изображение Docker из реестра изображений, такого как DockerHub или ECR. С этим загруженным изображением агент будет порождать контейнер Docker через команду Докер беги свой-докер-образ Отказ Затем ECS запускает проверку здоровья, чтобы увидеть, работает ли ваше приложение. Если он передает проверку здоровья, балансировщик нагрузки перенаправляет трафик к контейнеру. Если он не удается несколько проверок здоровья, контейнер убит. Затем Docker Agent пытается запустить другой контейнер от этого же изображения.

У ECS имеет два типа услуг, и они отличаются тем, как они обрабатывают попытки перезагрузки.

(1) ECS-EC2

В ECS-EC2 вы управляете флотом экземпляров EC2, которые запускают ваши контейнеры. Количество контейнеров, которые вы можете запустить, ограничен CPU и емкостью памяти вашего флота. Если экземпляр не имеет изображения, он загружает его один раз и сохраняет его локально. Следовательно, после первой загрузки изображение уже в экземпляре. Когда ваш агент Docker делает Docker Run он выбирает изображение локально.

(2) Фаргейт ECS

Основной экземпляр EC2, в котором ваши контейнерные прогоны абстрагируются от вас. У вас нет доступа к экземплярам EC2, выполнив свои контейнеры. AWS управляет этими случаями для вас; Следовательно, сервис становится Serverless . Для небольшого количества премии вы освобождены от операционного бремени управления флотом экземпляров EC2.

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

Я мигрировал наши услуги от ECS-EC2 в ECS-Fargate. Тем не менее, я не смог правильно установить одну услугу. Я покинул услугу в неправильном настроенном состоянии. Поскольку контейнеры, сделанные сервисом, неправильно повернули, он никогда не управлял приложением внутри него. Итак, он просто продолжает проваливать проверки здоровья. После нескольких сбоев контейнер разрушается, и служба пытается сделать еще один. Поскольку экземпляры под контейнерами ECS-Fargate продолжают меняться, это продолжает нуждаться в Чтобы загрузить мою 500 МБ Docker Image каждый раз, когда он перезагрузится. Представьте, как 500 МБ каждые 2-3 минуты легко добрались до 16 ТБ за один месяц.

Один из моих прошлых времен на работе изучает наш AWS Билл. Я ожидал значительных сбережений, потому что мы переехали из 10 м5 мкл экземпляров EC2, чтобы всего 1 м5. Но сбережения были всего менее половины того, что я ожидал. Так что я выкопал глубже и узнал, что Наши расходы на Nat Gateway имели увеличение 6x сгиба. Наша пропускная способность потребляется от 38 ГБ/МО к 16 ТБ/МО!

NAT Gateway — это одна сущность, через которую ресурсы в частном подсети доступа к Интернету. Это заряжает за $ 0,045 за каждый ГБ, который проходит через него.

Поскольку увеличение затрат совпало с модернизацией в Фаргит ЕСС, я решил отключить все наши контейнеры в течение нескольких минут. Расход пропускной способности внезапно снизился:

Сузить на конкретную услугу, я решил включить все, кроме что одна услуга что я оставил неправильно повернутым. Затраты внезапно вернулись снова !! Вот когда я обнаружил, что оставляя услугу в состоянии неправильной очистки в Фаргите ECS, увеличивает затраты.

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

Также Используйте свой AWS Bill в качестве механизма обратной связи Отказ Внезапно, непреднамеренные расходы в одном аспекте вашего законопроекта могут означать, что что-то пошло не так.

Особая благодарность, мой редактор, мой редактор, чтобы помочь этому посту стать более последовательным.

Я рад принять ваши комментарии/отзывы на этом посте. Просто комментируйте ниже, или напишите мне!

Оригинал: «https://dev.to/raphael_jambalos/secret-costs-of-ecs-fargate-4j3b»