Во время производственного запуска мне нужен один поддомен, beta.foo.bar.com, чтобы начать перенаправлять все запросы на foo.bar.com.
AWS предлагает использовать корзину S3, настроенную для статического хостинга веб-сайтов и настроенную для перенаправления всех запросов в другой домен. Это отлично работает для http, но время ожидания запросов https к beta.foo.bar.com истекает, поскольку S3 не может обрабатывать https.
Обе записи DNS являются псевдонимами для дистрибутивов CloudFront, которые, в свою очередь, имеют собственные записи CNAME, которые в конечном итоге указывают на ELB. Это было создано кем-то, кого сейчас нет, и, признаюсь, я еще недостаточно знаю о дистрибутивах / источниках CloudFront. Есть ли какая-то возможная комбинация распространения / происхождения / CNAME CloudFront, которая может обрабатывать http, https, и перенаправление?
Примечание. Само приложение может получать http, но переписывается на https с расширением ebextension; там возможно перенаправление, но я бы предпочел разрешить его на AWS.
Мне не нравится использовать слишком много причудливых уловок AWS, поэтому я бы просто установил ALB (и сделал бы HTTPS), а затем установил экземпляры EC2 в ASG с крошечной статической конфигурацией nginx, которая перенаправлялась на другой домен. Преимущество этого подхода заключается в том, что он практически без изменений применяется к любому другому облачному провайдеру, поскольку в следующем году будет определено что-то еще, что станет новой проблемой.
Однако, если вы полны решимости перейти на полностью AWS, IIRC предпочтительным подходом для SSL-in-front-of-S3 является использование SSL с помощью CloudFront, который указывает на корзину S3, которая затем предположительно выполнит перенаправление . Я никогда не пробовал, так что, возможно, CloudFront съест перенаправление или сделает что-то еще бесполезное, но, вероятно, стоит попробовать.
Спасибо всем за помощь. Оказывается, это очень просто. Все, что мне нужно было сделать, - это добавить в дистрибутив CloudFront beta.foo сегмент перенаправления S3 в качестве источника, а затем отредактировать поведение по умолчанию, чтобы использовать этот источник вместо конечной точки ELB. Не нужно менять DNS или даже принудительно использовать http-> https в CloudFront. Перенаправление вступило в силу немедленно даже во время повторного развертывания CloudFront.
Это очень просто реализовать.
DNS потребуется время, чтобы мир обновил свои записи (многие DNS-серверы не соблюдают TTL, если он установлен коротким), поэтому планируйте заранее.
Протестируйте из другой системы, которая никогда не использовала ни одно из ваших доменных имен, и убедитесь, что все работает, пока DNS обновляется во всем мире.