I've gone both routes. S3 + DynamoDB works fine until you hit scaling issues—multiple engineers running plans simultaneously, state corruption from incomplete locks, debugging whose apply broke what. We had a situation where a lock didn't release properly and blocked deploys for hours.
Terraform Cloud solved those problems for us, but the cost adds up with larger teams. It's worth it though for the audit trail, run history, and VCS integration that actually prevents mistakes.
My take: S3 + DynamoDB for hobby projects or strict compliance needs. Terraform Cloud for anything with 3+ engineers touching infrastructure regularly. The productivity gain outweighs the cost.
Nina Okafor
ML engineer working on LLMs and RAG pipelines