
Мы внедряем стек AWS serverless с несколькими средами. Стараясь следовать лучшим практикам, мы создали несколько учетных записей для разных целей.
ЕстьДНСаккаунт, который должен содержать все размещенные зоны, связанные с этим проектом. Он имеет размещенную зону для example.org
.
У нас есть несколько сред и соответствующий аккаунт для каждой. Сейчас я сосредоточусь надевипродукт.
Вот как должна выглядеть конфигурация хоста:
РАЗРАБОТКА
- app.dev.example.org (дистрибуция CloudFront в аккаунте разработчика)
- login.dev.example.org (дистрибутив CloudFront для Cognito Hosted UI в учетной записи разработчика)
- api.dev.example.org (API Gateway в учетной записи разработчика)
- cdn.dev.example.org (дистрибуция CloudFront в аккаунте разработчика)
ПРОИЗВОДСТВО
- example.org (дистрибуция CloudFront в аккаунте prod)
- login.example.org (дистрибутив CloudFront для Cognito Hosted UI в учетной записи prod)
- api.example.org (API Gateway в учетной записи prod)
- cdn.example.org (дистрибуция CloudFront в учетной записи prod)
девпросто. Настройка NS-записей для поддомена dev.example.org
с использованием NS-серверов из размещенной зоны dev.example.org
вдевсчет и все готово.
продуктэто сложно, так как мы хотели бы использовать запись APEX example.org
. Кроме того, login.example.org
и api.example.org
не cdn.example.org
имеют общего поддомена.
В поисках возможных решений я пришел к следующим вариантам:
- Вместо этого создайте размещенную зону для
example.org
учетной записи в производстве. Делегируйте поддомены другим учетным записям (т.е.дев) оттуда. - (Не уверен): Создайте повторно используемый набор делегирования. Таким образом можно создать две размещенные зоны (если я правильно понял), одну вДНСсчет и один впродуктаккаунт. Они будут использовать одни и те же серверы имен. Я не смог выяснить, работает ли это между аккаунтами, и пока не проверял.
- (Не уверен): Настройка размещенных зон впродуктдля каждого
login.example.org
,api.example.org
иcdn.example.org
. Это позволит устанавливать записи APEX поддоменов изprod
учетной записи. Это не решение для записи APEXexample.org
. Кроме того, это 3 дополнительные размещенные зоны (только для выполнения обходного пути).
Я хотел посмотреть, не упустил ли я чего-то фундаментального и/или у кого-то была похожая ситуация и альтернативное/лучшее решение. Этот вариант использования не должен быть слишком экзотическим?
решение1
Выберите 1 — это самый простой вариант.
Или 4 — используйте кросс-аккаунтный доступ для вставки записей в зону в учетной записи «dns» из учетной записи «prod».
Также обратите внимание, что записи ALIAS могут указывать на ресурсы в других учетных записях, они не обязательно должны находиться в одной и той же.
Надеюсь, это поможет :)