Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все руководства
    • Получение статистики запросов к объекту с использованием S3 Select
    • Получение статистики посещения сайта с использованием S3 Select
    • Получение статистики запросов к объектам с использованием Yandex Query
    • Анализ поресурсной детализации расходов
    • Шифрование на стороне сервера
    • Интеграция L7-балансировщика с CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Анализ логов с использованием DataLens
    • Монтирование бакетов к файловой системе хостов Yandex Data Processing
    • Использование Object Storage в Yandex Data Processing
    • Импорт данных из Object Storage, обработка и экспорт в Managed Service for ClickHouse®
    • Подключение бакета как диска в Windows
    • Миграция данных из Yandex Data Streams с помощью Yandex Data Transfer
    • Использование гибридного хранилища в Yandex Managed Service for ClickHouse®
    • Загрузка данных из Yandex Managed Service for OpenSearch в Yandex Object Storage с помощью Yandex Data Transfer
    • Автоматическое копирование объектов из бакета в бакет
    • Регулярное асинхронное распознавание аудиофайлов в бакете
    • Обучение модели в Yandex DataSphere на данных из Object Storage
    • Подключение к Object Storage из VPC
    • Перенос данных в Yandex Managed Service for PostgreSQL с использованием Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for Greenplum® с помощью Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for ClickHouse® с помощью Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Обмен данными между Yandex Managed Service for ClickHouse® и Yandex Data Processing
    • Загрузка данных из Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Хостинг статического сайта на фреймворке Gatsby в Object Storage
    • Миграция базы данных из Managed Service for PostgreSQL в Object Storage
    • Обмен данными между Yandex Managed Service for ClickHouse® и Yandex Data Processing
    • Импорт данных из Yandex Managed Service for PostgreSQL в Yandex Data Processing с помощью Sqoop
    • Импорт данных из Yandex Managed Service for MySQL® в Yandex Data Processing с помощью Sqoop
    • Миграция данных из Yandex Object Storage в Yandex Managed Service for MySQL® с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL® в Yandex Object Storage
    • Выгрузка данных Greenplum® в холодное хранилище Yandex Object Storage
    • Загрузка данных из Яндекс Директ в витрину Yandex Managed Service for ClickHouse® с использованием Yandex Cloud Functions, Yandex Object Storage и Yandex Data Transfer
    • Миграция данных из Elasticsearch в Yandex Managed Service for OpenSearch
    • Загрузка состояний Terraform в Object Storage
    • Блокировка состояний Terraform с помощью Managed Service for YDB
    • Визуализация данных Yandex Query
    • Публикация обновлений для игр
    • Резервное копирование ВМ с помощью Хайстекс Акура
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veeam Backup
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Резервное копирование кластера Managed Service for Kubernetes в Object Storage
    • Разработка пользовательской интеграции в API Gateway
    • Сокращатель ссылок
    • Хранение журналов работы приложения
    • Разработка навыка Алисы и сайта с авторизацией
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Telegram-бота
    • Репликация логов в Object Storage с помощью Fluent Bit
    • Репликация логов в Object Storage с помощью Data Streams
    • Загрузка аудитных логов в SIEM ArcSight
    • Загрузка аудитных логов в SIEM Splunk
    • Создание сервера MLFlow для логирования экспериментов и артефактов
    • Работа с данными с помощью Yandex Query
    • Федеративные запросы к данным с помощью Query
    • Распознавание архива изображений в Vision OCR
    • Конвертация видео в GIF на Python
    • Автоматизация задач с помощью Managed Service for Apache Airflow™
    • Обработка файлов детализации в сервисе Yandex Cloud Billing
    • Развертывание веб-приложения с JWT-авторизацией в API Gateway и аутентификацией в Firebase
    • Поиск событий Yandex Cloud в Yandex Query
    • Поиск событий Yandex Cloud в Object Storage
    • Создание внешней таблицы на базе таблицы из бакета с помощью конфигурационного файла
    • Миграция базы данных из Google BigQuery в Managed Service for ClickHouse®
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Перед началом работы
  • Необходимые платные ресурсы
  • Добавьте сертификат в Certificate Manager
  • Создайте бакеты в Object Storage
  • Включите логирование бакета с файлами
  • Загрузите файл в бакет
  • Создайте CDN-ресурс и включите кеширование
  • Настройте DNS для своего домена
  • Предзагрузите контент в кеш CDN-серверов
  • Проверьте работу CDN
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Публикация обновлений для игр

Публикация обновлений для игр с помощью Yandex Cloud CDN

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Добавьте сертификат в Certificate Manager
  • Создайте бакеты в Object Storage
  • Включите логирование бакета с файлами
  • Загрузите файл в бакет
  • Создайте CDN-ресурс и включите кеширование
  • Настройте DNS для своего домена
  • Предзагрузите контент в кеш CDN-серверов
  • Проверьте работу CDN
  • Как удалить созданные ресурсы

Создайте и настройте CDN-ресурс Cloud CDN для размещения в нем контента, к которому ожидается большое количество запросов в малый промежуток времени, например файлов для обновления игры (патчей, DLC и т. п.). Чтобы в этот промежуток не создавалась высокая нагрузка на источники контента со стороны CDN-серверов, файлы будут однократно предзагружены в кеш серверов.

Предполагается, что патч состоит из одного файла с именем ycgame-update-v1.1.exe. Он будет загружен в бакет Yandex Object Storage.

Примечание

Не рекомендуется предзагружать файлы размером меньше 200 МБ или больше 5 ГБ.

Чтобы создать CDN-инфраструктуру:

  1. Подготовьтесь к работе.
  2. Добавьте сертификат в Certificate Manager
  3. Создайте бакеты в Object Storage.
  4. Включите логирование бакета с файлами.
  5. Загрузите файл в бакет.
  6. Создайте CDN-ресурс и включите кеширование.
  7. Настройте DNS для своего домена.
  8. Предзагрузите контент в кеш CDN-серверов.
  9. Проверьте работу CDN.

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работыПеред началом работы

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Убедитесь, что у вас есть доменное имя и доступ к настройкам DNS на сайте компании, которая предоставляет вам услуги DNS-хостинга. Обычно это компания-регистратор вашего домена.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки CDN-инфраструктуры входят:

  • Плата за исходящий трафик с CDN-серверов (см. тарифы Cloud CDN).
  • Плата за хранение данных в Object Storage, операции с ними и исходящий трафик (см. тарифы Object Storage).
  • Плата за публичные DNS-запросы и DNS-зоны, если вы используете Yandex Cloud DNS (см. тарифы Cloud DNS).

Добавьте сертификат в Certificate ManagerДобавьте сертификат в Certificate Manager

Поддерживаются сертификаты из Yandex Certificate Manager. Вы можете выпустить новый сертификат Let's Encrypt® или загрузить собственный.

Сертификат должен находиться в том же каталоге, в котором расположен ваш CDN-ресурс.

Для сертификата Let's Encrypt® пройдите проверку прав на домен, который указан в сертификате.

Создайте бакеты в Object StorageСоздайте бакеты в Object Storage

Необходимо создать два бакета: в первом будут храниться файлы, а во втором — логи запросов к первому.

Консоль управления
AWS CLI
Terraform
API
  1. В консоли управления выберите сервис Object Storage.
  2. Создайте бакет для файлов:
    1. Нажмите кнопку Создать бакет.
    2. Укажите Имя бакета.
    3. В полях Доступ на чтение объектов и Доступ к списку объектов выберите Публичный.
    4. Нажмите кнопку Создать бакет.
  3. Создайте бакет для логов:
    1. Нажмите кнопку Создать бакет.
    2. Укажите Имя бакета.
    3. Нажмите кнопку Создать бакет.
  1. Создайте бакет для файлов:

    aws --endpoint-url=https://storage.yandexcloud.net \
      s3api create-bucket \
      --bucket <имя_бакета_с_файлами> \
      --acl public-read
    

    Результат:

    {
      "Location": "/<имя_бакета_с_файлами>"
    }
    
  2. Создайте бакет для логов:

    aws --endpoint-url=https://storage.yandexcloud.net \
      s3api create-bucket \
      --bucket <имя_бакета_с_логами>
    

    Результат:

    {
      "Location": "/<имя_бакета_с_логами>"
    }
    

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Перед началом работы получите статические ключи доступа — секретный ключ и идентификатор ключа, используемые для аутентификации в Object Storage.

  1. Опишите в конфигурационном файле параметры бакета:

    • access_key — идентификатор статического ключа доступа.
    • secret_key — значение секретного ключа доступа.
    • bucket — имя создаваемого бакета.

    Пример структуры конфигурационного файла:

    provider "yandex" {
      token     = "<OAuth-токен>"
      cloud_id  = "<идентификатор_облака>"
      folder_id = "<идентификатор_каталога>"
      zone      = "ru-central1-a"
    }
    
    resource "yandex_storage_bucket" "storage" {
      access_key = "<идентификатор_статического_ключа>"
      secret_key = "<секретный_ключ>"
      bucket     = "<имя_бакета_с_файлами>"
      acl        = "public-read"
    }
    
    resource "yandex_storage_bucket" "logs" {
      access_key = "<идентификатор_статического_ключа>"
      secret_key = "<секретный_ключ>"
      bucket     = "<имя_бакета_с_логами>"
    }
    
  2. Проверьте корректность конфигурационных файлов:

    1. В командной строке перейдите в папку, где вы создали конфигурационный файл.

    2. Выполните проверку с помощью команды:

      terraform plan
      

    Если конфигурация описана верно, в терминале отобразятся параметры создаваемого бакета. Если в конфигурации есть ошибки, Terraform на них укажет.

  3. Разверните бакет:

    1. Если в конфигурации нет ошибок, выполните команду:

      terraform apply
      
    2. Подтвердите создание бакета.

Используйте метод API create.

Включите логирование бакета с файламиВключите логирование бакета с файлами

Чтобы проверить, что при пользовательском запросе файл скачивается не напрямую из бакета, а из кеша CDN-сервера, нужно включить логирование бакета.

AWS CLI
API
  1. Создайте файл с настройками логирования в формате JSON. Например:

    {
      "LoggingEnabled": {
          "TargetBucket": "<имя_бакета_с_логами>",
          "TargetPrefix": "<префикс_ключа>"
      }
    }
    

    Где:

    • TargetBucket — имя целевого бакета, в который будут записываться логи.
    • TargetPrefix — префикс ключа для объектов с логами, например logs/.
  2. Включите логирование в бакете:

    aws s3api put-bucket-logging \
      --bucket <имя_бакета_с_файлами> \
      --endpoint-url https://storage.yandexcloud.net \
      --bucket-logging-status file://<путь_к_файлу_настроек>
    

    Где:

    • --bucket — имя исходного бакета, для которого нужно включить логирование действий.
    • --bucket-logging-status — путь к файлу с настройками логирования.

Используйте метод API putBucketLogging для бакета с файлами. Тело HTTP-запроса:

<BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">
  <LoggingEnabled>
    <TargetBucket>имя бакета с логами</TargetBucket>
    <TargetPrefix>префикс ключа</TargetPrefix>
  </LoggingEnabled>
</BucketLoggingStatus>

Где:

  • TargetBucket — имя бакета, в который будут записываться логи.
  • TargetPrefix – префикс ключа для объектов с логами, например logs/.

Загрузите файл в бакетЗагрузите файл в бакет

Консоль управления
AWS CLI
Terraform
API
  1. В консоли управления выберите сервис Object Storage.
  2. Выберите бакет с файлами.
  3. Нажмите кнопку Загрузить.
  4. В появившемся окне выберите файл с патчем ycgame-update-v1.1.exe и нажмите кнопку Открыть.
  5. Нажмите кнопку Загрузить.

Выполните команду:

aws --endpoint-url=https://storage.yandexcloud.net \
  s3 cp \
  <путь_к_файлу_ycgame-update-v1.1.exe> \
  s3://<имя_бакета_с_файлами>/ycgame-update-v1.1.exe

Результат:

upload: <путь_к_файлу_ycgame-update-v1.1.exe> to s3://<имя_бакета_с_файлами>/ycgame-update-v1.1.exe
  1. Добавьте к конфигурационному файлу из шага с созданием бакетов параметры объекта, который необходимо загрузить:

    • bucket — имя бакета для добавления объекта.
    • key — имя объекта в бакете: ycgame-update-v1.1.exe. Обязательный параметр.
    • source — относительный или абсолютный путь к файлу, загружаемому как объект.

    Пример структуры конфигурационного файла:

    ...
    resource "yandex_storage_object" "patch-v1-1" {
      access_key = "<идентификатор_статического_ключа>"
      secret_key = "<секретный_ключ>"
      bucket     = "<имя_бакета_с_файлами>"
      key        = "ycgame-update-v1.1.exe"
      source     = "<путь_к_файлу>/ycgame-update-v1.1.exe"
    }
    
  2. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в папку с конфигурационным файлом.

    2. Выполните проверку с помощью команды:

      terraform plan
      

    Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

  3. Разверните облачные ресурсы.

    1. Если в конфигурации нет ошибок, выполните команду:

      terraform apply
      
    2. Подтвердите создание объекта.

Используйте метод API upload.

Создайте CDN-ресурс и включите кешированиеСоздайте CDN-ресурс и включите кеширование

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите сервис Cloud CDN.

  2. Если CDN-провайдер еще не активирован, нажмите кнопку Подключиться к провайдеру. Подключение произойдет автоматически.

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

  3. Создайте CDN-ресурс:

    1. На вкладке CDN-ресурсы нажмите кнопку Создать ресурс.
    2. Задайте основные параметры CDN-ресурса следующим образом:
      • Запрос контента — Из одного источника.

      • Тип источника — Бакет.

      • Бакет — <имя_бакета_с_файлами>.

      • Доменные имена для раздачи контента — основное доменное имя, которое вы будете использовать для публикации патчей, например cdn.ycprojectblue.example.

        Внимание

        Основное доменное имя для раздачи контента невозможно изменить после создания CDN-ресурса.

      • В блоке Дополнительно:

        • В поле Протокол для источников выберите HTTPS.
        • В поле Переадресация клиентов выберите Не использовать.
        • Выберите опцию Доступ конечных пользователей к контенту.
        • В поле Тип сертификата укажите Сертификат из Certificate Manager и выберите сертификат для доменного имени cdn.ycprojectblue.example.
        • В поле Заголовок Host выберите Свое значение. В поле Значение заголовка укажите доменное имя источника, <имя_бакета_с_файлами>.storage.yandexcloud.net, чтобы бакет-источник корректно отвечал на запросы CDN-серверов.
    3. Нажмите кнопку Создать.
  4. Включите переадресацию клиентов с HTTP на HTTPS:

    1. На вкладке CDN-ресурсы выберите ресурс, созданный ранее.
    2. Убедитесь, что в блоке Дополнительно статус сертификата изменился на Выпущен.
    3. Справа сверху нажмите кнопку Редактировать.
    4. В блоке Дополнительно в поле Переадресация клиентов выберите С HTTP на HTTPS.
    5. Нажмите кнопку Сохранить.
  5. Включите для ресурса кеширование на CDN-серверах:

    1. На вкладке CDN-ресурсы выберите ресурс, созданный ранее.
    2. Перейдите в раздел Кеширование.
    3. Справа сверху нажмите кнопку Редактировать.
    4. Включите опцию Кеширование в CDN.
    5. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Если CDN-провайдер еще не активирован, выполните команду:

    yc cdn provider activate --folder-id <идентификатор_каталога> --type gcore
    
  2. Создайте CDN-ресурс:

    yc cdn resource create \
      --cname cdn.ycprojectblue.example \
      --origin-bucket-source <имя_бакета_с_файлами>.storage.yandexcloud.net \
      --origin-bucket-name <имя_бакета_с_файлами> \
      --origin-protocol https \
      --cert-manager-ssl-cert-id <идентификатор_сертификата> \
      --host-header <имя_бакета_с_файлами>.storage.yandexcloud.net
    

    Результат:

    id: bc8e3l7s4dha********
    folder_id: b1g86q4m5vej********
    cname: cdn.ycprojectblue.example
    ...
    active: true
    ...
    

    Подробнее о команде yc cdn resource create см. в справочнике CLI.

  3. Включите переадресацию клиентов для ресурса:

    yc cdn resource update <идентификатор_ресурса> --redirect-http-to-https
    
  1. Добавьте в конфигурационный файл параметры CDN-ресурсов:

    ...
    resource "yandex_cdn_origin_group" "my_group" {
      name     = "updates-origin-group"
      use_next = true
      origin {
        source = "<имя_бакета_с_файлами>.storage.yandexcloud.net"
      }
    }
    
    resource "yandex_cdn_resource" "my_resource" {
      cname               = "cdn.ycprojectblue.example"
      active              = true
      origin_protocol     = "https"
      origin_group_id     = yandex_cdn_origin_group.my_group.id
      options {
        custom_host_header     = "<имя_бакета_с_файлами>.storage.yandexcloud.net"
      }
      ssl_certificate {
        type                   = "certificate_manager"
        certificate_manager_id = "<идентификатор_сертификата>"
      }
    }
    

    Подробнее см. в описаниях ресурсов yandex_cdn_origin_group и yandex_cdn_resource в документации провайдера Terraform.

  2. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в папку, где вы создали конфигурационный файл.

    2. Выполните проверку с помощью команды:

      terraform plan
      

    Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут созданы. Если в конфигурации есть ошибки, Terraform на них укажет.

  3. Примените изменения конфигурации:

    1. Если в конфигурации нет ошибок, выполните команду:

      terraform apply
      
    2. Подтвердите создание ресурсов: введите в терминал слово yes и нажмите Enter.

    После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

  4. Включите переадресацию клиентов для ресурса. Добавьте в начало блока options для CDN-ресурса следующее поле:

    ...
    options {
      redirect_https_to_http = true
    ...
    
  5. Выполните проверку с помощью команды:

    terraform plan
    

    Если конфигурация описана верно, в терминале отобразится список обновляемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

  6. Если ошибок нет, выполните команду:

    terraform apply
    
  7. Подтвердите обновление ресурса: введите в терминал слово yes и нажмите Enter.

После этого для у ресурса будет включена переадресация.

Используйте вызов gRPC API ResourceService/Create или метод REST API create. Чтобы включить кеширование на CDN-серверах, добавьте в тело запроса поле edge_cache_settings.

Настройте DNS для своего доменаНастройте DNS для своего домена

  1. Получите доменное имя в домене .edgecdn.ru, сгенерированное для созданного CDN-ресурса:

    Консоль управления
    1. В консоли управления выберите сервис Cloud CDN.
    2. Выберите созданный CDN-ресурс (в списке ресурсов будет указано его основное доменное имя — cdn.ycprojectblue.example).
    3. На вкладке Обзор в разделе Настройки DNS скопируйте в буфер обмена сгенерированное сервисом имя в домене .edgecdn.ru.
  2. Перейдите в настройки DNS вашего домена на сайте компании, которая предоставляет вам услуги DNS-хостинга.

  3. Измените CNAME-запись для cdn таким образом, чтобы она указывала на скопированный ранее адрес в домене .edgecdn.ru, например:

    cdn CNAME cl-********.edgecdn.ru.
    

    Примечание

    Не используйте ресурсную запись ANAME с доменными именами для раздачи контента, поскольку в таком случае конечный пользователь получит ответ от CDN-сервера, не связанного с геолокацией пользователя. Ответ всегда будет одинаков для всех пользователей.

    Если вы пользуетесь Cloud DNS, настройте запись по следующей инструкции:

    Инструкция по настройке DNS-записей для Cloud DNS
    Консоль управления
    CLI
    API
    1. В консоли управления выберите сервис Cloud DNS.
    2. Если у вас нет публичной зоны DNS, создайте ее:
      1. Нажмите кнопку Создать зону.
      2. Укажите Имя зоны: cdn-dns-a.
      3. В поле Зона укажите ваш домен с точкой в конце: ycprojectblue.example.
      4. Выберите Тип зоны — Публичная.
      5. Нажмите кнопку Создать.
    3. Создайте запись в зоне:
      1. В списке зон нажмите на зону cdn-dns-a.
      2. Нажмите кнопку Создать запись.
      3. В поле Имя укажите cdn, чтобы запись соответствовала доменному имени cdn.ycprojectblue.example.
      4. Выберите Тип записи — CNAME.
      5. В поле Значение вставьте скопированный адрес в домене .edgecdn.ru с точкой на конце.
      6. Нажмите кнопку Создать.
    1. Если у вас нет публичной зоны DNS, создайте ее:

      yc dns zone create --name cdn-dns-a --zone ycprojectblue.example. --public-visibility
      

      Где:

      • --name — имя зоны.
      • --zone — доменная зона — ваш домен с точкой на конце.
      • --public-visibility — опция публичной видимости зоны.

      Результат:

      id: aetuvdw77q61********
      folder_id: aoewzf73jwdl********
      created_at: "2021-09-28T10:33:31.917Z"
      name: cdn-zone-a
      zone: ycprojectblue.example.
      public_visibility: {}
      
    2. Создайте запись в зоне:

      yc dns zone add-records --name cdn-dns-a --record "cdn CNAME cl-********.edgecdn.ru."
      

      Где:

      • --name — имя зоны.
      • --record — ресурсная запись.
    3. Проверьте, что запись создана:

      yc dns zone list-records --name cdn-dns-a
      

      Результат:

      +----------------------------+------+-------+------------------------------+
      |            NAME            | TTL  | TYPE  |             DATA             |
      +----------------------------+------+-------+------------------------------+
      | ycprojectblue.example.     | 3600 | NS    | ns1.yandexcloud.net.         |
      |                            |      |       | ns2.yandexcloud.net.         |
      | ycprojectblue.example.     | 3600 | SOA   | ns1.yandexcloud.net.         |
      |                            |      |       | mx.cloud.yandex.net. 1 10800 |
      |                            |      |       | 900 604800 86400             |
      | cdn.ycprojectblue.example. |  600 | CNAME | cl-********.edgecdn.ru.      |
      +----------------------------+------+-------+------------------------------+
      

      В списке должна быть запись с именем cdn.ycprojectblue.example.

    1. Если у вас нет публичной зоны DNS, создайте ее с помощью вызова gRPC API DnsZoneService/Create или метода REST API create. Чтобы сделать зону публичной, добавьте в тело запроса поле public_visibility (gRPC) или publicVisibility (REST).
    2. Создайте в зоне запись cdn CNAME cl-********.edgecdn.ru. с помощью вызова gRPC API DnsZoneService/UpdateRecordSets или метода REST API updateRecordSets.

Предзагрузите контент в кеш CDN-серверовПредзагрузите контент в кеш CDN-серверов

Консоль управления
CLI
API
  1. В консоли управления выберите сервис Cloud CDN.

  2. Выберите созданный CDN-ресурс (в списке ресурсов будет указано его основное доменное имя — cdn.ycprojectblue.example).

  3. Перейдите на вкладку Контент.

  4. Нажмите → Предзагрузить контент.

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

    /ycgame-update-v1.1.exe
    
  6. Нажмите кнопку Предзагрузить контент.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Укажите путь к файлу, который нужно предзагрузить:

yc cdn cache prefetch --resource-id <идентификатор_ресурса> \
  --path /ycgame-update-v1.1.exe

Подробнее о команде yc cdn cache prefetch см. в справочнике CLI.

Используйте вызов gRPC API CacheService/Prefetch или метод REST API prefetch.

Проверьте работу CDNПроверьте работу CDN

  1. Дождитесь обновления DNS-записей (на это может потребоваться несколько часов) и предзагрузки файла на CDN-серверы.

  2. Скачайте файл по новому URL:

    https://cdn.ycprojectblue.example/ycgame-update-v1.1.exe
    
  3. Получите логи запросов к бакету с файлами:

    Консоль управления
    AWS CLI
    API
    1. В консоли управления выберите сервис Object Storage.
    2. Выберите бакет с логами.
    3. Нажмите на имя объекта, соответствующего времени скачивания файла ycgame-update-v1.1.exe.
    4. Нажмите → Скачать.
    1. Получите список объектов с логами:

      aws --endpoint-url=https://storage.yandexcloud.net \
        s3 ls s3://<имя_бакета_с_логами>
      

      Результат:

      2021-10-01 08:37:53         10 2021-10-01-08-37-53-631E0FC3B732AEDD
      2021-10-01 09:38:05         62 2021-10-01-09-38-05-436E6CDC832A20EF
      2021-10-01 10:38:01         23 2021-10-01-10-38-01-7F65EF1A6366FB18
      2021-10-01 11:37:57         41 2021-10-01-11-37-57-6F31613427A7DB9A
      2021-10-01 12:38:02         58 2021-10-01-12-38-02-AB893E6148AFDC55
      2021-10-01 13:38:02         73 2021-10-01-13-38-02-E69EAEC1C9083756
      
    2. Найдите в полученном списке объект с логом, сохраненным после скачивания файла ycgame-update-v1.1.exe, и скачайте его:

      aws --endpoint-url=https://storage.yandexcloud.net \
        s3 cp s3://<имя_бакета_с_логами>/2021-10-01-13-38-02-E69EAEC1C9083756 \
        2021-10-01-13-38-02-E69EAEC1C9083756
      

      Результат:

      download: s3://<имя_бакета_с_логами>/2021-10-01-13-38-02-E69EAEC1C9083756 to 2021-10-01-13-38-02-E69EAEC1C9083756
      
    1. Получите список объектов в бакете с логами с помощью метода API listObjects.
    2. Найдите в полученном списке объект с логом, сохраненным после скачивания файла ycgame-update-v1.1.exe, и скачайте его с помощью метода API get.
  4. По логам запросов к бакету-источнику убедитесь, что CDN-серверы не скачивали файл из источника после вашего запроса. Подробнее о содержимом логов см. в разделе Формат объекта с логами документации Object Storage.

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы остановить работу CDN-ресурса и перестать платить за созданные ресурсы:

  1. Отключите созданный ресурс.
  2. Удалите объект ycgame-update-v1.1.exe из бакета с файлами.
  3. Удалите бакет с файлами.
  4. Удалите все объекты из бакета с логами.
  5. Удалите бакет с логами.
  6. Удалите зону DNS, если вы пользовались ей при настройке DNS.

Была ли статья полезна?

Предыдущая
Визуализация данных Yandex Query
Следующая
Резервное копирование ВМ с помощью Хайстекс Акура
Проект Яндекса
© 2025 ООО «Яндекс.Облако»