我正在编写一些模板来按需创建堆栈。由于并发的VPC限制(5开始),我尝试在单个VPC上创建所有基于特性的dev环境,并且主要将堆栈划分为子网。其思想是,每个堆栈将有2个私有子网和2个公共子网。我知道我可以通过这样的方法获得特定的CIDR (YAML):
!Select [ 0, !Cidr [ !GetAtt MyVpc.CidrBlock, 1, 8 ]]
但是,我需要确保我得到的CIDR没有被其他堆栈使用。在编程上,我将从VPC中获取所有CIDR块,然后过滤其他子网使用的所有块,以获得最终数组(或从数组中返回x项)。
来做一些事情。
发布于 2019-07-25 22:13:21
不要担心将每个堆栈放入自己的子网中,这是过头了。
只需让资源的安全组引用堆栈模板中的其他SGs,而不是子网CIDR。
这意味着,例如,RDS SG sg-123456将允许来自App sg-9876543的通信量,而不是从App子网10.20.30.0/24允许通信量,从网络隔离的角度来看,您会很好。
我们通常为开发、测试和特性栈共享VPC基础设施。那完全没问题。此外,我们还使用CloudFormation出口简化了模板。
希望有帮助:)
https://devops.stackexchange.com/questions/8718
复制相似问题