Статический сайт в Yandex Object Storage с помощью консоли управления
Чтобы разместить статический сайт в Object Storage с помощью консоли управления Yandex Cloud:
- Подготовьте облако к работе.
- Создайте публичный бакет.
- Включите веб-сайт для бакета.
- Настройте DNS.
- Загрузите файлы сайта.
- Проверьте работу сайта.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки статического сайта входит:
- плата за хранение данных статического сайта (см. тарифы Object Storage);
- плата за операции с данными (см. тарифы Object Storage);
- плата за исходящий трафик из Yandex Cloud в интернет (см. тарифы Object Storage);
- плата за публичные DNS-запросы и зоны (см. тарифы Yandex Cloud DNS).
Создайте публичный бакет
Чтобы создать бакет для файлов статического сайта:
-
В консоли управления
Yandex Cloud выберите каталог, в котором будете создавать бакет. -
На странице каталога нажмите кнопку Создать ресурс и выберите Бакет.
-
В поле Имя введите имя бакета. После настройки бакет будет доступен по двум адресам:
http(s)://<имя_бакета>.website.yandexcloud.net
http(s)://website.yandexcloud.net/<имя_бакета>
Имя должно удовлетворять требованиям:
- Длина имени должна быть от 3 до 63 символов.
- Имя может содержать строчные буквы латинского алфавита, цифры, дефисы и точки.
- Первый и последний символы должны быть буквами или цифрами.
- Символы справа и слева от точки должны быть буквами или цифрами.
- Имя не должно иметь вид IP-адреса (например
10.1.3.9
).
Если у вас есть зарегистрированное доменное имя (например
example.com
), и вы хотите, чтобы ваш сайт был доступен по адресуexample.com
, в качестве имени бакета укажитеexample.com
.Примечание
Если вы планируете использовать собственный домен для сайта, имя бакета должно в точности совпадать с именем вашего домена, а домен должен быть второго и более уровня. Подробнее см. в разделе Собственный домен.
-
В поле Доступ на чтение объектов укажите
Публичный
. -
Нажмите кнопку Создать бакет.
Включите веб-сайт для бакета
-
Загрузите и настройте главную страницу и страницу обработки ошибок будущего сайта. Для этого создайте на вашем компьютере файлы:
index.html
с текстомHello, world!
. Содержимое файла будет отображаться при обращении к главной странице сайта.error.html
с текстомError!
. Содержимое файла будет отображаться при ответах сайта с ошибками4xx
.
-
Загрузите созданные файлы в бакет:
Консоль управления-
В консоли управления
выберите каталог, в котором расположен бакет. -
В списке сервисов выберите Object Storage и в открывшемся окне выберите созданный ранее бакет.
-
На панели слева выберите Объекты.
-
Нажмите кнопку Загрузить. В открывшемся окне выберите созданные файлы и подтвердите загрузку.
-
На панели слева выберите Настройки.
-
На вкладке Веб-сайт:
- Перейдите на вкладку
Веб-сайт
и выберитеХостинг
. - В поле Главная страница укажите
index.html
. - В поле Страница ошибки укажите
error.html
. - Нажмите кнопку Сохранить.
- Перейдите на вкладку
-
-
Убедитесь, что главная страница сайта открывается. Для этого подключитесь к сайту через браузер по ссылке вида
http://<имя_бакета>.website.yandexcloud.net
. -
Убедитесь, что страница ошибки открывается. Для этого подключитесь к сайту через браузер по ссылке вида
http://<имя_бакета>.website.yandexcloud.net/error-check
.
По умолчанию сайт доступен только по протоколу HTTP, например http://example.com.website.yandexcloud.net
. Чтобы поддержать для сайта протокол HTTPS:
-
Добавьте собственный сертификат безопасности или сертификат от Let's Encrypt в сервисе Yandex Certificate Manager.
-
Настройте поддержку HTTPS для бакета. После этого сайт будет доступен по протоколу HTTPS
https://example.com.website.yandexcloud.net
.Примечание
При использовании URL в формате
http(s)://<имя_бакета>.storage.yandexcloud.net
протокол HTTPS доступен для бакета только в том случае, если имя бакета не содержит точек. Например:https://example.storage.yandexcloud.net
— для этого бакета протокол HTTPS доступен.http://example.ru.storage.yandexcloud.net
— для этого бакета HTTPS недоступен.
Это связано с тем, что в Object Storage используются сертификаты Wildcard
, которые поддерживают только один уровень поддоменов.Чтобы поддержать для бакета с точкой в имени протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage.
-
Чтобы настроить доступ к сайту по короткому доменному имени
example.com
, настройте DNS.
Настройте DNS
Если у вас есть зарегистрированное доменное имя, назначьте его бакету. Для этого создайте в DNS-запись типа ANAME.
Вы можете воспользоваться сервисом Cloud DNS для управления доменом.
Примечание
Имя бакета должно в точности совпадать с именем вашего домена, а домен должен быть второго и более уровня. Подробнее см. в разделе Собственный домен.
В инструкции ниже описана настройка DNS для домена второго уровня example.com
.
Добавьте зону
Чтобы создать публичную зону DNS:
-
В консоли управления
выберите каталог, в котором хотите создать публичную зону. -
В списке сервисов выберите Cloud DNS.
-
Нажмите кнопку Создать зону и в открывшемся окне задайте настройки зоны DNS:
- Зона — укажите ваше зарегистрированное доменное имя. Например:
example.com.
. Значение поля должно заканчиваться точкой. - Тип —
Публичная
. - Имя —
example-zone-1
.
- Зона — укажите ваше зарегистрированное доменное имя. Например:
-
Нажмите кнопку Создать.
Добавьте ресурсную запись типа ANAME
Создайте в публичной зоне DNS ресурсную запись типа ANAME:
-
В консоли управления
выберите каталог, в котором находится публичная зона DNS. -
В списке сервисов выберите Cloud DNS и выберите созданную ранее зону DNS.
-
Нажмите кнопку Создать запись и в открывшемся окне задайте параметры записи:
- В поле Имя выберите
Создать поддомен
и введите значение домена, например:example.com
. - В поле Тип выберите
ANAME
. - В поле Значение укажите значение ресурсной записи. Например:
example.com.website.yandexcloud.net
, гдеexample.com
— имя созданного ранее публичного бакета.
- В поле Имя выберите
-
Нажмите кнопку Создать.
Имя домена в ANAME-записи должно соответствовать имени бакета. Например, если вы создаете ANAME-запись с именем example.com
, ваш бакет должен иметь имя example.com
.
Делегируйте доменное имя
Делегирование — это перенос ответственности с серверов регистратора на ваши серверы. Для домена создаются ресурсные записи типа NS (ns1.yandexcloud.net
и ns2.yandexcloud.net
).
Чтобы делегировать домен, укажите для него DNS-серверы в личном кабинете регистратора.
Делегирование происходит не сразу. Серверы интернет-провайдеров обычно обновляют записи до 24 часов (86400 секунд). Это обусловлено значением TTL
Проверить делегирование домена можно с помощью сервиса Whoisdig
:
dig +short NS example.com
Результат:
ns2.yandexcloud.net.
ns1.yandexcloud.net.
Загрузите файлы сайта
После настройки и проверки доступности загрузите в бакет остальные файлы, необходимые для работы сайта. Используйте для этого консоль управления
Проверьте работу сайта
Чтобы проверить работу сайта, используйте один из стандартных адресов Object Storage:
http://<имя_бакета>.website.yandexcloud.net
http://website.yandexcloud.net/<имя_бакета>
Если вы настроили для сайта собственный домен, используйте его адрес, например example.com
.
Как удалить созданные ресурсы
Чтобы перестать платить за ресурсы: