Though, I heartily agree with "it's easy to get started with Kubernetes, and difficult to get started with AWS".
When I tried looking at deploying an application to OpenStack (as an alternative to deploying to AWS), I was barely able to setup an OpenStack cloud environment on my computer. The most practical option was to use a public cloud which provided OpenStack APIs.
Even with public clouds with OpenStack APIs.. my experience trying "compute VM with an internet-facing load-balancer in front" was that different public clouds required different setup for this. -- TBH, this surprised me. I understand that you can't just copy-paste Terraform code for AWS and have it work for GCP; but I had expected to be able to copy-paste Terraform code for one OpenStack cloud and have it work with another OpenStack cloud.