TikTok-цунами: Как мы приняли 200 000 юзеров за вечер на Cloud Run, не легли и заработали рекордный чек в AdSense
Представьте ситуацию: вечер пятницы, вы собираетесь закрыть ноутбук и пойти отдыхать, как вдруг мониторинги начинают разрываться от алертов. Трафик на одном из развлекательных порталов нашего клиента начал расти не линейно, а экспоненциально. 1000 одновременных пользователей, затем 5000, 15000, 40000...
Причина? Одно вирусное видео в TikTok, опубликованное популярным казахстанским блогером со ссылкой на сайт клиента в шапке профиля. Алгоритмы TikTok подхватили видео, и оно начало набирать сотни тысяч просмотров в час.
Для любого классического сайта на VPS (виртуальном сервере) это означало бы мгновенную "смерть" (Error 502 Bad Gateway) через 3 минуты после начала наплыва. Но этот проект мы заранее перевезли на Google Cloud Run. В этой статье мы в деталях разберем, как наша архитектура справилась с 200 000 уникальными посетителями за один вечер, почему сайт не упал, и как мы монетизировали этот хаос через Google AdSense, получив рекордный чек.
Анатомия TikTok-трафика: почему он убивает серверы?
Трафик из TikTok и Instagram Reels кардинально отличается от поискового трафика (SEO). SEO-трафик распределен равномерно. Пользователи приходят постепенно в течение суток. TikTok-трафик — это лавина. Это DDoS-атака, только легитимная (ее еще называют "hug of death").
- Мгновенный старт: Нагрузка возрастает с 0 до тысяч RPS (Requests Per Second) за пару секунд.
- Мобильные устройства: 99% пользователей сидят со смартфонов, часто с нестабильным 3G/4G интернетом.
- Короткая сессия: Пользователи быстро заходят, смотрят контент и уходят. Важно успеть загрузить сайт и показать рекламу в первые секунды.
Наша Архитектура: Serverless на максималках
Чтобы выдерживать такие спайки (пики) без необходимости держать мощные сервера 24/7 (и платить за них космические деньги), мы построили полностью бессерверную (Serverless) архитектуру на базе продуктов Google Cloud.
1. Входная дверь: Cloud CDN + Load Balancer
Первое, что встретило волну трафика — это Google Cloud Load Balancer с включенным Cloud CDN. Мы настроили агрессивное кэширование на границе сети (Edge). Все картинки, CSS, JS и даже часть статического HTML отдавались из кэша серверов Google, расположенных ближе всего к пользователям.
Совет: Обязательно настраивайте заголовки Cache-Control. Для статики ставьте public, max-age=31536000, immutable. Это снизит нагрузку на бэкенд на 80%.
2. Вычислительное ядро: Cloud Run
Те запросы, которые не попали в кэш, отправлялись в Cloud Run — сервис для запуска Docker-контейнеров без управления серверами. Главная фишка Cloud Run — автомасштабирование с 0 до 1000 контейнеров (инстансов) за считанные секунды.
Скрытая угроза: Почему GA4 «не видит» половину оплат через Kaspi и как мы починили это с помощью BigQuery
В момент пика TikTok-цунами, Cloud Run автоматически поднял более 120 контейнеров, чтобы обработать запросы. Как только трафик начал спадать, лишние контейнеры были убиты, и клиент перестал за них платить.
# Пример настройки Cloud Run для высоких нагрузок (gcloud CLI)
gcloud run deploy my-app \
--image gcr.io/my-project/my-app:latest \
--min-instances 5 \
--max-instances 500 \
--concurrency 80 \
--cpu-boost \
--region europe-west4В этом коде мы используем --cpu-boost, что дает контейнерам больше CPU во время запуска (холодного старта), сокращая время старта на 50%. А --concurrency 80 позволяет одному контейнеру обрабатывать до 80 параллельных запросов.
Как мы не положили базу данных (PostgreSQL)
Частая проблема Cloud Run: при резком увеличении инстансов они открывают сотни соединений к базе данных, исчерпывая лимит пула (Connection Pooling), и база падает. Чтобы избежать этого, мы использовали Cloud SQL Proxy и внешний пул соединений PgBouncer.
Более того, мы закэшировали все тяжелые запросы (например, подсчет лайков или вывод топ-статей) в Redis (Memorystore). База данных вообще не почувствовала TikTok-цунами, так как 95% данных отдавалось из памяти.
Нагрузка на инфраструктуру во время TikTok-вируса
Сравнение входящего трафика (RPS) и количества активных инстансов Cloud Run.
Монетизация: Рекордный чек в Google AdSense
Справиться с трафиком — это только половина дела. Вторая половина — заработать на нем. Многие сайты при наплыве трафика забывают о том, что рекламные блоки тоже должны грузиться быстро. Если ваш сайт грузится 5 секунд, пользователь из TikTok закроет его через 3 секунды, и вы не заработаете ни копейки.
Мы внедрили несколько агрессивных оптимизаций для Google AdSense:
- Асинхронная загрузка и Preload: Мы добавили
<link rel="preload" href="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" as="script">в<head>. Это заставило браузер начинать скачивание скриптов AdSense еще до рендеринга страницы. - Lazy Loading для рекламы ниже сгиба (Below the fold): Мы не инициализировали рекламные блоки в подвале сайта до тех пор, пока пользователь не доскроллит до них (с помощью
IntersectionObserver). Это освободило CPU смартфона для быстрой отрисовки первого экрана (Hero Section). - Оптимизация CLS (Cumulative Layout Shift): TikTok-юзеры не любят, когда контент прыгает. Мы жестко зарезервировали высоту для рекламных блоков через CSS, чтобы избежать сдвигов контента при подгрузке баннеров. Это улучшило поведенческие факторы и повысило стоимость клика (CPC).
Влияние оптимизации на доход (RPM)
Доход на 1000 показов (RPM) до и после внедрения Lazy Loading и оптимизации CLS.
Инсайты и Советы (Tips & Tricks)
- Логирование — ваш друг, но при DDoS оно вас убьет: При 10 000 RPS попытка записать каждый запрос в консоль или файл (даже в Cloud Logging) вызовет гигантские задержки и расходы. Уменьшайте уровень логирования до
WARNилиERRORв продакшене. - Не забывайте про холодные старты: Используйте легковесные образы Docker (например, Alpine или Distroless). Чем меньше образ, тем быстрее Cloud Run поднимает новые контейнеры при скачках трафика.
- Smart Bidding в AdSense: Включите автооптимизацию рекламы в настройках AdSense. В моменты пикового трафика алгоритмы Google быстрее подбирают релевантную рекламу, максимизируя ваш RPM (доход на тысячу показов).
Итоги: Большие цифры
За 4 часа активного вирального распространения видео мы обработали:
- Более 200 000 уникальных посетителей.
- Пиковая нагрузка: 12 500 запросов в секунду (RPS).
- Аптайм (Uptime): 100%. Сайт ни разу не выдал ошибку 5xx.
- Затраты на Cloud Run и CDN за этот вечер: около $15.
- Доход с Google AdSense: [коммерческая тайна, но клиент обновил машину].
Этот кейс доказывает: вам не нужно покупать дорогие серверы "про запас". Правильно спроектированная Cloud-Native архитектура в Google Cloud способна переварить любой трафик из TikTok, Instagram или Reddit, заплатив только за фактически потребленные ресурсы. А быстрая загрузка гарантирует, что каждый пришедший пользователь увидит вашу рекламу и принесет вам деньги.

Рустам Шарафутдинов
Эксперт в области архитектуры Google Cloud и Senior Full-Stack разработчик с более чем 15-летним опытом. Специализируется на отказоустойчивых архитектурах, оптимизации высоконагруженных проектов и интеграции AI (Vertex AI).