Задача AWS Zone Apex со старым DNS-сервером

У нас есть сайт в AWS Amplify. Для создания личного домена необходимо указать URL-адрес CNAME, выданный ими. Мы хотим использовать веб-сайт Amplify для нашего корневого домена «example.com». RFC 1034 говорит, что вершиной зоны должна быть запись A, а не CNAME.

Согласно статье https://aws.amazon.com/blogs/networking-and-content-delivery/solving-dns-zone-apex-challenges-with- Third -Party-dns-providers-using-aws/ , есть три варианта: Route53, Elastic IPs с инстансами EC2 и Global Accelerator.

Поскольку мы используем AWS Amplify, мы не можем использовать опцию EC2. Опция Route53 не будет работать с нашим старым DNS-сервером, который работает только с IP-адресами. Третий вариант — использовать AWS Global Accelerator и Application Load Balancer (ALB), который выполняет перенаправление 301 на наш дистрибутив Cloudfront, имеющий собственный сертификат SSL для нашего экземпляра Amplify.

Когда мы указываем нашему DNS на IP-адрес, связанный с AWS Global Accelerator, перенаправление работает, но URL-адрес показывает дистрибутив Cloudfront вместо example.com. Мне сказали, что добавление заголовка Host в белый список исправит это, но он просто возвращает ошибку 403, говорящую о том, что запрос не может быть удовлетворен.

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

1 ответ

Если вам нужно разместить приложение в Amplify, вам понадобится что-то среднее для обработки перезаписи домена (например, экземпляр nginx или лямбда-функция). Учитывая изложенные вами требования, я не уверен, что Amplify — лучший выбор. Существуют и другие альтернативы хостингу Amplify, которые по-прежнему могут помочь с управлением/накладными расходами задействованной инфраструктуры AWS, например, Elastic Beanstalk. Другой альтернативой может быть запуск вашего приложения на инстансах EC2. Вы по-прежнему можете интегрировать процесс CI/CD с перехватчиками в репозитории исходного кода, что позволит автоматизировать сборку/развертывание с помощью сервисов AWS Code*.