When infrastructure as code is worth the effort
The version of this that works is simpler than the version most people imagine. Infrastructure as code is not free, and pretending otherwise leads to bad decisions.
Cloud work rewards teams who automate early and punishes teams who click through consoles. Write the reasoning down alongside the decision, because the reasoning is what changes first.
When it is worth it
Clicking around a console is not a reproducible environment. Getting it slightly wrong is survivable. Ignoring it entirely is not. Write the reasoning down alongside the decision, because the reasoning is what changes first.
When it is not
If nothing downstream depends on it and nobody is complaining, it can wait. This is the sort of thing that compounds, quietly, in both directions.
How to decide
Rebuilding from scratch should be a routine operation. Small and consistent beats large and occasional here. The failure mode is not doing it wrong, it is doing it once and assuming it stays done.
In practice
The bill is a design document: it tells you exactly what your architecture actually does. Three things worth confirming about infrastructure as code before you move on:
- Someone can say what the current setup is without going to look
- Rebuilding from scratch should be a routine operation — and you know whether that is true here
- There is a way to tell whether the last change to this helped
Most of the value here comes from doing the first two things, not all of them.