Как выполнить маршрутизацию на Cloudfront + s3 и оставить на ALB в Route53?

У проекта есть доменное имя foobar.com , указывающее на устаревшую систему, в которой размещаются и обслуживаются в основном статические файлы. Со временем проект стал более сложным, и в AWS ALB определенные / маршруты указывают на особо изолированные микроприложения (например, службу api nodejs, службу php, такую ​​как cms, и т. Д.); все это развернуто через AWS ECS. Но сегодня я хотел бы развернуть проект, который представляет собой просто статические файлы на облачном сервере s3 + (чтобы воспользоваться преимуществами CDN и более низкой ценой), но использовать те же foobar.com + ALB и маршрут / foobar путь к облачному расположению s3 +. Я еще не нашел решения и не уверен, можно ли его настроить? Какие существуют варианты решения моего варианта использования? Итак, текущее состояние таково, что основное доменное имя указывает на запись A ALIAS dualstack-alb .

Cloudfront имеет необязательный CNAME, но, как упоминалось выше, доменное имя foobar.com указывает на устаревший контейнер проекта и только на определенные / routes в другом месте.

Когда создается новый дистрибутив, я получаю домен foobar.cloudfront.net , который я могу использовать для доступа к развернутым статическим файлам. Но очевидно, что это не то, что я хочу, и я хотел бы использовать основное доменное имя foobar.com и когда запрашивается / routeX для указания или обслуживания foobar. cloudfront.net . Это:

foobar.com > shows the legacy project, in ec2 container 1
foobar.com/cms > shows the cms project, in ec2 container 2
foobar.com/myNewProject/ > should show the X project, in s3

Следующая диаграмма демонстрирует, как это работает или должно работать:

enter image description here

После исследования, которое я провел до сих пор, кажется, что я должен указать запись A основного доменного имени в Cloudfront вместо того, чтобы запись A указывала к ALB ALIAS dualstack.xxxxxxs-alb-xxxxx и облачный фронт / route указывает на s3. А все остальное на ALB . Вот откуда у меня вопрос!

Я сейчас просто слежу и не могу найти, как установить / route на s3 и все остальное на alb хотя! Я вижу параметр CNAME в облачном интерфейсе, но нет правил маршрутизации или чего-то подобного.

0
задан 21 October 2019 в 01:45
1 ответ

После некоторых исследований, просмотрев документацию, я нашел решение!

Во-первых, нам нужно указать DNS-запись A на Cloudfront, чтобы процесс Cloudfront происходил раньше всего.

Во-вторых, нам нужно определить источник контента, как описано здесь ( https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName ).

В-третьих, мы указываем шаблоны путей ( https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern ), чтобы указать источник контента.

0
ответ дан 5 December 2019 в 00:20

Теги

Похожие вопросы