I'm curious about how people handle the "chicken and egg" problem when creating a backend for their infrastructure on AWS. I've noticed that many use a bootstrap directory to deploy resources like S3 and DynamoDB tables, and I've gotten used to that method myself. However, with DynamoDB being deprecated for state locking, I'm interested in other strategies others might be using instead.
4 Answers
Honestly, I like to keep things simple. I have a generic CloudFormation template that I use to quickly bootstrap the resources needed for the Terraform backend.
One way to approach it is by bootstrapping just the essential components manually. I recommend writing a solid bootstrap script that sets up a service account and anything else you need for a functional state backend. Once that’s done, you can import everything into Terraform for ongoing management.
I prefer to go all-in with Terraform. I run Terraform without a configured backend to create the S3 bucket (since you don’t need DynamoDB anymore). After that, I turn the remote backend back on and push the local configuration.
I have a CloudFormation template that I deploy using the AWS CLI. It creates a storage bucket specifically for Terraform state (like terraform-state-<accountid>-<region>). There's a flag in the AWS CLI (I think it’s --deploy) that ensures it runs idempotently.

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically