Публичное облако дает много возможностей, но без эффективного управления расходами деньги могут уходить на неиспользуемые и недостаточно используемые облачные ресурсы. К появлению таких ресурсов чаще всего приводят некорректные настройки сервисов, низкая автоматизация действий и слабое понимание концепций платежей. Чтобы выявить неиспользуемые ресурсы в AWS, существуют специальные сервисы.
Инструменты для работы с бюджетами и ресурсами AWS
AWS Cost Explorer
Инструмент для анализа и прогнозирования затрат, который поможет разобраться в расходах на визуализированных моделях за период до 12 месяцев. Отчеты по умолчанию позволяют быстро определить основные расходные статьи и тенденции использования ресурсов. Для более глубокого анализа сервис позволяет выбирать данные по различным параметрам.
AWS Trusted Advisor
Комплексный инструмент, который на основе рекомендаций позволяет выделять ресурсы, чтобы повысить безопасность системы и найти возможности для экономии денежных средств. Оптимизация затрат включает в себя проверки и оповещения для:
- недостаточно используемых экземпляров EC2 и RDS;
- томов EBS с небольшой активностью записи или вообще без нее;
- недостаточно используемых балансировщиков нагрузки;
- неиспользуемых эластичных IP-адресов.
Trusted Advisor также дает рекомендации по RI зарезервированным инстансам на основе предыдущей истории использования.
AWS CloudWatch
Служба мониторинга инфраструктуры, где пользователь может анализировать файлы журналов, отслеживать предполагаемые расходы на индивидуальные сервисы AWS и настраивать сигналы тревоги на превышение порога использования ресурсов. CloudWatch можно применять для сбора метрик и реагирования в автоматическом режиме на изменения ресурсов AWS.
Выделить вычислительные ресурсы в AWS легко. Но так же легко оставить их включенными, когда в мощностях отпала необходимость. Поэтому усилия по экономии средств лучше всего начать с очистки всех неиспользуемых ресурсов, которые бесцельно расходуют бюджет.
Где искать неиспользуемые ресурсы
Экземпляры EC2
Неактивные экземпляры EC2 — одна из главных причин завышенных счетов AWS. Чтобы предотвратить ненужные потери, следует использовать аварийные сигналы CloudWatch для автоматической остановки или прекращения экземпляров, которые простаивали дольше определенного периода.
Тома EBS
По умолчанию при завершении поддерживаемого экземпляра удаляются только те тома EBS, которые были подключены при запуске. Любые дополнительные тома, подключенные после запуска, продолжают работать. Если оставить их включенными дольше необходимого, это может дорого обойтись.
Затерявшиеся снимки
Снапшоты не удаляются после завершения экземпляра, как и тома EBS. Резервная копия захватывает весь том. Поэтому их необходимо удалить при первой возможности, иначе снимки могут стоить гораздо дороже, чем кажется.
Балансировщики нагрузки (ELB — Elastic Load Balancing)
Состояние каждого балансировщика нагрузки необходимо периодически проверять, чтобы убедиться, что он активно используется. Если у балансировщика не подключены серверные инстансы — значит, он используется неэффективно. В таком случае нужно подключить инстансы или удалить балансировщик.
Эластичные IP
Важно проверять наличие эластичных IP-адресов, не связанных с работающим экземпляром, поскольку за них взимается почасовая плата. За EIP, связанные с остановленным инстансом, тоже придется платить, поэтому надо вовремя их выявить и отключить.
Что еще можно сделать для экономии на облаке Amazon
Правильно настроить вычислительные ресурсы
Если инстансы обеспечивают больше мощности и памяти, чем необходимо для рабочих нагрузок, то сливаются бюджеты, а если не дотягивают — пострадает производительность приложения. Приложения нужно настраивать так, чтобы всегда использовалось 70–80% мощностей.
Оптимизировать хранилище
В феврале 2017 года в AWS изменили способ работы EBS, позволив настраивать
размер томов без их отсоединения. Это упрощает оптимизацию емкости блочного хранилища и управление расходами. Контролировать использование дисков томами EBS можно с помощью CloudWatch.
Самый экономичный способ хранить данные — использовать Amazon S3. Хранилище ограничивает использование более дорогих сервисов, таких как EBS и EFS. S3 может автоматически масштабироваться. После настройки S3 данные будут автоматически перемещаться в другой класс хранилища, при этом нет необходимости изменять приложение.
Применять автоматическое масштабирование
EC2 Auto Scaling — функция горизонтального масштабирования, которая автоматически разворачивает новые экземпляры, по мере того как нагрузка на приложение возрастает, и сворачивает их, когда потребность падает.
Использовать зарезервированные инстансы (Reserved Instances)
Зарезервированные инстансы могут обеспечить экономию до 75% по сравнению со стандартными тарифами. За RI необходимо следить, чтобы вовремя распределять между ними другие рабочие нагрузки, если они не используются или используются недостаточно. К тому же AWS не обновляет их автоматически.
RI — хороший способ сэкономить, если заранее известно, что определенное количество EC2-машин будет постоянно использоваться в течение длительного периода. Концепция резервирования применяется в AWS в том числе к ElasticCache, DynamoDB, Redshift.
Закупать спотовые инстансы (Spot Instances)
Использование спотовых инстансов потенциально может принести экономию до 90%. По сути, это виртуальные мощности, простаивающие на данное время. Поэтому в любой момент машина может быть остановлена.
Однако возможность переводить спотовые инстансы в режим гибернации или, в случае прерывания, останавливать их, чтобы затем восстановить, делает этот инструмент экономии привлекательным для ряда задач.
Оптимизировать время работы
Для реализации потребуется использовать функции EC2 AMI, EBS, CloudFormation и другие настройки. Основная задача здесь состоит в том, чтобы без потери данных включать и выключать машины.
Выстраивать экономичную архитектуру
Чтобы в полной мере использовать функции облака, необходимо разбивать приложения на слабо связанные компоненты. Это помогает эффективно масштабироваться за счет возможности независимо регулировать емкость каждого компонента, обеспечивая более точное соответствие приложения ресурсам.
Дополнительно можно снизить вероятность появления неиспользуемых ресурсов с помощью тегов. Правильное обращение с редактором тегов облегчает видимость всей инфраструктуры, помогая быстро определить, кто, когда и как использовал облачные ресурсы, какие изменения были внесены.
Как правило, все перечисленные в статье действия по сокращению стоимости услуг по умолчанию выполняют поставщики облачных сервисов. Ни один серьезный провайдер не допустит появления неиспользуемых ресурсов у своих клиентов. Поэтому, если нет времени выискивать возможности для экономии и разбираться с тегами, можно обратиться к помощи профессионалов.