Cost optimisation exercises typically recover a fraction of what better architecture would have avoided. Instance right-sizing cannot fix a chatty design or an unbounded data retention policy.
Attribute cost to services and teams from day one, set guardrails as code, and review architecture decisions against a cost model rather than after the fact.
Once cost is visible per service, engineering teams optimise without being asked.