Налаштування Yandex Cloud CDN: origin, кешування та TLS

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

Налаштування Yandex Cloud CDN: вузькі місця роздавання

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

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

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

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

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

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

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

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

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

Що змінюється після впровадження: швидкість і стійкість

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

Частка влучань задається політиками: для статики — зображень, стилів, скриптів, шрифтів — вона виходить на 85–95%, для сторінок із персоналізацією тримається в районі 50–70%.

Що точніше кеш-ключ описує варіант ресурсу — query-параметри, мовні та регіональні версії — то вищі влучання й то менший ризик віддати різні версії однієї сторінки.

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

У звіті це видно не за середнім, а за 95-м перцентилем — саме він показує, що гальмує не окремий запит, а хвіст розподілу.

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

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

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

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

Схеми роздавання: кеш на краю, проксі, гібрид

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

Вибір роблять не «на смак», а за профілем трафіку: частка статики, частота оновлення, вимоги до приватності та допустима затримка першого байта.

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

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

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

Як відбувається впровадження: етапи та точки перевірки

Налаштування Yandex Cloud CDN — це не «увімкнути прискорення», а перенесення точки зустрічі трафіку з джерела на межу мережі.

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

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

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

Що залишається у вас: конфігурації, схеми, регламенти

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

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

Кейс: як розвантажили джерело без переписування сайту

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

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

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

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

Повернення до джерела в пікові години

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

Результат у вимірюваних величинах

Частка відповідей із мережі доставки зросла з ~55% до 93%, пікове навантаження на джерело впало вчетверо. Відгук статики скоротився приблизно у 2,5 раза, а відмови в пікові години зникли: раніше їх було кілька епізодів на акцію, тепер нуль. Схема тримає сплеск у 3-4 рази вищий за звичайний без правок у застосунку — сайт не переписували.

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

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

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

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

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

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

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

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

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

Часті технічні питання перед впровадженням

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

У нас уже налаштовані правила кешування — їх доведеться переписувати?

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

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

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

Як клієнт отримує актуальну версію сторінки, якщо контент оновили?

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

Що робити із сертифікатами — випускати нові чи підключати свої?

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

Origin закритий для зовнішнього доступу — прошарок зможе його забрати?

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

Обговоримо вашу схему роздавання контенту

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

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

Нижче — що надіслати, щоб ми повернулися з оцінкою та планом робіт із роздавання через Yandex Cloud CDN.

  • Перелік доменів і піддоменів, для яких планується роздавання, із зазначенням основного та допоміжних.
  • Опис origin: статичний бакет, власний вебсервер або кілька джерел, і як між ними розподіляється трафік.
  • Обсяг контенту та профіль навантаження: частка статики й динаміки, типи файлів, приблизний обсяг віддавання за добу та пікові сплески.
  • Географія аудиторії та вимоги до TLS: свої сертифікати або випуск на боці сервісу, чи потрібен примусовий перехід на захищений протокол.
  • Правила оновлення контенту: як часто змінюються файли, чи потрібне точкове очищення кешу за тегами й як швидко нова версія має ставати видимою.
  • Поточна схема захисту та доступів: хто керує DNS-зоною, які ролі потрібні нашим інженерам і що залишається під вашим контролем.
  • Обмеження та побажання: допустимий час відгуку, вимоги до відмови на резервне джерело та режим роботи при недоступності origin.

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

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

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

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

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