Maciej Strzelczyk, Developer Programs Engineer, Google Cloud Platform
Джерело: cloud.google.com/blog/… , cloud.google.com/blog/…
Google Cloud Compute Engine пропонує різноманітні способи зменшення витрат, від оптимізації вашої інфраструктури до використання знижок. У цій публікації описані 10 практичних порад з Google Cloud cost optimization, які допоможуть вам заощадити гроші на Google Compute Engine. Незалежно від того, працюєте ви в малому бізнесі, який тільки починає працювати з хмарою, чи у великому підприємстві, що прагне оптимізувати свої витрати, у цьому посібнику кожен знайде щось для себе.
Перш ніж розпочати пошук шляхів оптимізації бюджету Google Compute Engine, було б непогано мати карту — розуміння вашої поточної ситуації та структури витрат, щоб ви могли приймати обґрунтовані рішення про те, що робити далі. Платіжна панель консолі Google Cloud – це ваша карта. Вона повідомляє вам, на що саме ви витрачаєте гроші, і кожна копійка відстежується аж до окремих сутностей SKU (Stock Keeping Unit). Ви можете використовувати її, щоб побачити загальну картину фінансів вашої організації, а також проаналізувати витрати на використання конкретного продукту для конкретного проекту.
Більш уважний аналіз ваших витрат може допомогти вам визначити ресурси, які вам більше не потрібні, але ви все ще сплачуєте за них. Зрештою, немає кращого способу заощадити гроші, ніж просто їх не витрачати.
Ви помітили лампочки поруч із деякими своїми машинами на сторінці зі списком ваших віртуальних машин? Це автоматичні рекомендації Google Cloud cost optimization, які ви можете розглянути, щоб заощадити гроші. Ці корисні поради надходять від Recommendation Hub, нового інструменту, який допоможе вам керувати проєктом у таких категоріях: вартість, безпека, продуктивність, надійність, керованість та сталість. Система рекомендацій має деяку інформацію про структуру ваших ресурсів та може запропонувати дії, які ви можете розглянути. Мета тут полягає в тому, щоб допомогти вам знизити витрати, не впливаючи на продуктивність.

Система може запропонувати такі дії, як зміна типу машини (тобто з n1 на e2), зменшення масштабу машини на основі її використання тощо. Після того, як ви натиснете на рекомендації, ви отримаєте підсумок запропонованої зміни з оцінкою економії коштів. Ви можете вибрати, чи хочете ви застосувати зміни. Пам’ятайте, що зміни в обчисленні вимагають перезапуску інстансу.

Кожна віртуальна машина у вашому парку повинна мати принаймні один постійний диск, підключений до неї. Диски в Google Cloud бувають різних типів, пропонують різну продуктивність і функції. Доступні типи:
Давайте зосередимося на сімействі накопичувачів Persistent Disk, оскільки це найпопулярніше рішення для зберігання. Під час створення нової віртуальної машини стандартним типом диска є Balanced — збалансований диск, який забезпечує золоту середину між продуктивністю та ціною. Хоча це підходить для багатьох сценаріїв, це може бути не найкращим варіантом для всіх програм. Наприклад, програми без збереження стану, які є частиною розгортань з автоматичним масштабуванням і зберігають всю відповідну інформацію у зовнішньому кеші або базі даних, не потребують швидкого введення-виведення на диск. Ці програми є чудовими кандидатами для зміни типу диска на стандартний, який може бути втричі дешевшим за ГБ, ніж збалансований диск (залежно від регіону).
Ви можете отримати список дисків, які використовуються у вашому проекті, за допомогою команди:
gcloud compute disks list --format="table(name, type, zone, sizeGb, users)"
Щоб змінити тип диска, вам потрібно буде клонувати його та змінити віртуальні машини, які його використовують, щоб почати використовувати новий диск.
Продовжуючи пам’ять, тип диска не є єдиним фактором, що впливає на витрати. Використання диска також може зіграти велику роль у вашому бюджеті. Якщо у вашому проекті є постійний диск на 100 ГБ, ви платите за 100 ГБ, незалежно від того, використовуєте ви 20%, 70% чи 100% цього простору. Навіть якщо ваша програма не використовує постійні диски для зберігання даних, ви все одно можете звернути пильну увагу на свої завантажувальні диски. Подумайте, чи справді вашій програмі без збереження стану потрібен диск із кількома гігабайтами вільного простору, тоді подумайте про скорочення цих дисків відповідно до фактичного використання. Людям подобаються круглі числа, і вони часто можуть створювати диски на 20 ГБ, коли їм потрібно лише 12 ГБ. Будьте більше схожими на машину, економте гроші.
Ця порада стосується багатьох інших продуктів, ніж просто Google Compute Engine. Якщо ви знаєте, що будете використовувати певну кількість віртуальних машин протягом принаймні року (або трьох років), ви можете отримати солідну знижку! Використовуючи різноманітні CUD, ви можете придбати набагато нижчі ціни на vCPU, пам’ять, графічні процесори, локальні SSD, вузли з єдиним клієнтом і ліцензії на програмне забезпечення. Завдяки Flex CUD вам навіть не потрібно обмежувати використання віртуального процесора та пам’яті одним проектом, регіоном або серією машин.
Для багатьох продуктів Google Cloud доступні знижки за гарантоване використання. Якщо ви задоволені Google Cloud і не плануєте залишати найближчим часом, наполегливо подумайте про використання CUD там де це можливо, щоб досягти значної економії. У випадку обчислень ви можете придбати CUD безпосередньо з Google Cloud console .
За замовчуванням екземпляри Compute, створені за допомогою gcloud або в консолі Google Cloud, мають тимчасову зовнішню IP-адресу. Іноді це просто те, що вам потрібно, щоб налаштувати швидкий прототип або розмістити екземпляр однієї віртуальної машини певної служби за допомогою динамічного DNS. Однак, якщо ви використовуєте віртуальні машини разом із балансувальником навантаження, варто запитати, чи хочете ви, щоб вони все ще мали зовнішню IP-адресу. Зрештою, клієнти спілкуються з вашими службами через публічну IP-адресу балансувальника навантаження. З іншого боку, може бути дуже корисним мати доступ до Інтернету, наприклад, спілкуватися зі сторонніми службами; з коробки віртуальна машина без зовнішнього IP не може підключитися до Інтернету.
На щастя, Cloud NAT вирішує цю проблему за допомогою конфігурації Public NAT. Cloud NAT робить те ж саме, що й багато постачальників послуг Інтернету для своїх клієнтів: забезпечує трансляцію мережевих адрес, приховуючи кілька машин за однією зовнішньою IP-адресою. Зовні здається, що всі запити надходять з однієї IP-адреси, тоді як насправді ці запити надсилає кілька різних машин. Додаткова примітка: це також працює для GKE .

Якщо ваш парк містить лише пару віртуальних машин, ви, ймовірно, не помітите великої різниці у своєму щомісячному рахунку, вимкнувши зовнішні IP-адреси. Однак економія зростає лінійно з розміром вашого автопарку. І є ще дві переваги використання Cloud NAT: ви підвищуєте безпеку (ваші віртуальні машини не доступні до Інтернету) і ви не споживаєте квоту IP-адрес у своєму проекті.
Cron (утиліта для планування завдань Unix) є основою багатьох автоматизованих циклічних систем пакетної обробки. Це дозволяє планувати дії за звичайним шаблоном, не турбуючись про їх ініціювання вручну. Віртуальні машини, налаштовані за допомогою cron, чекають потрібного часу, щоб розпочати трудомістке завдання. Кілька годин машина дуже зайнята виконанням свого завдання, але коли роботу виконано, віртуальна машина просто сидить там, чекаючи, поки завдання cron почнеться знову. Іншими словами, протягом кількох годин віртуальна машина створює цінність для компанії, а решту дня створює витрати. Чи не було б чудово, якби ви могли позбутися частини побічних витрат? Виявляється, ви можете — в якомусь сенсі.
Віртуальна машина створює витрати, коли вона споживає такі ресурси, як vCPU, пам’ять, диски, прискорювачі (GPU та TPU) або зовнішні IP-адреси. Коли вона увімкнена, вона використовує всі ці ресурси, але коли вона вимкнена, єдина категорія витрат, яку вона генерує, пов’язана з диском (за умови, що ви не використовуєте тут статичну зовнішню IP-адресу). Цілком природно, що комп’ютер, який не використовується, вимикають (для економії електроенергії та збереження планети). На жаль, вимкнена машина не може запускати завдання cron, якщо тільки… ви не використовуєте cron-подібну систему для запуску машини замість цього!
Що я маю на увазі? Виявляється, ви можете створити у своєму проєкті розклад по типу cron, щоб запустити вашу машину. Тоді вам лише потрібно налаштувати процес на основі cron для автоматичного запуску під час старту машини, і тоді…! Ви маєте ту саму функціональність (щоночне збирання та обробка даних), але не витрачаєте гроші на підтримку роботи віртуальної машини, коли вона вам не потрібна. Коли ваш нічний процес завершиться, машина може вимкнутися зсередини та зачекати в такому стані до наступного разу, коли вона знадобиться.
Spot VMs (точкові віртуальні машини) — це тип витісняючих екземплярів, які можуть заощадити вам значні витрати (вони на 90% дешевші за стандартні віртуальні машини). На відміну від звичайних віртуальних машин, які працюють безперервно, Spot-віртуальні машини працюють на вільних ресурсах в Google Cloud і можуть бути скасовані в разі потреби компанії Google. Це означає, що якщо Google потребує повернути ресурси, ваша Spot-віртуальна машина буде припинена з попередженням за 30 секунд.
Але нехай це вас не лякає! Точкові віртуальні машини ідеально підходять для пакетної обробки, робочих навантажень без збереження стану та інших робочих навантажень, які можуть терпіти переривання. А оскільки ціна на них набагато нижча, ніж на звичайні віртуальні машини, ви можете значно заощадити на витратах на хмарні обчислення.
Однією з найкращих переваг Spot VM є те, що ви можете використовувати їх як звичайні VM. Ви можете створювати їх за допомогою тих самих інструментів і API, і вони можуть запускати однакові операційні системи та програми. Єдина відмінність полягає в тому, що ви платите за них менше (і вони можуть бути вимкнені з попереднім попередженням). Перемикання вашої керованої групи екземплярів (без стану) або екземплярів Google Kubernetes Engine (GKE) на точкові віртуальні машини відбувається майже безперешкодно, оскільки ці дві системи просто відтворюють машини, які були виділені під вас.
Розміщення вашого програмного забезпечення в Google Cloud має багато переваг, однією з яких є свобода вибору фізичного розташування машин, які запускають ваші служби. На ваш вибір місцезнаходження можуть вплинути такі аспекти вашого бізнесу, як дотримання місцевих законів, доступність функцій і близькість до вашої бази користувачів (і затримка надання послуг).
Іншим фактором є ціноутворення. Переглянувши сторінку цін на Compute, ви можете легко порівняти, скільки коштують продукти, які ви використовуєте, у різних регіонах. У деяких випадках, коли затримка чи суверенітет не є ключовими змінними, має сенс вибрати економічно ефективніший регіон, особливо коли регіони з різними цінами знаходяться поруч. Щоб допомогти вам вибрати ідеальні регіони, у нас також є інструмент вибору регіону Google Cloud, який допоможе вам збалансувати всі ці змінні.
Якщо ви забуваєте про свої віртуальні машини, є нова функція, яка допоможе вам заощадити гроші: можливість встановити ліміт часу, після закінчення якого ваші віртуальні машини вимикаються або видаляються.
Наразі в попередній версії, це може бути корисним у різних сценаріях. Уявіть собі:
Чим більше ви думаєте про це, тим більше застосувань ви знайдете для цієї функції. Можливо, ви не завжди зможете ним скористатися, але варто пам’ятати про це під час налаштування щоденної роботи інфраструктури.
Було охоплено багато питань, було описано багато стратегій в рамках Google Cloud cost optimization. Від точного налаштування розміру диска, використання знижок на обов’язкове використання та вивчення Cloud NAT, і до планування ваших екземплярів та використання Spot VM – способів заощадити не бракує.
Пам’ятайте, стежити за своїми витратами в хмарі – це як керувати особистими фінансами: кожна копійка на рахунку! Отже, знайдіть час, щоб вивчити ці стратегії та максимально використати свої інвестиції в хмару.
Нехай ваші проекти будуть успішними, а ваші хмарні рахунки будуть керованими. Щасливої оптимізації!
Wise IT — Партнер року Google Cloud в категорії Services CEE! Якщо вас цікавить міграція у Google Cloud або ви бажаєте оптимізувати існуючу інфраструктуру — зверніться до наших спеціалістів та отримайте оперативну й компетентну підтримку: