Статический хостинг на Amazon S3 - Конфигурация DNS

Я работаю над небольшим webapp (все клиентские). Я хочу разместить его на Amazon S3. Я нашел несколько руководств по этому вопросу и сумел создать себе ведро (с тем же именем, что и мой домен), установить его как веб-сайт и загрузить некоторый контент.

Где я борюсь, и где вся документация начинает немного расплывчато, как правильно настроить мой DNS.

Весь мой регистратор (123-reg) может предложить веб-пересылку, которая дает мне mydomain.com.s3.amazonaws.com

Что мне нужно настроить, и где (например, 123-reg/Amazon) можно получить чистый URL?

Ответ 1

Похоже, вы уже проделали большую часть работы. Для ясности я снова рассмотрю эти шаги, чтобы убедиться, что вы настроены правильно:

  • Создайте ведро s3 с использованием вашего имени домена в качестве имени ведра (ваше имя в виде ковша должно быть www.example.com, если вы хотите, чтобы ваш сайт был example.com или www.example.com)

  • Загрузите свой контент в ведро s3. Выберите согласованное имя для индексных файлов вашего сайта (обычно index.html). Вы также можете загрузить пользовательскую страницу для 404 ошибок Not Found. Назовите это 404.html. Предоставьте разрешения на чтение для каждого файла на вашем веб-сайте, чтобы публика могла его просматривать. Не давайте никаких дополнительных разрешений для ведра, только файлы внутри.

  • Настройте свое ведро как веб-сайт. С помощью консоли AWS (https://console.aws.amazon.com/s3/) вы можете выбрать свой ковш, выбрать свойства, а затем выбрать вкладку "Веб-сайт". Нажмите "Включено" и установите индексный документ "index.html", а ваш документ с ошибкой - "404.html". Вам также нужно будет настроить ведро с разрешениями доступа, чтобы разрешить доступ через Интернет (http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html)

  • Обратите внимание на URL-адрес "Конечная точка" на вкладке "Конфигурация веб-сайта". Здесь живет ваш сайт. Вы можете открыть ссылку в новом окне, и вы должны увидеть свой сайт так, как он будет выглядеть. Нажмите и убедитесь, что все работает так, как ожидалось.

Вы ДОЛЖНЫ использовать адрес конечной точки на всех этапах ниже. Обычный сайт www.example.com.s3.amazonaws.com не будет работать - вам нужно использовать региональную версию (http://www.example.com.s3-website-us-east-1.amazonaws.com/)

Теперь мы можем настроить DNS, чтобы предоставить вам чистый пользовательский URL.

Сначала мы сопоставим www.example.com с вашим сайтом.

Используя ваши инструменты провайдера DNS (123-reg в вашем случае), вам необходимо создать запись CNAME для сопоставления www.example.com на www.example.com.s3-website-us-east-1.amazonaws. ком

CNAME - единственное, что вам нужно, если вам просто нужен www.example.com. Большинство людей также хотят, чтобы "example.com" работал, поэтому нам нужен еще один шаг.

example.com часто называют голым доменом или вершиной записи домена. Причина в том, что это не может быть CNAME. CNAME работают только на таких поддоменах, как "www". Это затрудняет указание на s3.

Обычный подход заключается в использовании службы для автоматического перенаправления любого запроса на example.com, чтобы указать на www.example.com. Затем вы получите свою запись CNAME, и ваш сайт будет отправлен с s3.

Автоматическое перенаправление невозможно с обычным старым DNS, поэтому вам нужно использовать другую услугу. Некоторые провайдеры DNS предлагают эту услугу вместе с их DNS (godaddy does, amazon route53 не делает. Не уверен насчет 123-reg)

Если ваш DNS-провайдер этого не делает, есть несколько бесплатных сервисов. Один из них, который я использовал, http://wwwizer.com/naked-domain-redirect - он не требует никакой регистрации или оплаты.

Чтобы использовать этот тип сервиса, вам необходимо создать запись DNS "A" для вашего голого домена. Для службы wwwizer.com вам необходимо создать запись A, чтобы указать example.com на 174.129.25.170. Это все!

Итак, с этой настройкой, если пользователь вводит example.com в свой браузер, произойдет следующее:

  • DNS-запрос: example.com → 174.129.25.170 (услуга wwwizer.com)
  • HTTP-запрос к 174.129.25.170 для example.com
  • 174.129.25.170 redirects example.com → www.example.com
  • DNS-запрос: www.example.com → CNAME на www.example.com.s3-website-us-east-1.amazonaws.com
  • DNS-запрос: www.example.com.s3-website-us-east-1.amazonaws.com → указывает на Amazon S3
  • HTTP-запрос для www.example.com теперь обслуживается Amazon S3

Наслаждайтесь!

Ответ 2

Я считаю, что вы должны выбрать все документы в своем ковше, щелкнуть правой кнопкой мыши и выбрать "Сделать общедоступным". Вы должны делать это каждый раз, когда что-то меняется и в ковше. Затем я обычно нажимаю правой кнопкой мыши на ведро, выбираю свойства, выбираю разрешения в правой панели, а затем добавляю "Все как" грантополучатель ", а затем предоставляю им только" список ". Остальная часть статьи превосходна. я разрешаю свои проблемы. Вы также можете иметь голый домен, перенаправленный в домен www в S3 в разделе" Статический хостинг веб-сайтов". Это, вероятно, самый простой способ. Еще раз спасибо за вашу помощь.

Тим

Ответ 3

На экране Advanced DNS на панели управления 123-reg

  • Я начал с нажатия кнопки "Reset DNS" до настроек 123-reg по умолчанию.

Это дало мне следующее:

DNS Entry Type        Priority TTL Destination/Target
*                  A                                    81.xx.xx.xx              
@                A                                    81.xx.xx.xx              
@                MX           10                 xx0.123-reg.co.uk
@                MX           20                 xx1.123-reg.co.uk

  • Затем я добавил эту запись

www           CNAME                       www.example.com.s3-website-us-east-1.amazonaws.com

Из "Управление DNS-указателем pdf" в нем говорится, что "@запись" означает "ваш домен в его чистой форме без субдомена" , то есть голый домен stackoverflow.com

Но он не упоминает, что такое "запись", я предположил, что это поймать все поддомены и подумать, что это может произойти в записи CNAME, но это, похоже, не так.

Ответ 4

Обновление 2019

На сегодняшний день следующие настройки DNS работали на то, чтобы заставить работать статический веб-сайт AWS S3:

DNS setting for bucket mapping