I use Terraform v1.10 and the AWS Provider v5 to manage a few websites et al. Some notes.
### Miscellaneous
Plan ahead and _do things incrementally_. Don't "Big Bang" and attempt to change large portions of the state of the world at once. Terraform tries its best to help but it's not a freaking genie.
CloudFront Updates: These take a _loooong_ time (sometimes >15 mins.) Be patient and dont Ctrl+c!
Claude.ai is better than most at migrating from old to new things.
### Route53 and Nameservers
Route53 is two things: a Domain Registrar and a DNS Host. _The Nameservers must match_! Else you'll get the DNS resolution errors one would reasonably expect with this kind of misconfiguration.
Get what the "DNS Host" part of Route53 thinks they are with this
aws route53 get-hosted-zone --id ZUYTRTR6MIDU2W
And then copy those over to the "Domain Registrar" part (Domains → Registered Domains.)
### UI and UX
The official Terraform plugins are great.
There's really no UI but there's [Terraform Enterprise](https://app.terraform.io) which is more than sufficient for personal use and [Terrakube](https://terrakube.org/) as an open-source alternative (it's a pretty involved installation, even with Docker).
### Modules
* Wondered what the "name" should be when defining a module resource. Looks like the world uses `this`:
module.cloudfront_example_com.aws_cloudfront_distribution.this
* Outputs are like `module..