Multi-account AWS migration
- Environments
- ~15
- Provisioning
- Days to ~1 hr
- Cutover
- ~30 sec
- Delivery
- 4 mo, solo
ProblemAbout fifteen environments lived in a single overloaded AWS account that had been built by hand over several years. Cross-account dependencies were tangled and undocumented, and there was no infrastructure as code underneath any of it.
I split the estate into separate production and non-production accounts, then rebuilt it in Terraform as versioned, application-based modules, so a full environment now stands up from a small set of variables.
I migrated one environment at a time on a controlled schedule, with regression and smoke testing at each step, to keep the blast radius small.
Cutovers ran at near zero downtime, around thirty seconds each. I stood up parallel infrastructure and moved DNS under Terraform control during off hours.
ResultProvisioning a new environment went from days of manual setup to about an hour, and the whole estate became reproducible, standardized and version controlled. Delivered solo over roughly four months.