The three main players of business cloud services — Amazon, Google and Microsoft — have an array of products covering all you can possibly need for your online operations. But there are differences not only in pricing but also in how they name and group their services, so let’s compare one next to another and find out what they offer.
We’ll focus on services provided by Amazon Web Services (AWS), Google Cloud Platform (GCP) and Microsoft Azure. We won’t cover all of them, or get into a lot of detail about the infrastructure of cloud computing. However, we’ll survey many of the products on offer and also get familiar with some cloud concepts.
Other Services, and Changes over Time
There are, of course, other cloud services we could be covering here. In recent years, companies like DigitalOcean and Linode have made some advances on the big three. But it’s been a new contender that has radically simplified the deployment of cloud infrastructure and is still pushing the DevOps workflow to the next level — Netlify. Netlify also happens to be the company that coined the concept of the “Jamstack”. (See “Introduction to the Jamstack” and “DevOps by Example” for more information.)
All-in-one, but Simpler: Google Firebase, Netlify, AWS Amplify
Amazon, Google, and Azure (in that order), are still pretty much the only companies that cover all of the spectrum of cloud services. But given how Netlify has simplified the game, they’ve all had to make significant additions to the way in which they present their tools to developers in order to remain competitive.
<!– (https://firebase.google.com/) –>
Google and Amazon introduced Firebase and Amplify respectively, both wrapping a bunch of services from the GCP and AWS to present them in a clear and easy-to-implement way to web and mobile developers. (Strangely, Microsoft just seems to make a conscious effort to leave Azure outdated.)
As I said in my article on “100 Jamstack Tools, APIs & Services to Power Your Sites”:
<!– (https://aws.amazon.com/amplify/) –>
Google really made a brilliant move with the Firebase family of products by “detaching” them from the GCP, but Amazon went half-way with AWS Amplify. It sure is a dramatic improvement from the regular AWS workflow, especially for novice users, and its documentation hub is superb and way more down-to-earth than the way Amazon usually documents services. But Amplify is still accessed from the same old (horrifically bloated) console. You still need a credit card to just open an account, deployments are still region-specific (no built-in CDN, seriously?), and the workflow isn’t as straightforward when compared to that of Firebase or Netlify.
<!– (https://www.netlify.com/) –>
With an incredibly well-documented framework, an outstanding and fun YouTube channel, and a wide variety of use applications, Google Firebase is way on top of AWS Amplify … but fairly behind Netlify in terms of simplicity.
Azure … Seriously?
Azure seems to be working for some people (particularly the enterprise sector within the US), but as a Reddit search or a TrustPilot inquiry will quickly reveal, opinions are, at best, very divided.
Hard as AWS can be at first, users usually praise how responsive and knowledgeable their support team is. Speaking from my own experience, Azure support — or its complete lack thereof — on the other hand, can be 100% automated and totally non-existent, to the point that solving a problem as simple (and critical) as setting a credit card will become impossible and render the entire suite unusable.
While an indisputable leader in several fronts, Microsoft also has a long history of being late to the party, putting a huge amount of effort into catching up, then only to seemingly lose faith and leave things half way (such as with Zune, Groove, Mobile, Edge, and Skype). And the way things go with Azure, it remains to be seen if that will also be the case there.
Why the Cloud
Iconic companies from both the public and the private sector — such as Netflix, Airbnb, Spotify, Expedia, PBS, and many, many more — rely on cloud services for supporting their online operations. This allows them to better focus on doing what they’re known for, and let many of the technicalities be taken care of by an infrastructure that already exists and is constantly being upgraded. If they had to implement the physical infrastructure they actually need for their operations themselves, they’d need an army of technicians, lots of extra budget and time, and many startups would never get past these technical challenges.
But this isn’t limited to big names. Today, we live in a world in which both a huge business, and two youngsters at home with virtually no initial capital, can access world-class infrastructure for storage, computing, management and more, to make the next massive online service, and pay as they go — literally — by the hour.
Flexible (and sometimes intricate) pricing
What you pay will vary a lot depending and how much processing power you demand, how many instances (that is, how many virtual servers) you deploy, and where you deploy them (more on this on the “Locations” section). There will also be significant discounts for bulk usage. In any case, you’ll have these advantages most of the time:
- no upfront costs
- no termination fees
- pay only for what you use
- per minute billing
For precise details, you’ll need to read the pricing fine print of AWS, GCP and Azure.
Products vs Solutions
We’ll use the terms “products” and “services” rather loosely. A solution, however, is a more specific concept that you’ll hear a lot about when dealing with cloud services. Simply put, a solution is a set of preconfigured products oriented to a very specific need, with plentiful documentation, use cases and testimonials that will guide you through the process of adopting the cloud infrastructure.
Some typical “canned” solutions are:
- big data: AWS, GCP, Azure
- ecommerce and retail: AWS, GCP, Azure (e-commerce and retail)
- gaming: AWS, GCP, Azure
- government: AWS (federal, sate and local), GCP (federal, state and local), Azure
- Internet of Things (IoT): AWS, GCP, Azure
- marketing: AWS, GCP (technology and analytics), Azure
Amazon introduced “commoditized” cloud computing services through its first AWS service launched back in 2004, and ever since then they’ve kept innovating and adding features, which has allowed them to maintain the upper hand in this field by building the most extensive array of services and solutions for the cloud. They’re also, in many regards, the most expensive.
Google, and later Microsoft, came into the game and are quickly coming up to par, bringing their own infrastructure and ideas, offering deals, and pulling the prices down.
In the following video, representatives of each company discuss their cloud strategies:
This is what computers are for, after all: to calculate, to process data — to compute. If you need faster processing for graphics rendering, data analysis or what have you, you can either buy more hardware, or you can get on the cloud.
Sure, if you buy the hardware you own it. It’s an asset. But you’re also paying for all of the idle time when the computers aren’t doing any actual processing, plus all of the maintenance that comes with it, which can go really high if you build a data center.
When you go on the cloud, on the other hand, you just pay for what you use and you can scale to thousands of processing nodes in a few minutes (and blow your credit card while at it, if you’re not careful).
Elastic Compute Cloud (EC2) is Amazon’s flagship for scalable computing on demand, competing with Google’s Compute Engine and Azure’s Virtual Machines and Virtual Machine Scale Sets. Amazon’s service is the most comprehensive, but as mentioned, the pricing for EC2 can get very intricate, and the same goes for Azure’s VMs pricing. Google’s offering is somewhat less flexible, but the pricing is a lot easier to follow.
There’s also the option of renting computing processes for web and mobile apps, which can offer significant savings when used instead of EC2 or Compute Engine if your apps fit in the specs of this service (see AWS Elastic Beanstalk and Google App Engine for more details).
If you want to deploy software containers with Docker, you should look at Amazon’s Elastic Container Service (ECS) and Elastic Container Registry (ECR). Google’s equivalents are Kubernetes Engine and Container Registry. Azure’s also on board with Docker with its Azure Kubernetes Service (AKS), though at the moment they’re not providing a facility for private Docker registries.
Azure, since it’s Microsoft’s, also allows you to deploy Windows client apps with its Remote Desktop clients service.
Alongside computing, storage is a key pillar to cloud services. In the cloud, you can store with the same ease anything from a bunch of GBs to several PBs (1 petabyte = 1,024 terabytes = 1,048,576 gigabytes). Beware, though: implementing these solutions is not so trivial, as this is not a regular hosting for which you just need a user and password to upload files via FTP. Instead, you’ll need to interact with APIs or third-party programs, and it may take some time before you’re ready to operate your storage entirely in the cloud.
To store objects (that is, pretty much anything), Amazon’s Simple Storage Service (S3) is the service that’s been running the longest, and as such it has extensive documentation, including free webinars, articles and tutorials and very active discussion forums where Amazon developers provide very useful feedback on a regular basis. Of course, Google Cloud Storage and Microsoft Azure Storage provide a service that’s as reliable and robust, but the resources you’ll find don’t come even close those of Amazon. That being said, Google and Microsoft may have an edge on the price, so read the fine print.
|Block Storage||w||Rackspace Cloud||$0.12|
|Cloud Files||w||Rackspace Cloud||$0.1|
|Cloud Storage||w||Google Cloud Platform||varies per region, see pricing|
|Data Lake Store||w||Microsoft Azure||varies per region, see pricing|
|Simple Storage Service (S3)||w||Amazon Web Services||varies per region, see pricing|
|Storage||w||Microsoft Azure||varies per region, see pricing|
For archiving, also sometimes called “cold storage” (like when you store objects you don’t plan to access regularly for the most part), you’ll enjoy lower rates but also lower access speeds, which shouldn’t be much of a problem in most cases. The characteristics and prices are very similar among different providers, so most probably you’ll be conditioned by which API you’ve implemented on your back end. For the specs and details, see Amazon Glacier and Glacier Deep Archive, Cloud Storage for data archiving by Google, and Azure Backup. Also check the archiving solutions these providers offer: Data Archiving by AWS and Backup and Archive by Azure.
Aside from storing and archiving, they provide more specific options, such as Amazon CloudFront — targeted for building a content delivery network (CDN) — which is the same as Google’s Cloud CDN and Azure’s Content Delivery Network. But if you have more exotic requirements, make sure you check their sites.
Continue reading A Side-by-Side Comparison of AWS, Google Cloud and Azure on SitePoint.