That's why we've had good results with ECS. Feels like 80% of the result for 20% of the effort, and I haven't found our use cases needing that missing 20%.
With EC2 launch types, probably. Setting up ECS for Fargate with proper IaC templates/modules isn't much easier than EKS, IMO.
We use Fargate, and what we launch is tightly coupled to our application (background jobs spin down and spin up tasks via the SDK) so for now, we aren't doing anything with IaC, other than CI deployment.
On the Google cloud side, using Google cloud build with cloud run with automatic CI/CD is very straightforward. I setup automated builds and deploys for staging in 2 hours. For production I set it up to track tagged branches matching a regex.
Mostly because CF and CDK have spawned from the deepest pits of hell. It’s ok when using terraform, and downright pleasant when using Pulumi.
When I had to set up ECS with Fargate using CloudFormation the documentation was certainly lacking (in late 2019 I think it was).
Now that it's working it's been pretty low maintenance.
It has definitely gotten better over time, but we tend to do a lot of stuff ad-hoc that finds its way into production lol, so we aren't yet relying on any infra as code.
I recommend everyone take a look at ECS patterns. This is incredibly easy in $CURRENT_YEAR. Give it a dockerfile / image and CDK deploy: