I am looking to find some good patterns and anti-patterns for deploying mirrored environments (for simplicity lets say an EC2 Instance, and RDS and S3 bucket, which is a pretty common set-up). Lets say we have to do this hundreds or even thousands of times. I've batted some ideas around such as
Multiple accounts - Single purpose - Use all Regions
- We deploy one instance of a VPC per region, and deploy our set of services in that region.
- Good, Guarantees isolation and no
noisy neighbors
, TF modules or CloudFormation Templates won't be complicated - Bad, a friggin management nightmare
Single Account - Multipurpose
- We slice up our VPC into multiple subnets and deploy resources per subnet grouping
- Good, Easier to manage, more for less
- Bad, You are soft limited to 20 subnets per region (16 regions * 20), possibility of noisy neighbors, networking could end up being spaghetti
I'm looking at more ways to do this and why they'd be bad (technical debt, unmaintainable) or good (easily reusable and etc)
Thanks a million