The other day, I visited a planetarium in my city. While the instructor was explaining all the wonders of space, something he said caught my attention: “We learn more about planet Earth by studying other stars in space.” After that, we went on to explore Mars with the telescope—a fantastic experience. In the same way, you can learn more about GCP or Azure if you already have knowledge of and experience with AWS. When I was learning GCP, I was always comparing it to AWS or finding a similarity between the two. AWS was the first cloud I learned, so it was helpful for me to search for things like “RDS relative service in GCP.”
This post is the first in a series to learn more about GCP through the lens of someone with expertise in AWS. You’ll also learn how Azure works if your background is in AWS, or vice versa. I’ll start with an overview of the cloud providers’ timelines and then include a few sections that are the tip of the iceberg when comparing the three most popular cloud providers.
Let’s get on it!
Cloud Provider Timelines
The first cloud provider was AWS, which launched its first service, AWS SQS in 2004. In 2006, they started S3—then later that same year, EC2 was in beta. It’s clear why there are many professionals with AWS backgrounds.
In 2008, Google had its initial release of App Engine, the platform-as-a-service solution for computing. Users of App Engine can host and develop an application for common languages and configurations. You don’t need to worry about configuring or patching the servers; Google does it for you. The product has evolved a lot since its first release, with features like auto-scaling and flexible environments.
Azure announced its platform in 2008 under the name Red Dog. It wasn’t until 2010 that Microsoft had its first release of its cloud offering, called Windows Azure. In 2014, it was renamed to Microsoft Azure, as it’s now known.
AWS, GCP, and Azure have been on the market for a while now. And even though a lot has changed since their initial release, there are aspects where they have many similarities.
Let’s compare these three cloud service providers (CSPs).
Infrastructure Locations and Segregations
Nowadays, these three CSPs are very similar in terms of how they distribute their physical data-centers. Depending on where you or your customers are located, you have several regions to choose from around the world. Each region is then segregated into zones, which are physical data-centers within a region. Up until 2017, Azure didn’t have this zones segregation. As you might already know, the purpose of zones is to offer redundancy within a region in case of a failure in the data-centers.
Moreover, each CSP has different multi-regional services. GCP has services like App Engine, Cloud Storage, Load Balancing, and others. AWS’s DynamoDB service has support for multi-regional tables, as does Azure’s Cosmos DB service. But the main difference is that you have to create peering connections to interconnect two regions in AWS and Azure, whereas in GCP, you don’t need to create a peering connection between regions to enable communication. You’d create a peering connection for different reasons. Therefore, that’s why GCP has more multi-regional services than AWS or Azure.
Another difference is that Azure has region pairs, which means that certain regions have a direct connection between them. Moreover, Azure won’t schedule maintenance windows at the same time in pair regions. AWS and GCP don’t provide suggestions between which regions you might choose.
As with all sections in this post, we can go deeper with differences in networking between CSPs. But since I just want to summarize the significant differences at this point, I’ll leave it at that.
Organization and Resource Management
The AWS way to organize resources is either by using tags or by having separate accounts. To some extent, you can separate resources at the networking level with VPCs and subnets. But the cleanest and more isolated way is by using accounts. That’s why you see offerings like AWS Organizations or Landing Zone.
By contrast, GCP has the concept of creating projects that allow you to structure resources in a hierarchy in the same account. In Azure, you have resource groups to organize resources, and you also have tags. AWS has resource groups too, but they use tags, and users can have different resource groups. The concept of accounts in Azure is translated into subscriptions, and you can structure permissions for multiple subscriptions with AD tenants.
Another important aspect is how you manage those resources. All three CSPs have a console, CLI, APIs, and SDKs to administer resources. GCP and Azure have an excellent utility called the “cloud shell,” which is a service managed by the CSP. You also have the CLI to interact with their API and manage resources. AWS doesn’t have a cloud shell per se, and they recommend using Cloud9 for this purpose. Even though it’s possible to use it as a shell, I don’t think that’s the purpose of Cloud9. You also have the session manager service, but still, it’s not a cloud shell.
Pricing Structure and Free Quotas
Pricing in all three CSPs changes frequently, and it’s similar in that all of them charge you for usage by the second—at least in most of their services, like virtual machines. And with other services like AWS Lambda, Azure Functions, and Cloud Functions, their pricing is almost the same.
In AWS, you have the option to reserve instances or use spot instances to reduce costs. GCP and Azure also have the option to reserve instances for one and three years for steady workloads. For workloads that can support downtime and are variable, you have spot instances. GCP has the same service under the name of preemptible instances, and Azure does under the name of low-priority VMs. But where GCP’s pricing differs is in their sustainable use discounts—you get a different price if you use the VM for the whole month or only for a few hours.
And regarding the free quotas, all three CSPs have a similar free tier (for one year) and always-free tiers. AWS doesn’t give you an amount of money you can spend, but hours or capacity of usage, and not all services fit under the free tier. Whereas in GCP and Azure, you have US$300 to use for the first year on certain services.
Pricing is a complex topic between CSPs, and that’s why there are many companies and consultants to help reduce the bill. Each CSP has services where you can get recommendations on lowering your bill.
AWS was the first in the game, which is why their service catalog is so vast. AWS launches a lot of new features and services at their annual conference, re:Invent. GCP’s annual conference is called Next, and Microsoft’s conference is Ignite.
All three CSPs have similar services under different names, and I didn’t want to include repetitive information in this post—besides, it might become outdated quickly. But I at least wanted to share links from GCP’s documentation, where it lists the comparison table of services with AWS and Azure. And there’s also a bigger list to compare the list of services between AWS and Azure.
Similar to pricing, the information about the service catalog changes constantly. I’d recommend you visit official docs to get the most up-to-date information.
I’m aware that I just cover the surface level here, but that’s why this is the introduction of a series of posts where the idea is to learn more about GCP through the lens of specific services—for example, understanding in more detail GCP’s VMs through AWS EC2, or understanding GKE through AWS EKS. The best way to learn something new is by using your existing knowledge to compare the new thing with what you already know. As you’ve learned today, there are a lot of similarities under different names, and that’s good.
|This post was written by Christian Meléndez. Christian is a technologist that started as a software developer and has more recently become a cloud architect focused on implementing continuous delivery pipelines with applications in several flavors, including .NET, Node.js, and Java, often using Docker containers.|