Choosing the right cloud provider - AWS vs Azure vs Google Cloud Platform
There are three main players in the race for cloud services providers - between them, they provide all products you might need for moving your business to the cloud. But these product offerings differ in pricing as well as the naming of their services - which can be confusing at times.
Here’s a quick guide to compare the services provided by the three main players - Amazon Web Services (AWS), Microsoft Azure and Google Cloud Platform (GCP).
Please note - this is by no means a comprehensive document - the product offerings by AWS, Azure and GCP are vast and it is always a good option to consult with a trusted technology partner to select the correct provider for your requirements. This guide is intended to make you familiar with some of the most commonly needed products for cloud.
Why move to the cloud?
Companies from both the public & private sector (Netflix, AirBNB, PBS and many more) increasingly rely on cloud services for their online operations. This allows them to concentrate on their core business idea and leave the infrastructure needs to the experts. In this day and age of constantly changing demand, setting up a physical infrastructure to provide such online services would get very expensive and time-consuming - with a team of technicians, lot of extra budget for servers, constantly changing hardware requirements and so on. With the help of cloud offerings provided by these players, a lot of startups find it quick and affordable to start their own ventures without these technical challenges.
Pricing for products and services you use from these providers will depend largely on the computing power you need, the number of instances you deploy and the location. But some major advantages of using the cloud as compared to setting up your own physical infrastructure are
No upfront investment
Pay for what you use
No termination fees
Easy scaling up/scaling down
You can read up about the pricing details here - AWS, GCP, Azure
Amazon Web Services (AWS) vs Microsoft Azure vs Google Cloud Platform (GCP)
Amazon introduced IaaS (Infrastructure As A Service) at their first AWS service launched in 2004. It has been a front-runner in the race and has since kept adding features and offerings - giving them an upper hand over competition. To an extent, they are the most expensive in some regards. But they are also the best in terms of service offerings. Google and Microsoft joined the bandwagon later but quickly caught up. This did help bring down the prices which ultimately helps consumers.
Here’s a quick comparison of all the offerings provided by AWS, Azure and GCP and how it affects pricing.
1. Computation Power
This is the core of the services offered by computers - to calculate, to process data — to compute. To get faster processing for data analysis, graphics rendering or faster response time, you either need more hardware OR you can go to the cloud. If you buy hardware, it is yours. But it is also very expensive - purchasing, maintenance and all the idle time where they are not in use. On the other hand, moving to the cloud, you only pay for what you use and it is much easier and faster to scale up or scale down depending on the demand.
Amazon provides EC2 (Elastic Compute Cloud), their on-demand scalable instances. Google provides Compute Engine and Azure has Virtual Machines. While EC2 is arguably the most comprehensive, it can burn a hole in your pocket if you are not careful - the pricing is also a little complex to understand. The same goes for Microsoft Azure’s VMs as well. Google’s Compute Engine has very simple pricing, but it is also the least flexible.
With AWS Elastic Beanstalk and Google App Engine, you also have the option of buying computing processes for mobile and web apps - which significantly reduces cost compared to using EC2 or Compute Engine IF your app fits the specs for these services.
All three providers provide Docker capabilities with AWS ECS, Google Container Engine and Azure Container service.
Azure has another advantage in that it allows deploying Windows client apps with a RemoteApp service which the other two lack.
Storage is another important criteria for cloud services. Using any of these cloud providers, you can store data to the tune of some GBs to many petabytes.
For storage, Amazon’s S3 (Simple Storage Service) has been around for long and is very well documented with many samples as well as third-party libraries. Google’s Cloud Storage and Azure’s Storage also provide equally reliable services, but their resources are not as extensive as S3. Although, Google and Azure somewhat beat S3 on the pricing.
Archiving services are provided at lower rates compared to cloud storage, but it also provides lower access speed. Archiving services are generally used for storing objects which are not accessed regularly. The archiving services provided by Amazon, Azure and GCP are Glacier (AWS), Azure Backup (Azure) and Cloud Storage Nearline (GCP). Azure and AWS also provide solutions for archiving - Data Archive (AWS), Backup and Archive (Azure)
Now comes the interesting and probably a very important part - using the computing, storage and content delivery using analytics. Usually when it comes to solutions hosted on the cloud, they deal with large data sets (big data). And unless we use analytics on this data and gather some important insights, it is pretty much useless.
Analytics on big data can help with many things - predictions, new offerings, cross-selling and so on. But analytics on such large data sets requires specific tools and programming models. Google was forefront in this race due to MapReduce - they came up with a number of products for users - BigQuery, Cloud Dataproc (managed Spack & Hadoop), Cloud Dataflow (data processing in real time), Cloud Datalab, Cloud Pub/Sub (streaming data and messaging) and even Genomics (for processing genomic data)!
While Google has taken the lead on Big Data, Amazon takes the cake with QuickSight - an offering they provide for businesses to make sense of large amounts of structured and unstructured data. It helps businesses identify opportunities based on data sets and various strategies. This helps businesses where they don’t see the need to have a team of data scientists implementing solutions for analyzing their data - but still need to gather insights from the data they capture.
When deploying your cloud services, location is very important - you should choose a data center which is close to your primary users. For instance if you are providing services to users in the East Coast of United States, it would be best to deploy your services there. This will reduce the response time and also offer better user experience. CDNs also help here for faster delivery of resources.
Amazon wins hands-down in this area - it has the most extensive coverage closely followed by Azure (although Azure has very good coverage in Asia). Google has a good coverage in United States, but not so much in Europe or Asia.
When selecting the location, do keep in mind that different locations cost different. United States and Europe generally offer the cheapest options. You can find more information here - AWS global reach, Azure regions, Google cloud locations
Google cloud locations
5. Other products & services
These are the main service offerings provided by any cloud providers. But that is not the end. Here’s a quick list of other resources/services you might be interested in
Then there’s developer tools, security offerings, disaster recovery tools and so on.
Other Service Providers
While Amazon, Microsoft and Google are the big names in cloud providers, there are many small providers who offer some very competitive pricing. Many of them focus on indie developers rather than companies and can be worth giving a shot - esp if you need moderate scaling. Some examples include