Wilson Mar bio photo

Wilson Mar


Email me Calendar Skype call

LinkedIn Twitter Gitter Instagram Youtube

Github Stackoverflow Pinterest

Which cloud is best? Azure vs. AWS vs. Google

US (English)   Español (Spanish)   Français (French)   Deutsch (German)   Italiano   Português   Estonian   اَلْعَرَبِيَّةُ (Egypt Arabic)   中文 (简体) Chinese (Simplified)   日本語 Japanese   한국어 Korean


In 2020*, accelerating growth in spending on shared cloud infrastructure was such that it exceeded spending on on-prem. data center hardware:


NOTE: Content here are my personal opinions, and not intended to represent any employer (past or present). “PROTIP:” here highlight information I haven’t seen elsewhere on the internet because it is hard-won, little-know but significant facts based on my personal research and experience.

Analysis of corporate S-1 filings identified significant spend as percentage of Total Revenue:


What is Cloud Computing?

PDF: NIST 800-145 defines the characteristics:

  • Resource Pooling (for economies of scale) is the most fundamental characteristic
  • On-demand Self-Service (using UI/CLI without human interaction)
  • Broad Network Access (internationally using standard protocols)
  • Rapid Elasticity (automatically scale UP/OUT and DOWN/IN in response to system load)
  • Measured Service (pay for what you consume)

  • Multitenancy (distinct from resource pooling) is added by ISO/IEC 17788’s six key characteristics.

Why? Advantages of Cloud

Evaluations can be based on the advantages of cloud:

  1. Cloud vendors provide a large capacity pool, and benefit from economies of scale, for many users who pay for actual usage.

  2. Paying for metered actual usage conserves cash up-front which trades variable expense (OpEx) for capital expense (CapEx).

  3. It’s faster to obtain capacity by using cloud vendors who can buy newer, speedier equipment. This helps your organization to achieve agility.

  4. Individual users can now stop over-provisioning on-premise data centers to ensure adequate capacity which often go unused due to the uncertainty of future demand.

  5. Scale enables cloud vendors to hire expert specialist teams who can innovate faster than individual companies.

  6. Cloud customers’ workers make use of cloud vendor innovations to achieve higher productivity and security.

  7. Greater reliability to make data backup, disaster recovery, and business continuity easier and less expensive, with data being mirrored at multiple redundant sites on the cloud provider’s network.

  8. Go global - make use of compute and network infrastructure established around the world (time consuming, expensive, and dangerous to do on one’s own).

PROTIP: Memorize the above list for exams.

Amazon’s “Well Architected” notes the constraints removed by being in the cloud:

  • Test production at scale
  • Make experimentation easier (overcome fear of change)
  • Allow architecture to evolve (rather than being frozen in time)

Microsoft calls “Landing Zones” the output of a multisubscription Azure environment that accounts for scale, security, governance, networking, and identity. Azure Landing Zones enable application migrationa and greenfield development at enterprise-scale in Azure. These zones consider all platform resources required to support the customer’s application portfolio and don’t differentiate between infrastructure as a service or platform as a service.

Triggers to go cloud

The need to:

  • Rehost (migration) (“lift-and-shift”) to rehost with little code changes, to minimize application downtime.


  • Refactor - transform existing apps with minimal code change to use Docker and Kubernetes, robust logging, “elastic” auto-scaling in & out, etc.

  • Rearchitect - isolate application functionalities into separate microservices that can be independently deployed, tested, scaled up or down, and managed.

  • Rebuild - reconstruct existing app on a new PaaS platform.

  • Replace - retire existing on-premises application and rewriting functionality under a new architecture such as a Serverless or SaaS (“cloud native”) application.

Despite all the good reasons, individuals used to the old way may still “drag their heels”.

Cloud “as a Service” (*aaS) models

There are different ways to make use of cloud infrastructure:

  • SaaS - Applications reached using a browser (Google Gmail, WebEx/Zoom, Salesforce, Microsoft Office 365, Box, Slack, etc.)
  • SaaS - App Data reached using API calls (Monitoring: Splunk, Datadog, etc.; Storage: Blob, Table, File, Message; DB: Postgres SQL, Cosmos planetary DB)

  • PaaS - App Runtime (SAP Heroku, Web Apps built in NodeJs/Rust using a React/Vue UI library)
  • PaaS - Middleware (AWS Elastic Compute Service (ECS), Kubernetes)
  • PaaS - O/S (Azure App Service)

  • IaaS - Virtualization (VM, Containers)
  • IaaS - Servers
  • IaaS - Storage
  • IaaS - Networking

Individuals must pick a single cloud?

Organizations are going multi-cloud by using software from HashiCorp, Snowflake for database, etc.

But an individual has a limited amount of time to keep up with changes. So many individual technologists need to select the cloud vendor which provides the best career prospects. Here’s my logic:

  • If you code in C# on .NET and want to continue leveraging that experience, Azure is the natural choice. (But other clouds are trying to support Windows.)

  • Azure provides free learning instances. AWS is the only cloud that requires a credit card, and provides only email support (with varying response times, and often with no response at all).

  • If you’re looking for the fastest and easiest path to get a job in cloud, go for AWS because of its current market share and pace of innovation. AWS has the most sophisticated authentication and database services.

  • Due to competitive reasons, companies in retail, music, etc. use other clouds: Target, Best Buy, eBay, Sony Music, etc. use Google. WalMart uses Azure. Since Amazon is moving into agriculture (building urban farms to provide Whole Foods and Amazong Go stores) plus health care, established competitors in those industries would not want to use AWS.

  • If you’re moving a lot of data on networks, Google offers fast fiber networks that don’t limit what large machines can achieve. Plus Google is ahead in Machine Learning with its popular Tensorflow in Python.

  • Google’s SSD drives are expensive, though needed for speed.

  • IBM has bare-metal machines, if that’s your thing. But since 2017 AWS provides them as well.

  • Increasingly, companies doing business in a particular country are required to keep data within a cloud data center within that country (such as Google in Belgium).

Cloud vendor comparisons

cloud platforms black icons 300x330-300-58kb.jpg

This article compares the largest cloud services platforms: Amazon AWS vs. Microsoft Azure vs. Google Cloud Platform vs. IBM Softlayer vs. Rackspace vs. Alibaba Cloud vs. Huawei Cloud.

Major multi-cloud vendors include Oracle, SalesForce’s Heroku, SkyTap, etc.

VIDEO: The Myth of Multi-cloud by Corey Quinn

Microsoft has a live class: Microsoft Azure solutions for AWS developers

Software for private clouds include Red Hat OpenStack and VMWare.

Software for hybrid private/public clouds include CloudFoundry, HashiCorp Terraform, and others. NetApp, or EMC

EDITOR’s NOTE: This is not a complete treatment. Additional information will be added over time.

cloud-compare-364x172 http://cloudcomparison.rightscale.com presents all the details well. DOCS So here I’m adding additional commentary here.


As of June 6, 2021;

Factor AWS Azure GCP
Company Amazon Microsoft Google
Initial appearance 2006 2010  
Granularity of billing per hour per minute  
Entrepreneurial Discount - BizSpark  
# Regions 24 46  
# Data centers 24 100  
# zones 33 100  
Largest # vCPUs cores 448 32  
Largest RAM GB 1,952 GB 448 GB  

PROTIP: Moving up to double the RAM or cores usually does not yield a doubling of capacity due to overhead and limits in shared components such as networking.

ARM processors run faster and cooler than Intel x86 processors. AWS Graviton Nitro EC2 instances. Until June 30th 2021, all new and existing AWS customers can try the t4g.micro instances free for up to 750 hours per month.


Even though cloud vendors provide a great deal of transparency to how they price their services, there are so many variables to what affects the final bill that the only accurate way is to actually run services.

  • AWS has matched Azure pricing, and also per-minute billing.

Cowan analysis May 2016 (using 1.0 as average among vendors) rated Amazon 1.37 (above avarge) in prices (most expensive). Microsoft was rated the leader in price and APIs, but the lowest in support.

QUESTION: Is the comparison based on spot instances in AWS, which are of low cost because they can be taken away at any moment by someone who outbids.

Market share

Amazon had an early lead in 2006 and has been maintaing its lead even though Microsoft and Google are growing fast as well with 50%+ annual growth* aws-onboarding-cloud-growth-441x272.jpg

At the end of 2018, corporate filings reavealed this:

Earlier in 2015:

Operating Systems aliances

As of May 2016, Microsoft Azure works with SUSE and Oracle Java, but NOT Red Hat Enterprise Linux (RHEL).

Amazon provides software to host whatever OS is put into images. But its free server images are based on CentOS, derived from Red Hat as both use the yum package manager. Amazon is working on “Linux2” based on Red Hat.

Network speed comparisons

Under ideal conditions, latency over networks are limited by speed of light traveling within fiber-optic cables, which is roughly 202562 km/s or or 125866 miles/s. (Actual reachable speed is still a bit lower than that).

To estimate distance between terrestial locations, use Distance Calculator website

TUTORIAL: Qwiklabs Network Performance Testing tutorial provides step-by-step instructions for obtaining timings between regions. It sets up one network with five subnetworks in different regions and a VM in each subnetwork. Utilities ping, iperf.

Alternately, the open-sourced Linux/Unix utility mtr (My Traceroute, originally called Matt’s traceroute) combines Ping and Traceroute functions* brew install mtr is available for macOS to sudo mtr.

To compare network speeds using GUI tools:

GCP networking

Google has laid its own fiber-optic wires around the world:


Still, as of this writing, latency between Google’s EU and Asia locations is very high (slow) because Google Compute Engine does not have a direct link between them.

PROTIP: If you only operate out of just one region in the world, use a Central US region, which reaches West to Asia and East to Europe.

http://www.gcping.com measures current ping speed to regions on Google’s cloud.


To stop collection, press the dot with the arrow.

Amazon AWS networking

Amazon makes users specify the region to use. However, since Amazon usually makes new services first avilable on its us-east-1 (Virginia) region, that data center is most prone to overloading and thus down-time.

Amazon’s own EC2 Reachability Test does not provide ping speeds to specific IP addresses within each availability zone within each region, but a green icon when it can be currently reached at any speed.

http://cloudping.info measures current ping speed to various regions on Amazon’s EC2 cloud. Scroll down to click “HTTP Ping” to begin collection to a running line graph:


https://ping.varunagw.com/aws.htm provides green, yellow, red colors with Mean, Median, Min, and Max statistics based several measures of the speed to each EC2 region.

Microsoft Azure networking

At time of writing, Microsoft has over 60 regions around the world on their map:


There is also an interactive map showing a point for each region’s Longitude and Latitude with city name.

http://http://www.azurespeed.com measures current ping speed to various regions on Microsoft’s Azure cloud. To stop collection, click “uncheck all” or individual regions of interest:


https://docs.microsoft.com/en-us/azure/networking/azure-network-latency displays Microsoft’s own analysis of ping speeds between its regions (using data from the thousandeyes.com network analytics company):


PROTIP: The slowest connection is 400 ms round-trip between Cape Town (South Africa West) and Australia East.


Outage tracking

https://status.aws.amazon.com is Amazon’s AWS Service Health Dashboard applicable to all users. Under the tab for each continent is a list of each service plus region combination.

PROTIP: Most new services begin in the N. Virginia region “US-EAST-1”, as do the most famous outages. So if you are running a production load, try to use a different region than that. Nevertheless, that’s where one must provision AWS Cloud Front CDN for worldwide distribution.

https://phd.aws.amazon.com is your Personal Health Dashboard for your account.

http://downdetector.com/status/aws-amazon-web-services provides 3rd-party crowd-source status.

https://istheservicedown.com/problems/amazon-web-services-aws/history is a private-party site reporting the history of downtimes on AWS. For example:


For a list of outages further back: https://outage.report/aws-amazon-web-services

Categories of cloud services:

Service brand names

Here are the names of brand names, some with links to marketing or documentation pages:

Feature:Microsoft AzureAmazon Web Services (AWS)Google
Data center geography Azure Regions global infrastructure -
Government ServicesAzure GovernmentGovCloud -
Administration & Security (Identity and Access Management) Azure Active Directory DirectoryService
Cloud IAM
Threat Monitoring
Azure Security Center AWS Config -
Multi-Factor Authentication
Encryption Key Mgmt.Azure Key Vault KMS (Key Management Service) -
CAAzure Cloud Services Certificate Manager -
Hardware Security ModuleAzure Trust Center CloudHSM -
DDoS protectionAzure DDoS Protection Shield Advanced -
Share data securityInformation Protection ? -
Content Delivery Network (CDN )Azure CDNCloudFront -
Load BalancingLoad Balancing for Azure (how to)ELB (Elastic Load Balancing) -
Region routing by latency or on failAzure Traffic ManagerAmazon Route 53 -
Networking OptionsAzure Virtual Network VPC -

Azure ExpressRouteAWS Direct Connect -
VPN GatewayAzure Virtual Network Virtual Private Cloud & Gateway (VPG) -
Turnkey solutionsAzure Managed Applications AWS Service Catalog -
BillingAzure Cost ManagementBilling -
Monitoring, Logging, AlertingAzure Application Insights CloudWatch -
real-time data ingestionAzure Event Hubs None
Audit logs (Observability)
Azure Operational Insights CloudTrail -
Zipkin tracingAzure Application Monitor InsightsAWS X-Ray -
-Ops. Mgmt. Suite (OMS)Systems Manager -
App/Desktop ServicesAzure RemoteAppWorkSpaces
Amazon AppStream
VPSLinux VMsAmazon Lightsail
Compute ServicesVirtual Machines (VMs) EC2 (Elastic Compute Cloud) -
DockerHub Azure Container Registry AWS Lambda -
Triggers Logic Apps Elasticc Container Registry (ECR) -
Container SupportDocker Virtual Machine Extension (how to)EC2 Container Service (ECS) Kubernetes
Kubernetes scalingAzure Kubernetes Service (AKS)ECS for Kubernetes (EKS) -
Distributed appsAzure Service Fabric- -
Scaling serviceAzure Container InstancesAWS Fargate -
AnalyticsAzure Stream Analytics Kinesis -
MessagingAzure Notification Hubs SNS (Simple Notification Service) -
Email ServicesAzure BizTalk Services SES (Simple Email Services) -
API GatewayAzure API Management Amazon API Gateway Apigee

Azure Service Bus SQS (Simple Queue Service) -

Azure Batch Amazon Batcch -
CalendarAzure Scheduler SWF (Simple Workflow) -
Cloud IDEVisual Studio App Center Cloud9 -

Cloud Services
Azure Websites and Apps
Elastic Beanstalk -
Dev. toolsAzure Visual Studio OnlineNone -
Management Services & OptionsAzure Resource Manager CloudFormation -
Chef Automation- OpsWorks -
GitHubAzure Repos CodeCommit -
JenkinsAzure Code Pipelines CodeBuild -

CodeDeploy -
Media ServicesAzure Media Services ElasticTranscoder
Storage OptionsAzure Storage (Blobs, Tables, Queues, Files)S3 (SimpleStorage) -
Block StorageAzure Storage Disk(how to)Elastic Block Storage (EBS) -
Hybrid Cloud StorageStorSimpleNone -
Shared File StorageAzure FilesElastic File System (EFS) -
Backup OptionsAzure BackupGlacier Coldline
Storage ServicesAzure Import Export (how to)ImportExport -

Azure File Storage (how to)StorageGateway -

Azure Site Recovery? -
Database OptionsAzure SQL Database RDS (Relational Database Service)
NoSQL Database OptionsAzure DocumentDB DynamoDB BigTable

Azure Managed Cache (Redis Cache) ElasticCache -
Scaling OptionsAzure Autoscaling (how to) Machine Scale SetsAWS AutoScaling Group -
Data OrchestrationAzure Data Factory DataPipeline -
VisualizationPowerBIQuickSight -
Data DiscoveryData Catalog? -
Analytics/Hadoop OptionsHDInsight (Hadoop)Elastic MapReduce (EMR) -
ElasticSearchin Marketplace ElasticSearch -
SearchAzure Search CloudSearch -
Machine Learning (ML)Azure Machine Learning Machine-Learning SageMaker Tensor Flow
TranslationTranslator Text Amazon Translate Google Translate
Voice RecognitionAzure Speaker Recognition Rekognition image and video -
Computer VisionComputer VisionFace,OCR Rekognition -
Video camera? $249 DeepLens -

Azure MDC (Mobile Data Center) makes use of “Azure Stack” software that runs Azure on-prem. in shipping containers, each with its own power and cooling hardware.

Credit: TomsITPro and Microsoft’s comparison

Exam Questions

Your business is transitioning from an entirely on-premise IT environment to one hosted entirely in the public cloud. All physical servers and resources within your on-premise space will be replaced with virtual cloud resources hosted at offsite locations, on hardware that is managed by the cloud provider.

You are forecasting your IT resource costs for required compute, networking, and storage, and how expenses will change as a result of your cloud migration.

Which statement describes how your capital expenditures and operational expenditures for IT resources will change by migrating entirely to the public cloud?

A Your capital expenditure costs for IT resources will increase, while your operational expenditures will not change.

B Your IT resource costs will generally change from operational expenditures to capital expenditures.

C Your operational expenditure costs for IT resources will increase, while your capital expenditures will not change.

D Your IT resource costs will generally change from capital expenditures to operational expenditures.


STAR: Comparing the Network Performance of AWS, Azure, GCP, IBM Cloud and Alibaba Cloud Feb 21, 2020 by Angelique Medina of Thousand Eyes found that:

  • Azure and GCP route traffic through therir internal backbone network while AWS and AliCloud use the public internet more. IBM has a hybrid approach.
  • Azure is generally the fastest. GCP was slowest, worldwide, especially in Europe because they had no direct path from Europe to India in their own backbone but routed around the world.

IBM Bluemix

“Understanding the Difference Between Microsoft Azure and Amazon AWS” by veteran Pluralsight video presenter Elias Khanser, a Microsoft MVP


https://statistica.com has statistics on AWS: aws-2020-revenue

BLOG: “The Cost of Cloud, a Trillion Dollar Paradox” by venture capital firm Andressen Horowitz

More on DevOps

This is one of a series on DevOps:

  1. DevOps_2.0
  2. ci-cd (Continuous Integration and Continuous Delivery)
  3. User Stories for DevOps
  4. Enterprise Software)

  5. Git and GitHub vs File Archival
  6. Git Commands and Statuses
  7. Git Commit, Tag, Push
  8. Git Utilities
  9. Data Security GitHub
  10. GitHub API
  11. TFS vs. GitHub

  12. Choices for DevOps Technologies
  13. Pulumi Infrastructure as Code (IaC)
  14. Java DevOps Workflow
  15. Okta for SSO & MFA

  16. AWS DevOps (CodeCommit, CodePipeline, CodeDeploy)
  17. AWS server deployment options
  18. AWS Load Balancers

  19. Cloud services comparisons (across vendors)
  20. Cloud regions (across vendors)
  21. AWS Virtual Private Cloud

  22. Azure Cloud Onramp (Subscriptions, Portal GUI, CLI)
  23. Azure Certifications
  24. Azure Cloud

  25. Azure Cloud Powershell
  26. Bash Windows using Microsoft’s WSL (Windows Subsystem for Linux)
  27. Azure KSQL (Kusto Query Language) for Azure Monitor, etc.

  28. Azure Networking
  29. Azure Storage
  30. Azure Compute
  31. Azure Monitoring

  32. Digital Ocean
  33. Cloud Foundry

  34. Packer automation to build Vagrant images
  35. Terraform multi-cloud provisioning automation
  36. Hashicorp Vault and Consul to generate and hold secrets

  37. Powershell Ecosystem
  38. Powershell on MacOS
  39. Powershell Desired System Configuration

  40. Jenkins Server Setup
  41. Jenkins Plug-ins
  42. Jenkins Freestyle jobs
  43. Jenkins2 Pipeline jobs using Groovy code in Jenkinsfile

  44. Docker (Glossary, Ecosystem, Certification)
  45. Make Makefile for Docker
  46. Docker Setup and run Bash shell script
  47. Bash coding
  48. Docker Setup
  49. Dockerize apps
  50. Docker Registry

  51. Maven on MacOSX

  52. Ansible

  53. MySQL Setup

  54. SonarQube & SonarSource static code scan

  55. API Management Microsoft
  56. API Management Amazon

  57. Scenarios for load
  58. Chaos Engineering

More on cloud

This is one of a series on cloud computing: