Налаштування GCP Cloud SQL для керованих баз даних

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

Налаштування Cloud SQL: де ламається керована база

Керована база знімає з команди обслуговування заліза, але не скасовує конфігурацію.

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

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

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

Відмова зони виглядає безпечно, поки застосунок не втрачає з’єднання посеред транзакції.

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

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

Ефект налаштування в метриках: що змінюється на практиці

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

Що дивимося в метриках

  • Час відновлення. Перемикання на резервний вузол у Cloud SQL вкладається в хвилини, а не в години ручного розбору, і не потребує чергового інженера.
  • Час відгуку. Важкі вибірки йдуть на репліки, індекси закривають основні запити — хвіст повільних відповідей скорочується в рази.
  • Пропускна здатність. Піки тримаються в заданому коридорі: частка піків, що призводять до деградації, падає до одиниць відсотків.
  • Втрати від простою. Недоступність на хвилини замість годин — ця метрика переводить надійність у зрозумілу бізнесу мову.
  • Спостережуваність. Про відмови дізнаємося із сигналів моніторингу, а не від користувачів.

Які класи відмов зникають

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

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

Варіанти розгортання: виділений ресурс, спільний пул, гібрид

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

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

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

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

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

Порядок робіт: від аудиту схеми до передачі в експлуатацію

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

  1. Аудит схеми та навантажень. Знімаємо поточні параметри: розміри й швидкість зростання таблиць, пікові з’єднання, частку читання й запису, важкі вибірки з журналу повільних запитів.
  2. Проєктування розміщення. Визначаємо клас інстансу, регіон і зони, режим доступності, розбиття за базами, параметри з’єднань — так, щоб пік не впирався в ліміти.
  3. Налаштування реплік. Піднімаємо репліки читання під звітність, задаємо допустиме відставання й правила, за якими частина трафіку йде з основної бази.
  4. Резервне копіювання й відкат. Задаємо розклад знімків і журналу змін, перевіряємо відновлення на окремому інстансі.
  5. Перевірка на стенді. Проганяємо знятий профіль навантаження, порівнюємо час відгуку й плани запитів із поточним контуром, ловимо регресії до перемикання.
  6. Контрольоване перемикання. Переводимо трафік частинами, стежимо за помилками з’єднань і відставанням реплік, зберігаємо шлях назад на попередній контур.
  7. Передача в експлуатацію. Віддаємо схему розміщення, робочі конфігурації, правила резервного копіювання, дашборди й інструкції для чергової зміни.

Політики доступу, схеми реплікації та регламенти відновлення

Після переведення бази в керований сервіс Cloud SQL у замовника має залишитися не право увійти в консоль, а комплект артефактів, за яким інфраструктуру можна відтворити й передати іншій команді.

Ми версіонуємо їх у репозиторії та віддаємо разом із базою — будь-яка зміна налаштувань проходить перевірку, а не тримається на усних домовленостях.

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

Кейс: прибрали деградацію і скоротили час відновлення

Замовник прийшов зі скаргою на нестабільність у години пік: користувацькі запити й важка звітність працювали на одному інстансі Cloud SQL, і аналітика регулярно «з’їдала» ресурси бойового контуру.

Частка звернень, що завершувалися таймаутом, сягала 4-5%, а відновлення після відмови master з резервної копії займало близько 40 хвилин — увесь цей час сервіс був недоступний.

Що перебудували

Першим кроком розділили навантаження: репліку для читання виділили під звітність і важкі вибірки, master залишили під запис і короткі транзакції.

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

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

Що отримали

Час перемикання на резервну репліку скоротився з десятків хвилин до десятків секунд, частка запитів із таймаутом на піках — нижче 0,1%. 95-й процентиль часу відповіді зменшився приблизно втричі, а побудова звітів перестала впливати на користувацький трафік.

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

Чим керована база відрізняється від власного кластера

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

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

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

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

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

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

Варіант Коли підходить Що залишається на замовнику
Керована база Потрібен передбачуваний відкат, репліки й обслуговування без власної чергової зміни Схема, індекси, права, розбір запитів, вибір класу інстансу й політики копій
Власний кластер Є нестандартні розширення або жорсткі вимоги до контролю над конфігурацією Усе перелічене плюс залізо, патчі, відмовостійкість, чергування
Гібрид Основний контур керований, окремі задачі винесені на свої інстанси Синхронізація даних, доступи й єдина точка моніторингу

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

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

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

Сумніви щодо експлуатації: репліки, резервні копії, доступи

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

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

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

Перенесення бази без зупинки сервісу — реально?

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

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

Що станеться в разі відмови зони?

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

Як розділяються права доступу?

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

Обговоримо задачу: що потрібно з вашого боку для оцінки

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

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

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

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

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