Робота з оптимізацією бюджетів AWS

💡 Усі статті, обговорення, новини про DevOps — в одному місці. Приєднуйтесь до DevOps спільноти!

Привіт усім! Мене звати Сергій, я є Senior DevOps Engineer у компанії Yalantis, працюю на проєкті у сфері IoT. В моєму досвіді є успішні фінтех та Telecom-проєкти.

Незалежно від розміру й складності проєкту, ми завжди прагнемо до оптимізації витрат. Для цього використовуємо потужні інструменти, які пропонує Amazon Web Services (AWS). AWS надає різноманітні можливості для оптимізації бюджету і використання ресурсів.

У цій статті ми розглянемо ключові аспекти, пов’язані з резервуванням ресурсів, зміною розміру екземплярів, використанням спотових екземплярів, планами економії та інструментами оптимізації бюджетів в AWS.

Незалежно від того, чи є ви новим користувачем AWS, чи вже досвідченим, я вірю, що мій досвід з AWS допоможе вам досягти ще більших успіхів та зменшити витрати.

Контроль витрат за допомогою AWS Budgets та Alerts

AWS Budgets — це сервіс управління бюджетами в AWS, який дозволяє контролювати та оптимізувати витрати вашого облікового запису AWS. За допомогою AWS Budgets ви можете створити сповіщення та моніторинг для встановленого бюджету, щоб отримувати повідомлення про наближення до встановлених лімітів витрат.

Такий сервіс дозволяє налаштовувати бюджети для різних типів ресурсів, таких як обчислювальні ресурси, збережені дані, мережі та інші, щоб контролювати витрати на кожен з них окремо. Ви можете встановити сповіщення електронною поштою або SMS, щоб завжди бути в курсі стану свого бюджету та уникнути несподіваних витрат.

Аналіз витрат за допомогою AWS Cost Explorer

AWS Cost Explorer — це сервіс аналізу витрат в AWS, який дозволяє вам детально розглядати та аналізувати витрати вашого облікового запису AWS. За допомогою AWS Cost Explorer ви можете отримувати звіти та графіки, що візуалізують ваші витрати за певний період часу.

Цей сервіс надає зручний інтерфейс для аналізу даних про витрати, що допомагає вам зрозуміти, як ваші ресурси використовуються та як можна знизити витрати. Ви можете фільтрувати дані за різними видами ресурсів, щоб отримати детальний аналіз своїх витрат.

Завдяки AWS Cost Explorer ви можете виявити можливості для оптимізації витрат, виявити аномальні збільшення витрат та ідентифікувати непотрібні ресурси.

AWS Cost Explorer та AWS Budgets працюють разом, забезпечуючи вам повний контроль та аналіз витрат в AWS. Рекомендується регулярно використовувати їх для моніторингу та управління витратами в AWS. Візуалізація та аналіз витрат допомагають розуміти та оптимізувати витрати в AWS.

Використання AWS Trusted Advisor

AWS Trusted Advisor — це сервіс, який надає рекомендації щодо оптимізації та поліпшення вашого інфраструктурного середовища. Це один з безкоштовних сервісів AWS, доступних для акаунтів зі стандартною підпискою на підтримку AWS.

Основна мета Trusted Advisor — забезпечити вас рекомендаціями щодо ефективного використання ресурсів, зниження витрат, підвищення безпеки та покращення надійності середовища. Сервіс використовує автоматизовані перевірки й аналізує ресурси, щоб ідентифікувати ваші потенційні проблеми або можливості для оптимізації.

Trusted Advisor надає рекомендації у таких основних категоріях:

  • безпека (Security);
  • оптимізація витрат (Cost Optimization);
  • продуктивність (Performance);
  • стійкість до помилок (Fault Tolerance).

Trusted Advisor надає звіти, які містять детальну інформацію про кожну з рекомендацій і вказує, як вони можуть покращити безпеку, продуктивність та ефективність використання ресурсів.

Необхідно зазначити, що AWS Trusted Advisor не застосовує рекомендації автоматично, вам потрібно буде зробити зміни в налаштуваннях своїх ресурсів самостійно.

Використання AWS EC2 On-Demand, Reserved або Spot instances

Стандартним екземпляром, який використовують найчастіше, є On-Demand, але він не є економічно оптимальним. On-Demand екземпляри надають гнучкість та не вимагають авансових витрат.

Замість On-Demand екземплярів, рекомендується розглянути можливість використання інших економічно ефективніших варіантів, таких як Spot та Reserved, які ми й розглянемо далі детальніше.

Spot екземпляри доступні в більшості регіонів AWS, але доступність залежить від ринкових умов. Вони найкраще підходять для некритичних завдань з низьким пріоритетом, які можна зупиняти та запускати, не впливаючи на роботу користувача чи продуктивність програми, оскільки вони можуть бути неочікувано перервані.

Spot екземпляри надають потенціал для значної економії коштів (до 90%) порівняно з On-Demand.

Reserved-екземпляри найкраще підходять для довгострокових зобов’язань. Ви зобов’язуєтесь використовувати Reserved-екземпляри на 1 або 3 роки і отримаєте значну знижку на обчислювальні ресурси.

У AWS доступні різні типи резервування ресурсів, що дозволяють отримати знижки та оптимізувати витрати. Основні типи резервування ресурсів в AWS: «All Upfront», «Partial Upfront» та «No Upfront». Кожен тип має свої особливості та підходить для різних сценаріїв використання. На малюнку нижче зображена таблиця з порівнянням типів резервування та потенціальною вигодою.

Плануванні інфраструктури та підбір відповідних екземплярів

Одним з важливих елементів оптимізації є планування інфраструктури в AWS, інженерам рекомендується ретельніше підходити до вибору розміру екземплярів (EC2, RDS, ElastiCache), щоб вони оптимально відповідали вашому робочому навантаженню.

Варто уникати застосування надлишкових екземплярів, оскільки це може привести до непотрібного споживання ресурсів та збільшення витрат. При правильному підході до вибору екземплярів, ви забезпечите ефективність та оптимізацію вашої інфраструктури, що є ключовим для успішного функціонування в середовищі AWS.

На малюнку нижче зображена таблиця з типами EC2-екземплярів в залежності від призначення.

Також варто звернути увагу на такий тип екземпляра як Graviton — він є особливим видом обчислювальних ресурсів, які використовують процесори з архітектурою ARM.

Ці екземпляри названі «Graviton» на честь першого ARM-процесора, розробленого компанією AWS. Вони надають користувачам багато переваг і можуть бути ефективним рішенням для різних випадків використання.

Чому варто обрати саме Graviton:

  • Graviton-екземпляри зазвичай мають нижчу вартість в порівнянні з іншими типами екземплярів на базі процесорів x86.
  • Попри меншу вартість, Graviton-екземпляри можуть забезпечити гарні показники продуктивності, особливо для завдань з обчислювальною інтенсивністю.
  • Використання процесорів ARM зменшує споживання електроенергії, що допомагає знизити вплив на довкілля.
  • Graviton підходить для різних випадків використання, включаючи вебсервери, бази даних, машинне навчання, аналітику та інші.
  • Graviton-екземпляри працюють з усіма сервісами та інструментами AWS, дозволяючи безпроблемно інтегрувати їх у вашу наявну інфраструктуру.

Зміна розміру та вибір найбільш відповідного типу екземплярів в AWS має переваги, які допомагають оптимізувати бюджет та ефективно використовувати обчислювальні ресурси:

  • зниження витрат;
  • гнучкість масштабування;
  • оптимізація використання ресурсів;
  • модель «плати, як користуєшся».

Використання AWS Auto Scaling

Одним з корисних інструментів оптимізації використання ресурсів є AWS Auto Scaling (ASG). Завдяки ASG інфраструктура може ефективно масштабуватися під час пікових навантажень та зменшуватися під час спаду активності.

Такий підхід допомагає знизити витрати та забезпечити оптимальне використання ресурсів.

Використання оптимальних S3 Storage Classes та S3 Lifecycle Policies

Використання оптимальних S3 storage classes може суттєво вплинути на ціну, залежно від ваших конкретних потреб і способу використання об’єктів в Amazon S3.

Amazon S3 пропонує кілька різних storage classes, які відрізняються за швидкістю доступу, ступенем надійності та вартістю. На малюнку нижче зображено деякі з них.

Одним з потужних інструментів економії в AWS є S3 Lifecycle Policies, мають значний вплив на витрати на зберігання даних в Amazon S3. Вони дозволяють автоматично переміщати об’єкти між різними storage classes в залежності від їх віку та активності, що допомагає оптимізувати витрати на зберіганні файлів.

Використання AWS Lambda

AWS Lambda — це потужний інструмент для оптимізації витрат, який дозволяє виконувати код без необхідності в управлінні серверами. Це ідеальний вибір для робочих навантажень з низькою частотою запитів, який не вимагає значних обчислювальних ресурсів.

Однією з головних переваг AWS Lambda є те, що ви платите лише за фактичний час виконання вашого коду, що дозволяє знизити загальні витрати. Запускаючи свої функції на AWS Lambda, ви можете ефективно використовувати ресурси та забезпечити оптимальну економію для вашого бізнесу.

Переваги використання AWS Lambda:

  • платіть тільки за використання Lambda;
  • нульова стартова вартість;
  • автоматичне масштабування;
  • ізольоване середовище;
  • вбудований моніторинг та аналіз.

Завдяки цим особливостям AWS Lambda стає вигідним варіантом для оптимізації витрат та ефективного використання обчислювальних ресурсів.

Висновок

У цій статті ми розглянули ключові принципи резервування, зміни розміру, масштабування, використання Spot екземплярів, S3 storage classes, S3 lifecycle policies, Lambdas та інструментів оптимізації бюджетів в AWS.

Розуміння цих аспектів та використання їх дозволить вам ефективно управляти витратами та забезпечити оптимальне використання ресурсів в AWS для вашого бізнесу.

👍ПодобаєтьсяСподобалось9
До обраногоВ обраному10
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Зі spot instances треба бути дуже акуратним. У нас були випадки коли АПІ просто не стартувала бо не було вільних spot інстансів...

Повністю з Вами згоден.
Для критичних сервісів як api, все ж таки краще обирати більш передбачувані та стабільні типи інстансів.

а також не ганяти на них перформанс тести — бо потім довго пояснюватимете — чому ви не слон :)

З якими труднощами ви зіткнулися, переходячи на Graviton? Може, були якісь несумісні залежності?

ebpf’ні додатки ще не усюди нормально працюють, трохи було проблем з Cilium’ом та pixie. Трохи було складно запровадити конвенції побудови docker образів, з урахуванням усіх поточних нововвдень та через qemu-user-static. Подекуди були проблеми з швидкодією, коли потрібно було явно перевіряти чи використовуються коректно ARM Neon SIMD набір інструкцій.

tldr; порівняно з Power10 «десь у гуглі» тут проблем немає зовсім.

На разі труднощів не було виявлено.
Міграція частини застосунків та баз даних на гравітон пройшла без труднощів.

Ви можете налаштувати обсяг пам’яті, виділеної для функції Lambda, від 128 МБ до 10 240 МБ.
Якщо ваш додаток потребує більше ніж 10 240 МБ, то в цьому випадку Лямбда не підійде.

Стосовно апгрейда/даунгрейда то тут потрібно додати що зарезервовані інстанси можно розділити ще на 2 категорії — це Standard та Convertible.
Convertible більш гнучкий та дозволяє обміняти один або кілька конвертованих зарезервованих екземплярів на інший конвертований зарезервований екземпляр з іншою конфігурацією, включаючи сімейство екземплярів та операційну систему.

Підписатись на коментарі