Skip to contentMDS CloudNEWTry mdscloud.pl
Comparisons

AWS vs Azure vs Google Cloud - Which Cloud to Choose?

Published on:
·
Updated on:
·14 min read·Author: MDS Software Solutions Group

AWS vs Azure vs Google Cloud - Which Cloud to Choose?#

Choosing a public cloud provider is one of the most critical infrastructure decisions that will affect your costs, performance, and application scalability for years to come. Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP) dominate the cloud computing market, but each platform has unique strengths and limitations. In this comprehensive comparison, we analyze all key aspects of the three cloud giants - from pricing models and compute services to ML/AI tools and DevOps - to help you make an informed decision.

Market Share and Positioning#

The public cloud market continues to grow, with the three leaders controlling over 65% of the global cloud infrastructure market:

ProviderMarket ShareQuarterly RevenueTrend
AWS~31%~$27B USDStable leader
Microsoft Azure~25%~$24B USDFastest growth
Google Cloud~11%~$11B USDGrowing share

AWS has maintained its leadership position since launching in 2006. As the pioneer of cloud computing, Amazon built the broadest ecosystem of services - over 200 fully functional offerings.

Azure leverages Microsoft's strong enterprise position. Integration with Active Directory, Office 365, and the .NET ecosystem makes it the natural choice for organizations already using Microsoft technologies.

Google Cloud Platform excels in data, machine learning, and Kubernetes. Google, the creator of Kubernetes, offers the most mature managed container orchestration service.

Pricing Models#

Understanding pricing models is key to optimizing cloud costs. Each provider takes a different approach to billing.

AWS Pricing#

AWS offers the most elaborate discount system:

  • On-Demand - pay per hour/second of usage, no commitments
  • Reserved Instances (RI) - 1 or 3-year commitment, savings up to 72%
  • Savings Plans - flexible spending commitment, savings up to 72%
  • Spot Instances - unused capacity, discounts up to 90%, can be interrupted
# Check current Spot Instance prices in eu-west-1
aws ec2 describe-spot-price-history \
  --instance-types m5.large \
  --region eu-west-1 \
  --start-time $(date -u +%Y-%m-%dT%H:%M:%S) \
  --product-descriptions "Linux/UNIX" \
  --query 'SpotPriceHistory[*].{AZ:AvailabilityZone,Price:SpotPrice}'

Azure Pricing#

Azure stands out with the Hybrid Benefit program:

  • Pay-As-You-Go - standard hourly rates
  • Reserved VM Instances - 1 or 3 years, savings up to 72%
  • Azure Hybrid Benefit - savings up to 85% with existing Windows/SQL Server licenses
  • Spot VMs - discounts up to 90%, can be interrupted
# List available VM sizes and prices in westeurope
az vm list-sizes --location westeurope --output table

# Check pricing for a specific VM size
az vm list-skus --location westeurope \
  --size Standard_D2s_v5 \
  --output table

GCP Pricing#

GCP offers the most transparent pricing model:

  • On-Demand - pay per second of usage (minimum 1 minute)
  • Sustained Use Discounts (SUD) - automatic discounts up to 30% for prolonged usage, no commitments required
  • Committed Use Discounts (CUD) - 1 or 3 years, savings up to 57%
  • Preemptible/Spot VMs - discounts up to 91%, maximum 24h lifetime
# List machine types and prices in europe-west1
gcloud compute machine-types list \
  --filter="zone:europe-west1-b" \
  --format="table(name, guestCpus, memoryMb, description)"

# Check current billing
gcloud billing budgets list --billing-account=ACCOUNT_ID

Price Comparison - Typical Scenario#

Configuration: 2 vCPU, 8 GB RAM, 100 GB SSD, load balancer, 1 TB transfer/month

ComponentAWSAzureGCP
VM (on-demand)~$140/mo (m5.large)~$138/mo (D2s v5)~$130/mo (e2-standard-2)
VM (1yr reserved)~$90/mo~$88/mo~$82/mo (CUD)
Storage 100GB SSD~$10/mo~$9.60/mo~$17/mo (pd-ssd)
Load Balancer~$18/mo + transfer~$18/mo + rules~$18/mo + transfer
Data transfer (1TB)~$90/mo~$87/mo~$85/mo
Total (on-demand)~$258/mo~$253/mo~$250/mo
Total (reserved)~$208/mo~$203/mo~$202/mo

Compute Services#

Compute power is the foundation of every cloud platform.

Amazon EC2#

EC2 (Elastic Compute Cloud) is the flagship compute service of AWS, offering the widest selection of instance types on the market:

# Launch an EC2 instance
aws ec2 run-instances \
  --image-id ami-0abcdef1234567890 \
  --instance-type m5.large \
  --key-name my-key-pair \
  --security-group-ids sg-0123456789abcdef0 \
  --subnet-id subnet-0123456789abcdef0 \
  --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=MyServer}]'

# Scale with Auto Scaling Group
aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateName=my-template,Version='$Latest' \
  --min-size 2 \
  --max-size 10 \
  --desired-capacity 4 \
  --vpc-zone-identifier "subnet-abc123,subnet-def456"

EC2 offers over 750 instance types - from small t3.micro to powerful p5.48xlarge with NVIDIA H100 GPUs. Spot Instances with discounts up to 90% are ideal for batch processing and CI/CD workloads.

Azure Virtual Machines#

Azure VMs stand out with strong integration into the Microsoft ecosystem:

# Create an Azure Virtual Machine
az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image Ubuntu2204 \
  --size Standard_D2s_v5 \
  --admin-username azureuser \
  --generate-ssh-keys \
  --public-ip-sku Standard

# Scale with Virtual Machine Scale Sets
az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  --upgrade-policy-mode automatic \
  --instance-count 2 \
  --admin-username azureuser \
  --generate-ssh-keys

Azure Hybrid Benefit enables savings up to 85% by leveraging existing Windows Server and SQL Server licenses.

Google Compute Engine#

Compute Engine excels in VM configuration flexibility:

# Create a Compute Engine instance
gcloud compute instances create my-instance \
  --zone=europe-west1-b \
  --machine-type=e2-standard-2 \
  --image-family=ubuntu-2204-lts \
  --image-project=ubuntu-os-cloud \
  --boot-disk-size=100GB \
  --boot-disk-type=pd-ssd

# Create a custom machine type (unique GCP advantage!)
gcloud compute instances create custom-vm \
  --zone=europe-west1-b \
  --custom-cpu=6 \
  --custom-memory=20GB \
  --image-family=ubuntu-2204-lts \
  --image-project=ubuntu-os-cloud

A unique advantage of GCP is Custom Machine Types - you can precisely select the number of vCPUs and the amount of RAM instead of choosing from predefined sizes. This means you never pay for resources you do not need.

Compute Comparison#

FeatureAWS EC2Azure VMGCP Compute Engine
Instance types750+500+300+
Custom VMNoLimitedYes (full)
Max vCPU/instance448416416
Max RAM/instance24 TB12 TB12 TB
Spot/Preemptible discountUp to 90%Up to 90%Up to 91%
Live MigrationNoLimitedYes
Nested VirtualizationYesYesYes
Bare MetalYesYesYes (Sole-tenant)

Storage#

Object Storage#

FeatureAWS S3Azure Blob StorageGCP Cloud Storage
Durability99.999999999% (11x9)99.999999999% (11x9)99.999999999% (11x9)
Availability SLA99.99%99.9% (Hot)99.95% (Standard)
Storage classes644
Max object size5 TB190.7 TB (block blob)5 TB
Lifecycle policiesYesYesYes
VersioningYesYes (Soft Delete)Yes
# AWS S3 - upload a file
aws s3 cp my-file.zip s3://my-bucket/backups/my-file.zip \
  --storage-class STANDARD_IA

# Azure Blob - upload a file
az storage blob upload \
  --account-name mystorageaccount \
  --container-name mycontainer \
  --name backups/my-file.zip \
  --file my-file.zip \
  --tier Cool

# GCP Cloud Storage - upload a file
gsutil cp my-file.zip gs://my-bucket/backups/my-file.zip
gsutil -m setmeta -h "Content-Type:application/zip" gs://my-bucket/backups/my-file.zip

Storage Pricing (per GB/month, US region)#

ClassAWS S3Azure BlobGCP Cloud Storage
Standard/Hot$0.023$0.018$0.020
Infrequent/Cool$0.0125$0.010$0.010 (Nearline)
Archive$0.004$0.002$0.004 (Coldline)
Deep Archive$0.00099$0.00099$0.0012

Databases#

Relational Databases#

FeatureAWS RDS / AuroraAzure SQL DatabaseGCP Cloud SQL / AlloyDB
EnginesMySQL, PostgreSQL, MariaDB, Oracle, SQL ServerSQL Server, MySQL, PostgreSQLMySQL, PostgreSQL, SQL Server
ServerlessAurora Serverless v2Azure SQL ServerlessAlloyDB (PostgreSQL)
Max storage128 TB (Aurora)100 TB (Hyperscale)64 TB
Read replicas15 (Aurora)4 (Hyperscale: 30)10
Multi-regionAurora Global DBActive Geo-ReplicationCross-region replicas
# AWS - create an RDS instance
aws rds create-db-instance \
  --db-instance-identifier mydb \
  --db-instance-class db.r6g.large \
  --engine postgres \
  --master-username admin \
  --master-user-password MyPassword123 \
  --allocated-storage 100

# Azure - create a SQL database
az sql server create \
  --name myserver \
  --resource-group myResourceGroup \
  --location westeurope \
  --admin-user myadmin \
  --admin-password MyPassword123

az sql db create \
  --resource-group myResourceGroup \
  --server myserver \
  --name mydb \
  --service-objective S1

# GCP - create a Cloud SQL instance
gcloud sql instances create mydb \
  --database-version=POSTGRES_15 \
  --tier=db-custom-2-8192 \
  --region=europe-west1 \
  --root-password=MyPassword123

NoSQL Databases#

FeatureAWS DynamoDBAzure Cosmos DBGCP Firestore / Bigtable
Data modelKey-value, DocumentMulti-model (5 APIs)Document / Wide-column
Global distributionGlobal TablesTurnkey (default)Multi-region
Latency guarantee< 10ms< 10ms (99th percentile)< 10ms
ServerlessOn-demand capacityServerless tierNatively serverless
Free tier25 GB + 25 WCU/RCU1000 RU/s + 25 GB1 GB + 50k reads/day

Azure Cosmos DB stands out as the most versatile NoSQL database - it supports 5 different APIs (SQL, MongoDB, Cassandra, Gremlin, Table) with global distribution and latency SLA guarantees.

Serverless Computing#

AWS Lambda#

Lambda is the pioneer of serverless computing (launched in 2014) and remains the most popular FaaS service:

// AWS Lambda - Node.js handler
export const handler = async (event) => {
  const { httpMethod, path, body } = event;

  if (httpMethod === 'POST' && path === '/api/orders') {
    const order = JSON.parse(body);
    const result = await processOrder(order);

    return {
      statusCode: 201,
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(result)
    };
  }

  return { statusCode: 404, body: 'Not Found' };
};

Azure Functions#

Azure Functions provide the best integration with the Microsoft ecosystem:

// Azure Functions - C# handler
[Function("ProcessOrder")]
public async Task<HttpResponseData> Run(
    [HttpTrigger(AuthorizationLevel.Function, "post", Route = "orders")]
    HttpRequestData req)
{
    var order = await req.ReadFromJsonAsync<OrderRequest>();
    var result = await _orderService.ProcessAsync(order);

    var response = req.CreateResponse(HttpStatusCode.Created);
    await response.WriteAsJsonAsync(result);
    return response;
}

Google Cloud Functions / Cloud Run#

Google offers two approaches to serverless:

# Google Cloud Functions - Python handler
import functions_framework
from flask import jsonify

@functions_framework.http
def process_order(request):
    order = request.get_json()
    result = process(order)
    return jsonify(result), 201

Cloud Run is a unique GCP offering - you can run any Docker container in a serverless model, with no language or framework restrictions.

Serverless Comparison#

FeatureAWS LambdaAzure FunctionsGCP Cloud FunctionsGCP Cloud Run
Max execution time15 min10 min (Consumption)60 min (2nd gen)60 min
Max memory10 GB1.5 GB (Consumption)32 GB32 GB
Cold startModerateLow (.NET)LowVery low
Free invocations/mo1M1M2M180k vCPU-seconds
ContainerizationContainer imagesContainer imagesCode onlyAny container

Regions and Availability#

A cloud provider's geographic presence directly impacts latency, data protection compliance (e.g., GDPR), and service availability:

FeatureAWSAzureGCP
Regions3360+40
Availability Zones105+300+ AZ121+
Countries2950+35+
Edge locations / PoP450+ (CloudFront)190+ (Front Door)180+ (Cloud CDN)
European coverageFrankfurt, Ireland, London, Paris, Milan, Spain, Zurich15+ EU regions incl. PolandFrankfurt, London, Belgium, Netherlands, Finland, Zurich

Azure leads in the number of regions - 60+ regions across 50+ countries, including a region in Poland (Poland Central in Warsaw), which is significant for organizations requiring data residency within specific jurisdictions.

ML/AI - Machine Learning and Artificial Intelligence#

FeatureAWSAzureGCP
ML platformSageMakerAzure MLVertex AI
Pre-trained modelsRekognition, Comprehend, TextractCognitive Services, Azure OpenAIVision AI, Natural Language, Translation
AutoMLSageMaker AutopilotAzure AutoMLVertex AI AutoML
LLM/GenAIBedrock (Claude, Llama, Mistral)Azure OpenAI (GPT-4, DALL-E)Gemini, PaLM 2
GPUP5 (H100), Inf2 (Inferentia)NC/ND (A100, H100)A2/G2 (A100, L4), TPU v5e
MLOpsSageMaker PipelinesAzure ML PipelinesVertex AI Pipelines
NotebooksSageMaker StudioAzure ML StudioVertex AI Workbench
# AWS - launch a SageMaker training job
aws sagemaker create-training-job \
  --training-job-name my-training-job \
  --algorithm-specification TrainingImage=123456789.dkr.ecr.us-east-1.amazonaws.com/my-algo:latest,TrainingInputMode=File \
  --role-arn arn:aws:iam::123456789:role/SageMakerRole \
  --resource-config InstanceType=ml.p3.2xlarge,InstanceCount=1,VolumeSizeInGB=50

# Azure - create an Azure OpenAI resource
az cognitiveservices account create \
  --name my-openai-resource \
  --resource-group myResourceGroup \
  --kind OpenAI \
  --sku S0 \
  --location eastus

# GCP - launch Vertex AI training
gcloud ai custom-jobs create \
  --region=us-central1 \
  --display-name=my-training-job \
  --worker-pool-spec=machine-type=n1-standard-8,replica-count=1,container-image-uri=gcr.io/my-project/trainer:latest

Azure dominates the GenAI space through its exclusive partnership with OpenAI (GPT-4, DALL-E, Whisper). GCP offers its own Gemini models and dedicated TPU hardware. AWS bets on diversity with Bedrock, offering a choice among Claude, Llama, Mistral, and other models.

DevOps Tools#

FeatureAWSAzureGCP
CI/CDCodePipeline, CodeBuildAzure DevOps, GitHub ActionsCloud Build
IaCCloudFormation, CDKARM Templates, BicepDeployment Manager, Config Connector
Container registryECRACRArtifact Registry
MonitoringCloudWatchAzure Monitor, App InsightsCloud Monitoring, Cloud Trace
Secret managementSecrets Manager, SSMKey VaultSecret Manager
Service meshApp MeshOpen Service MeshTraffic Director
# AWS - deploy with CodeDeploy
aws deploy create-deployment \
  --application-name MyApp \
  --deployment-group-name MyDeployGroup \
  --s3-location bucket=my-bucket,key=app.zip,bundleType=zip

# Azure - create a CI/CD pipeline
# az pipelines create --name "MyPipeline" \
#   --repository myrepo --branch main \
#   --yml-path azure-pipelines.yml

# GCP - build with Cloud Build
gcloud builds submit --config cloudbuild.yaml .

Azure DevOps is the most complete CI/CD platform in the cloud - it offers Git repositories, Boards (project management), Pipelines, Test Plans, and Artifacts in a single tool. AWS offers the most individual tools but they are less cohesive. GCP Cloud Build stands out for its simplicity and speed of setup.

When to Choose Each Platform#

Choose AWS when:#

  • You need the broadest ecosystem of services - AWS has a service for every possible scenario
  • Your team has AWS experience and certifications
  • You need advanced cost-saving options (Spot, Reserved, Savings Plans)
  • You are building applications with many integrating services (event-driven architecture)
  • You require the highest level of compliance certifications (government, finance, healthcare)
  • You are hosting Next.js applications and want a Vercel-like experience with AWS Amplify

Choose Azure when:#

  • Your organization is deeply embedded in the Microsoft ecosystem (Active Directory, Office 365, Dynamics)
  • You are building applications in .NET / C# - Azure offers the best integration
  • You need a hybrid cloud with existing on-premises Windows Server infrastructure
  • You want to leverage Azure Hybrid Benefit from existing Microsoft licenses
  • Your company has an Enterprise Agreement with Microsoft
  • You want Azure OpenAI Service for building applications with GPT-4

Choose GCP when:#

  • You work intensively with data and analytics - BigQuery is the best data warehouse service
  • You need advanced Kubernetes - GKE is the most mature managed K8s
  • You want multi-cloud with Anthos
  • You value simple and transparent pricing with automatic discounts (Sustained Use Discounts)
  • You are building ML/AI applications with TensorFlow, Vertex AI, or TPUs
  • You need serverless containers - Cloud Run is best in class
  • You want an Always Free tier with a free VM instance and BigQuery

Free Tier#

FeatureAWS Free TierAzure Free TierGCP Free Tier
Trial period12 months12 months ($200 credits)90 days ($300 credits)
VM750h t2.micro/mo750h B1s/mo1 e2-micro (always free)
Storage5 GB S35 GB Blob5 GB Cloud Storage
Database750h RDS t2.micro250 GB SQL Database1 GB Firestore
Serverless1M Lambda invocations1M Functions invocations2M Cloud Functions
Always FreeLambda, DynamoDB, SNSFunctions, Event GridCompute (e2-micro), BigQuery (1TB)

GCP stands out with the most generous Always Free tier - a free e2-micro instance with no time limit and 1 TB of BigQuery queries per month.

Comprehensive Comparison Table#

CategoryAWSAzureGCP
Market share~31% (leader)~25% (second)~11% (third)
Number of services200+200+150+
Regions3360+40
ComputeEC2 (750+ types)Virtual MachinesCompute Engine (Custom VMs)
KubernetesEKS ($73/mo)AKS (free control plane)GKE Autopilot (best K8s)
ServerlessLambda (pioneer)Functions (.NET native)Cloud Run (containers)
Object StorageS3 (industry standard)Blob StorageCloud Storage
Relational DBRDS/AuroraSQL DatabaseCloud SQL/AlloyDB
NoSQLDynamoDBCosmos DB (multi-model)Firestore/Bigtable
Data WarehouseRedshiftSynapse AnalyticsBigQuery (best)
ML/AISageMaker + BedrockAzure ML + OpenAIVertex AI + Gemini
DevOpsCodePipelineAzure DevOps (best)Cloud Build
NetworkingCloudFront, Route 53Front Door, Azure DNSGlobal LB, Cloud CDN
Enterprise IAMAWS IAMEntra ID (best)Cloud IAM
HybridOutpostsAzure Arc + StackAnthos
Free Tier VM750h t2.micro (12 mo)750h B1s (12 mo)e2-micro (always free)
Best forBroadest ecosystemMicrosoft enterprise, .NETData, K8s, ML, multi-cloud

Conclusion#

There is no single "best" cloud platform - the choice depends on your specific needs, existing technology stack, and team expertise.

AWS remains the safest choice thanks to its broadest ecosystem and dominant market position. If you have no strong reasons to choose something else, AWS is a solid default choice with the largest talent pool on the job market.

Azure is the obvious choice for organizations in the Microsoft ecosystem. If you use Active Directory, Office 365, SQL Server, or build with .NET, Azure will provide the best integration and cost optimization with Azure Hybrid Benefit. Additionally, Azure OpenAI Service gives exclusive access to GPT-4 models.

GCP is the best option for companies focused on data, ML, and Kubernetes. If BigQuery, GKE, or Vertex AI are critical for your business, GCP offers the best tools in those categories. The transparent pricing model with automatic discounts is an added benefit.

An increasingly popular approach is a multi-cloud strategy, leveraging the best services from each platform. Tools like Terraform, Kubernetes, and Anthos enable managing infrastructure across multiple clouds simultaneously.


Need Help with Cloud Migration?#

At MDS Software Solutions Group, we help companies choose and implement the right cloud platform. Our certified cloud engineers have experience with AWS, Azure, and GCP, and will help you:

  • Assess your current infrastructure and plan a migration
  • Optimize cloud costs with the right savings plans
  • Design architecture that is scalable and fault-tolerant
  • Implement CI/CD and infrastructure automation (IaC)
  • Host .NET and Next.js applications on the optimal platform

Contact us and let's discuss your cloud strategy. The first consultation is free.

Author
MDS Software Solutions Group

Team of programming experts specializing in modern web technologies.

AWS vs Azure vs Google Cloud - Which Cloud to Choose? | MDS Software Solutions Group