Not really. The issue is that these cloud platforms aren't just "give me virtual machines" anymore. If you're just looking for VMs, there are loads of alternatives. The problem is that people are looking for so many value add services, not just VMs.

At some point, you might say, "I'd really like to put things into some sort of queue-like system." With AWS, you have SQS, you have hosted Kafka. With GCP you have their pub-sub. I'm sure Azure has something similar. With all three of them, you can get Confluent to run Kafka for you.

At some point, you might say, "we need an analytical system to run reports off." With AWS you might be able to use Athena or their hosted Spark stuff. With Google Cloud, there's BigQuery. Azure has data warehousing stuff. Third parties will often have their systems available on those platforms.

At some point, maybe you want some computer vision, or ML on text, or Redis/Memcached cluster for caching, or Functions as a Service, or global load balancing, or container system, etc.

What Amazon realized is that they could provide more than just machines and something different from "you pay us to manage the boxes, but they're still your boxes" that places like Rackspace might do. They realized that they could create an ecosystem of value-add services that would become self-reinforcing. S3 wasn't about Amazon installing and managing MogileFS on a few boxes for you; it was about making it so that you didn't need to care about the boxes at all. Athena isn't about getting them to install Presto on some boxes for you; it's about not having to care about the boxes.

And it becomes self-reinforcing. As people use AWS for these value-add services, third parties want to build on AWS to get access to you. Which means that you want to build on AWS to get access to those third parties. Likewise, the more you use AWS's value-add services, the more you become dependent on them.

Many providers offer an S3 competitor. Few go much beyond that and S3 is less interesting if it's only about storing and serving files. S3 becomes so interesting on AWS because it can feed so many things. It can become a target for Kinesis or a source for Athena or a storage engine for Aurora.

Digital Ocean wants to go in this direction, but it isn't easy and their prices are rising to be similar. For example, DO offers managed databases. However, their pricing pretty much mirrors Google's. 8GB RAM high-availability is $200 on DO and $197.25 on Google. DO offers "4 vCPU" while Google only includes 2 vCPU, but GCP's vCPUs are dedicated while DO's are shared so it's probably a valid comparison. Even DO's compute VMs are similarly priced to Google's sustained-use pricing ($49.34 for Google's 2 vCPU 8GB N2D vs $60 for DO's 2 vCPU 8GB General Purpose Droplet). Now, DO's come with 4TB of transfer - which is an important distinction. However, when we look at their new App Platform, they've stopped including a lot of transfer for free and they're charging $0.10/GB for outbound transfer after the limit.

Oracle is looking to become a cloud competitor, but they're behind. They include 10TB of outbound transfer for free (which is nice) and they only charge $0.85/GB after that. However, I think there's a decent amount of distrust around Oracle in general and their offerings are a lot more limited than AWS/GCP/Azure.

The problem is that it takes years and a lot of engineers and capital to build up the breadth of services that people have come to use. If you're a startup, do you want to be managing your database, backup plan, scaling plan, etc.? You'd likely rather pay AWS/GCP/Azure more money and concentrate on your product. Do you want to install and manage Kafka and its dependencies like Zookeeper? Do you want to run your own load balancers? Your own caching cluster? Your own ML system? Your own video encoding system?

So, it really depends on what you're looking for. The sales pitch for AWS/GCP/Azure is that you won't be blocked from "anything" that might be useful for your startup. If you go with DO and realize that you need a high-throughput queue system, do you start evaluating RabbitMQ and Kafka, figure out which your engineers feel comfortable maintaining, figure out how you'll back it up, maintain uptime, etc.? Or would you just rather Confluent give you a managed system? Or use AWS's SQS or GCP's PubSub?

If you're just looking for VMs, a lot of places are offering that. However, often times they look cheaper until you start looking for dedicated CPUs. If you're getting 8 vCPU, but they're hugely overselling the boxes, you aren't really getting 8 vCPUs.

Transfer is the one area where the big three cloud providers seem to really overcharge.

The problem is that once Amazon saw the margins they were getting from AWS, they poured money into it to keep adding value that others (without as much capital) wouldn't be able to keep up with. Microsoft and Google have the kind of capital to pour in to compete in the area, but a place like Hetzner, OVH, DigitalOcean, Rackspace, etc. generally don't have the kind of capital to hire the engineers to create and manage the myriad of services that Amazon started churning out. When AWS was just EC2 and S3, there were loads of options that were roughly equivalent. Once Amazon started pouring money into AWS, it just became really hard for competitors without Amazon's huge scale to keep up. Google and Microsoft could buy their way in and I'm guessing Oracle will keep investing in their platform. However, it's hard for a new company to get involved. DigitalOcean has raised almost half a billion and I think they're a great company, but their offering is very limited by comparison.

So, there aren't really competitors featuring the kind of breadth of services. Oracle is probably the closest and DigitalOcean has some nice offerings, but it takes a lot of time and money to really become a competitor - and an amount of money that is hard to raise given that you have three incredibly well-funded and incredibly competent companies looking to make sure you don't enter the market.