Стек CF идентифицируется по имени стека. Все, что вам нужно сделать, это указать это имя стека при развертывании шаблона CF.
aws cloudformation deploy --stack-name <value> --template-file <value> ...
Если вы укажете имя существующего стека, этот стек будет обновлен. Если вы укажете новое имя, вы создадите новый стек из заданного шаблона.
Вы можете создать столько стеков, сколько захотите, из одного шаблона, каждый раз выбирая новое имя стека. Вам не нужно беспокоиться о конфликтах именования, потому что имя каждого ресурса в данном стеке уникально идентифицируется на основе имени стека, которое будет отличаться.
aws cloudformation deploy --stack-name dev --template-file the-same-template.yaml ...
aws cloudformation deploy --stack-name test --template-file the-same-template.yaml ...
aws cloudformation deploy --stack-name uat --template-file the-same-template.yaml ...
aws cloudformation deploy --stack-name prod --template-file the-same-template.yaml ...
Это создаст 4 отдельных стека (dev, test, uat, prod).
Обратите внимание, что, поскольку вы жестко кодируете диапазоны IP-адресов, ресурсы в этих стеках не смогут обмениваться данными между собой из-за перекрытия сетей (что, вероятно, вы и так хотите), но если для по какой-то причине они нужны вам для связи, вам также потребуется создать Parameters
для блоков CIDR (VP C, подсети).