Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Промоакции и 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 MPP Analytics for PostgreSQL с помощью 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
    • Загрузка состояний 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
    • Регулярное распознавание изображений и PDF-документов из бакета Object Storage
    • Конвертация видео в 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®
      • Обзор
      • Консоль управления, CLI, API
      • Terraform
    • Использование Object Storage в Yandex Managed Service for Apache Spark™
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

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

  • Перед началом работы
  • Необходимые платные ресурсы
  • Добавьте сертификат в Certificate Manager
  • Создайте бакет в Object Storage и загрузите файлы сайта
  • Настройте хостинг статического сайта
  • Создайте CDN-ресурс
  • Настройте DNS для CDN-ресурса
  • Проверьте работу CDN
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Настройка хостинга статического сайта в бакете Yandex Object Storage с доступом через Yandex Cloud CDN
  3. Консоль управления, CLI, API

Настройка хостинга статического сайта в бакете Yandex Object Storage с доступом через Yandex Cloud CDN

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

Чтобы настроить хостинг статического сайта в бакете с доступом через CDN с помощью консоли управления Yandex Cloud, CLI или API:

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

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

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

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

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

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

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

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

В стоимость поддержки инфраструктуры для сайта в бакете с доступом через 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 и загрузите файлы сайта

Консоль управления
Yandex Cloud CLI
API
  1. В консоли управления выберите сервис Object Storage.
  2. Справа сверху нажмите кнопку Создать бакет.
  3. В поле Имя укажите имя бакета, например example.com.
  4. Нажмите кнопку Создать бакет.
  5. На локальном компьютере создайте файл главной страницы сайта — index.html.

    Пример файла index.html
    <!DOCTYPE html>
    <html>
      <head>
        <title>My site</title>
      </head>
      <body>
        <p>The site is working</p>
      </body>
    </html>
    
  6. На странице созданного ранее бакета нажмите кнопку Загрузить и выберите файл index.html.

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

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

  1. Создайте бакет в каталоге по умолчанию:

    yc storage bucket create --name <имя_бакета> \
      --public-read \
      --public-list
    

    Где:

    • --name — имя бакета, например example.com. Обязательный параметр. Подробнее см. Правила именования бакетов.
    • --public-read — включить публичный доступ на чтение объектов в бакете.
    • --public-list — включить публичный доступ на просмотр списка объектов в бакете.

    Результат:

    name: example.com
    folder_id: b1geoelk7fld********
    anonymous_access_flags:
      read: true
      list: true
    default_storage_class: STANDARD
    versioning: VERSIONING_DISABLED
    created_at: "2025-10-26T17:38:54.635027Z"
    resource_id: e3ef9cmb253k********
    
  2. На локальном компьютере создайте файл главной страницы сайта — index.html.

    Пример файла index.html
    <!DOCTYPE html>
    <html>
      <head>
        <title>My site</title>
      </head>
      <body>
        <p>The site is working</p>
      </body>
    </html>
    
  3. Загрузите файл главной страницы в бакет:

    yc storage s3api put-object \
      --body <путь_к_локальному_файлу> \
      --bucket <имя_бакета> \
      --key <путь_к_объекту>
    

    Где:

    • --body — путь к файлу, который нужно загрузить в бакет, например index.html.
    • --bucket — имя вашего бакета, например example.com.
    • --key — ключ, по которому объект будет храниться в бакете, например index.html.

    Результат:

    etag: '"b810d087812333c7dd9cfa80********"'
    request_id: 8e8714b8********
    
  1. Чтобы создать бакет, воспользуйтесь методом REST API create для ресурса Bucket, вызовом gRPC API BucketService/Create или методом S3 API create.

  2. На локальном компьютере создайте файл главной страницы сайта — index.html.

    Пример файла index.html
    <!DOCTYPE html>
    <html>
      <head>
        <title>My site</title>
      </head>
      <body>
        <p>The site is working</p>
      </body>
    </html>
    
  3. Чтобы загрузить главную страницу сайта, воспользуйтесь методом S3 API upload.

Настройте хостинг статического сайтаНастройте хостинг статического сайта

Консоль управления
Yandex Cloud CLI
API
  1. В консоли управления в списке сервисов выберите Object Storage и перейдите в бакет, для которого хотите настроить хостинг.
  2. На панели слева выберите Настройки.
  3. Перейдите на вкладку Основные.
  4. В полях Чтение объектов и Чтение списка объектов выберите Для всех.
  5. Нажмите Сохранить.
  6. Выберите вкладку Веб-сайт.
  7. В разделе Хостинг в поле Главная страница укажите абсолютный путь к файлу в бакете для главной страницы сайта, например index.html.
  8. Нажмите кнопку Сохранить.

Проверить хостинг можно, перейдя по ссылке в поле Ссылка.

  1. Задайте параметры хостинга для бакета:

    yc storage bucket update --name <имя_бакета> \
      --website-settings '{"index":"index.html"}'
    

    Где --name — имя бакета.

    Результат:

    name: example.com
    folder_id: b1geoelk7fld********
    default_storage_class: STANDARD
    versioning: VERSIONING_DISABLED
    acl: {}
    created_at: "2025-10-26T17:38:54.635027Z"
    website_settings:
      index: index.html
      redirect_all_requests: {}
    resource_id: e3ef9cmb253k********
    

Чтобы настроить хостинг статического сайта, воспользуйтесь методом REST API update для ресурса Bucket, вызовом gRPC API BucketService/Update или методом S3 API upload.

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

Консоль управления
Yandex Cloud CLI
API
  1. В консоли управления выберите Cloud CDN.
  2. Нажмите кнопку Создать ресурс.
  3. Задайте основные настройки CDN-ресурса:
    • В блоке Контент:

      • Включите Доступ к контенту.

      • В поле Запрос контента выберите Из одного источника.

      • В поле Тип источника выберите Бакет.

      • В поле Бакет выберите нужный бакет из списка.

      • Включите Использовать сайт бакета.

      • В поле Протокол для источников выберите HTTP.

      • В поле Доменное имя укажите доменное имя, например cdn.yandexcloud.example.

        Внимание

        Доменное имя cdn.yandexcloud.example станет основным, и его будет невозможно изменить после создания CDN-ресурса.

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

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

    yc cdn origin-group create \
      --name <имя_группы_источников> \
      --origin source=<имя_бакета_с_файлами>.website.yandexcloud.net,enabled=true
    

    Где:

    • --name — имя группы источников.
    • --origin source — доменное имя источника в формате: <имя_бакета_с_файлами>.website.yandexcloud.net, например example.com.website.yandexcloud.net.

    Результат:

    folder_id: b1geoelk7fld********
    name: mys3-origin
    use_next: true
    origins:
      - id: "27904"
        origin_group_id: "42742158888********"
        source: example.com.website.yandexcloud.net
        enabled: true
        provider_type: ourcdn
    provider_type: ourcdn
    
  2. Создайте ресурс CDN:

    yc cdn resource create \
      --cname <доменное_имя_cdn> \
      --origin-group-id <идентификатор_группы_источников> \
      --origin-protocol http \
      --cert-manager-ssl-cert-id <идентификатор_TLS_сертифкатоа> \
      --host-header <имя_бакета_с_файлами>.website.yandexcloud.net
    

    Где:

    • --cname — доменное имя для CDN-ресурса, например: cdn.example.com.
    • --origin-group-id — идентификатор группы источников для CDN, созданной на предыдущем шаге.
    • --origin-protocol — протокол, который будет использоваться для взаимодействия CDN-ресурса с источником, укажите http.
    • --cert-manager-ssl-cert-id — идентификатор TLS-сертификата, сохраненный ранее при его создании.
    • --host-header — значение заголовка Host. Чтобы бакет-источник корректно отвечал на запросы CDN-серверов, укажите доменное имя источника в формате: <имя_бакета_с_файлами>.website.yandexcloud.net, например example.com.website.yandexcloud.net.
    Результат
    id: bc8r4l7awapj********
    folder_id: b1geoelk7fld********
    cname: cdn.example.com
    created_at: "2025-10-26T17:45:08.171948Z"
    updated_at: "2025-10-26T17:45:08.171948Z"
    active: true
    options:
      edge_cache_settings:
        enabled: true
        default_value: "86400"
      browser_cache_settings: {}
      query_params_options:
        ignore_query_string:
          enabled: true
          value: true
      slice: {}
      host_options:
        host:
          enabled: true
          value: example.com.website.yandexcloud.net
      static_headers:
        enabled: true
      stale: {}
      allowed_http_methods:
        enabled: true
        value:
          - GET
          - HEAD
          - OPTIONS
      proxy_cache_methods_set:
        enabled: true
      disable_proxy_force_ranges:
        enabled: true
        value: true
      static_request_headers:
        enabled: true
      custom_server_name: {}
      ignore_cookie:
        enabled: true
        value: true
      secure_key:
        type: DISABLE_IP_SIGNING
    origin_group_id: "42742158888********"
    origin_group_name: mys3-origin
    origin_protocol: HTTP
    ssl_certificate:
      type: CM
      status: READY
      data:
        cm:
          id: fpq4nl8g1c4h********
    provider_type: ourcdn
    provider_cname: b5384481********.a.yccdn.cloud.yandex.net
    

Чтобы создать ресурс CDN, воспользуйтесь методом REST API create для ресурса Resource или вызовом gRPC API ResourceService/Create.

Важно

После создания CDN-ресурса может пройти до 15 минут, прежде чем ресурс фактически заработает.

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

Настройте DNS для CDN-ресурсаНастройте DNS для CDN-ресурса

Доменное имя cdn.yandexcloud.example должно быть связано с CDN-ресурсом с помощью записей DNS.

Чтобы настроить DNS для CDN-ресурса:

  1. Получите доменное имя провайдера Cloud CDN:

    Консоль управления
    1. В консоли управления выберите Cloud CDN.
    2. В списке CDN-ресурсов выберите ресурс с основным доменным именем cdn.yandexcloud.example.
    3. Из блока Настройки DNS внизу страницы скопируйте доменное имя вида 328938ed********.a.yccdn.cloud.yandex.net или cl-msa87*****.edgecdn.ru в зависимости от используемого провайдера CDN.
  2. На сайте компании, которая предоставляет вам услуги DNS-хостинга, перейдите в настройки DNS.

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

    cdn CNAME 328938ed********.a.yccdn.cloud.yandex.net
    

    Примечание

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

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

    Инструкция по настройке DNS-записей для Cloud DNS
    Консоль управления
    1. В консоли управления выберите сервис Cloud DNS.

    2. Если у вас нет публичной зоны DNS, создайте ее:

      1. Нажмите кнопку Создать зону.
      2. В поле Зона укажите доменное имя сайта с точкой в конце: yandexcloud.example..
      3. В поле Тип выберите Публичная.
      4. В поле Имя укажите example-dns-zone.
      5. Нажмите кнопку Создать.
    3. Создайте в зоне CNAME-запись для cdn.yandexcloud.example:

      1. Выберите зону example-dns-zone.
      2. Нажмите кнопку Создать запись.
      3. В поле Имя укажите cdn.
      4. В поле Тип укажите CNAME.
      5. В поле Значение вставьте скопированное значение вида 328938ed********.a.yccdn.cloud.yandex.net. или cl-msa87*****.edgecdn.ru. (в зависимости от используемого провайдера CDN) с точкой на конце.
      6. Нажмите кнопку Создать.

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

Дождитесь обновления DNS-записей — на это может потребоваться несколько часов.

Проверьте доступность сайта: откройте его по новому URL cdn.example.com. Должно произойти перенаправление на страницу https://cdn.example.com, где уже подключен TLS-сертификат из Certificate Manager и источником для раздачи является Cloud CDN.

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

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

  1. Если вы создавали зону в Cloud DNS, то удалите зону DNS example-dns-zone.
  2. Удалите CDN-ресурс с основным доменным именем cdn.yandexcloud.example.
  3. Удалите все объекты из бакета.
  4. Удалите бакет.

См. такжеСм. также

  • Настройка хостинга статического сайта в бакете Yandex Object Storage с доступом через Yandex Cloud CDN с помощью Terraform

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

Предыдущая
Обзор
Следующая
Terraform
Проект Яндекса
© 2025 ООО «Яндекс.Облако»