Налаштування Yandex Compute Cloud для віртуальних серверів

Під навантаженням віртуальні сервери в хмарі починають «плисти», а простої б'ють по користувачах. Ми проєктуємо та налаштовуємо Yandex Compute Cloud під ключ: схеми розміщення, доступи, регламенти й моніторинг. Передаємо готове середовище з документацією вашій команді.
Часті запитання

Чому Yandex Compute Cloud працює нестабільно

Відмови під навантаженням рідко виглядають як ефектне падіння — частіше це деградація: зростає час відповіді, накопичується черга запитів, частина користувачів іде з помилкою. Причина зазвичай одна: віртуальні сервери стоять в одній зоні відмови і не мають резерву.

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

Друге джерело — конфігурація, зібрана вручну. Yandex Compute Cloud дає готові групи розміщення, автомасштабування та знімки, але їх потрібно увімкнути та зв’язати між собою.

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

Третя причина — відсутність лімітів і спостережуваності. Без квот на ресурси один процес з’їдає вузол, і сусідні сервіси деградують разом з ним.

Без метрик і оповіщень про навантаження команда дізнається про проблему від користувачів, а не від системи, і гасить наслідок замість причини.

Розбираємо, як це закривається: рознесення по зонах, декларативний опис інфраструктури, квоти на ресурси та оповіщення з робочими порогами.

Що дає правильно спроєктована інфраструктура

Інфраструктура з окремих віртуальних машин у Yandex Compute Cloud дає ефекти, які рахують у хвилинах і частках, а не у відчуттях.

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

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

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

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

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

Окремий результат — частка відмов, які перестали валити сервіс цілком. Переповнення диска, падіння процесу або деградація одного вузла залишаються подією в моніторингу з зрозумілою реакцією, а не інцидентом для клієнта.

Заздалегідь описані пороги, автоперезапуск і резервні копії перетворюють частину аварій на рутинну роботу системи.

Схеми розміщення в Compute Cloud: що вибрати

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

Одна зона доступності, дві-три зони, група автомасштабування або резервний сервер — це різні компроміси між стійкістю, складністю супроводу та передбачуваністю перемикання. Розбираємо, що кожен варіант закриває, а де починає заважати.

У Yandex Compute Cloud ці варіанти комбінуються: фронт можна тримати в групі автомасштабування по кількох зонах, а сервіси зі станом — на резервних серверах із налагодженим сценарієм перемикання. Ключове питання — де живе стан і як швидко він відновлюється після відмови.

Схема розміщення Коли підходить Обмеження
Одна зона доступності Пілоти, внутрішні сервіси, тестові контури Відмова зони — простій до ручного перенесення; резерв не перевірити без окремого стенда
Кілька зон з розподілом Продакшн з вимогою до безперервності Дорожче за ресурсами, складніша мережа та балансування, потрібна реплікація даних між зонами
Групи автомасштабування Нерівномірне навантаження, веб-фронт, черги завдань Інерція запуску нових машин, потрібен зовнішній балансувальник і коректні перевірки живучості
Резервні сервери Бази даних, сервіси зі станом Резерв не бере участі в навантаженні, перемикання вимагає відпрацювання та врахування відставання репліки

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

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

Етапи впровадження: від аудиту до передачі

Роботу ведемо ітераціями: кожен етап закінчується перевірюваним артефактом, а не «стало краще». Такий порядок потрібен, щоб зміни в Yandex Compute Cloud можна було відкотити на будь-якому кроці, а не лише після повного перемикання продакшену.

  1. Аудит інфраструктури. Збираємо інвентаризацію: що вже розгорнуто, які навантаження тримає кожна машина, де зберігаються дані та секрети, які залежності між сервісами.

    Окремо фіксуємо точки відмови — зазвичай це одна зона доступності, ручні правки на серверах і резервні копії, які ніхто не перевіряв.

  2. Схема мережі. Проєктуємо сегментацію: підмережі по зонах, правила груп безпеки, маршрутизація, винесення балансувальника та службового контуру в окремі сегменти. Схема узгоджується до створення ресурсів — переробляти топологію на живому контурі дорожче.

  3. Налаштування серверів. Описуємо ресурси кодом (Terraform), початкову конфігурацію — ролями Ansible. Образи фіксуються, конфіги версіонуються, зміни проходять через рев'ю та відтворюються з нуля, а не «доопрацюванням вручну».

  4. Перевірка відмовостійкості. Гасимо по одному вузлу в кожній групі та дивимося, як перемикається трафік. Вимірюємо час відновлення сервісу та звіряємо з заявленими вимогами.

  5. Резервне копіювання. Налаштовуємо політику знімків і перевіряємо зворотний шлях: розгортаємо сервер з копії на окремому контурі та переконуємося, що дані цілі.

  6. Моніторинг. Підключаємо збір метрик і оповіщення за ключовими порогами — недоступність вузла, переповнення диска, зростання затримок. Без цього експлуатація починається наосліп.

  7. Передача та навчання. Віддаємо доступи, схему, документацію та розбір інцидентів, розбираємо з командою замовника типові операції: оновлення, масштабування, відновлення.

Схеми, доступи та регламенти, які залишаються у вас

Інфраструктура в Yandex Compute Cloud живе не у веб-консолі, а в описі: якщо вона ніде не зафіксована, наступна зміна перетворюється на археологію, а відновлення — на переговори з тим, хто налаштовував.

Тому ми здаємо не лише працюючі сервери, а й комплект артефактів, за яким оточення відтворюється з нуля.

Що залишається у вашої команди:

  • Схема інфраструктури: зони доступності, підмережі, маршрути, балансувальник і зовнішні точки входу — на одній сторінці, а не в голові інженера.
  • Опис ресурсів у вигляді конфігурацій: віртуальні машини, диски, знімки та шаблони лежать у системі контролю версій, зміни застосовуються після перевірки.
  • Політики доступу: ролі, федерація облікових записів, сервісні акаунти, мінімальні права та порядок ротації ключів.
  • Регламент резервного копіювання: що потрапляє в копії, періодичність, глибина зберігання та спосіб перевірки цілісності.
  • Регламент відновлення: покроковий сценарій із цільовим часом і точкою відновлення, включаючи відмову окремої зони.
  • Моніторинг і оповіщення: перелік метрик, пороги спрацьовування, відповідальні та порядок ескалації.
  • Інструкції для команди: підняти новий вузол, викотити реліз, відкотитися на попередню версію, видати та відкликати доступ.

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

Кейс: витримали зростання навантаження без перезбирання серверів

Проєкт — сервіс з нерівномірним по днях навантаженням: у пікові години запитів утричі більше, ніж у середньому. Машини стояли на фіксованих віртуалках у Yandex Compute Cloud, і кожна нова ємність з'являлася лише після ручних дій.

Інженер піднімав заміну, прописував її в балансування і лише потім знімав трафік зі старої машини. У пік це перетворювалося на чергу завдань, а планове оновлення — на вікно недоступності на весь час робіт.

Що було до змін

Частка успішних запитів трималася на 97%: помилки ловили саме в години пік, коли ємності не вистачало. Відновлення після збою займало в середньому 40 хвилин — поки проблему помітять, піднімуть заміну і повернуть її в роботу. Ручних операцій при відмові однієї машини — більше десяти, кожна з ризиком помилитися в поспіху.

Що змінили

Схему описали кодом: група віртуалок, правила автомасштабування за навантаженням, перевірки живучості, прив'язка до зон доступності. Резервне копіювання та знімки стану стали регулярними й перевірюваними, а викочування йде через почергову заміну машин без простою сервісу.

Що отримали

Частка успішних запитів зросла до 99,9% і більше не просідає на піку. Відновлення займає 2-3 хвилини і відбувається автоматично, без участі чергового. Ручних операцій при відмові вузла — нуль, ємність додається сама під зростання трафіку, а не за заявкою.

Чим керовані бази даних відрізняються від баз на своїх серверах?

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

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

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

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

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

Свої сервери виправдані, коли потрібні нестандартні розширення, особливі вимоги до розміщення даних або доступ на рівні файлової системи.

Тоді ми розгортаємо бази на віртуальних серверах Yandex Compute Cloud і автоматизуємо саме те, що зазвичай бере на себе керований сервіс: розклади копій, перевірку відновлення, перемикання реплік. Контроль повний, але обслуговування повністю на нас.

Масштабування влаштовано так само: у керованому варіанті це зміна класу вузла та додавання реплік для читання, у своєму — партиціонування та перерозподіл даних вручну. Вибираємо підхід за потрібним режимом відновлення та обсягом ручних операцій, а не за звичкою.

Що найчастіше уточнюють перед початком робіт

Перед стартом замовники майже завжди задають один і той самий набір питань: що буде з сервісом під час переїзду, кому дістануться доступи, чи витримає система зростання і чи не доведеться переписувати додаток. Відповідаємо коротко — повний розбір робимо під конкретну конфігурацію в Yandex Compute Cloud.

Переїзд пройде без простою?

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

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

Чи потрібно доопрацьовувати додаток?

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

Правки знадобляться, лише якщо додаток зберігає стан на локальному диску або розрахований на єдиний вузол: це розбираємо окремо і пропонуємо схему.

Як організовані доступи?

Доступ видаємо за ролями, а не «одним ключем на всіх»: у розробника, чергового інженера та зовнішнього підрядника різні набори прав. Ключі зберігаються в захищеному сховищі, дії потрапляють у журнал, при звільненні або зміні підрядника доступ відкликається однією операцією.

Що буде при зростанні навантаження?

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

Як відновлюються дані?

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

Залишилися сумніви щодо вашої схеми — опишіть задачу, повернемося з оцінкою та планом робіт.

Обговоримо задачу та повернемося з оцінкою та планом

Щоб розмова була предметною, багато не потрібно: доступ до поточної конфігурації, розуміння критичних навантажень і людина, яка знає історію змін. Решта — наша робота, включаючи інвентаризацію того, що розгорнуто в Yandex Compute Cloud сьогодні.

Перший крок — розбір схеми розміщення: ролі машин, зони доступності, мережа, резервне копіювання, порядок оновлення образів.

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

На виході ви отримуєте:

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

Опишіть задачу: що працює зараз, що заважає і який результат потрібен. Повернемося з оцінкою та планом, а на розмову прийде інженер, який буде вести проєкт, — не менеджер з презентацією.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142