Требуется создать хостинг статического сайта, используя AWS S3 и подключить к нему CloudFlare CDN.
Содержание
Создание AWS S3 корзины
Создаём корзину с тем же именем, что и домен, в нашем случае это cdn.example.com:
В Properties включаем хостинг сайта:
Переходим в Permissions, в Bucket Policy включаем полный доступ к корзине:
{ "Version": "2012-10-17", "Id": "MyPolicy", "Statement": [ { "Sid": "PublicReadForGetBucketObjects", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::cdn.example.com/*" } ] }
Для проверки – создаём файл, и загружаем его в корзину:
[simterm]
$ aws --profile bm-backend s3 cp index.html s3://cdn.example.com upload: ./index.html to s3://cdn.example.com/index.html
[/simterm]
И открываем по URL корзины:
[simterm]
$ curl http://cdn.example.com.s3-website.us-east-2.amazonaws.com TestCDN
[/simterm]
Настройка CloudFlare CDN
После регистрации – переходим в панель управления, жмём Add Site:
Есть два варианта подключения домена – с полным переключением DNS, когда для всего домена меняются DNS на сервера CloudFlare, и домен дальше обслуживается ими, либо частичное подключение – например, для одного субдомена, через CNAME-запись на DNS CloudFlare. Но для второго варианта требуется подписка уровня Business или Enterprise.
Пока мы ждём активации нашего Enterprise – добавим домен с полным переключением DNS.
Добавляем домен:
Выбираем подписку для него – тут Free, Enterprise включат после письма на support@:
CloudFlare подтянет все существующие записи домена:
Тут же можем добавить запись cdn.example.com с типом CNAME, указав в значении URL корзины S3:
И последним – CloudFlare сообщает, какие DNS надо задать для домена:
Переходим в панель управления доменами регистратора и обновляем DNS:
Ждём пару минут, проверяем:
[simterm]
$ whois example.com | grep Name Domain Name: example.com Name Server: cass.ns.cloudflare.com Name Server: lloyd.ns.cloudflare.com
[/simterm]
Проверяем в CloudFlare:
И проверяем через, например, https://checkforcloudflare.selesti.com:
SSL
Последним шагом – переходим в настройки SSL, и включаем редирект HTTP на HTTPS:
CloudFlare использует свой сертификат, но при необходимости – можно загрузить отдельный:
Готово.