Cloud Provider Selection

The decision

Choosing a cloud provider is one of the highest-leverage infrastructure decisions an organization makes. AWS, Microsoft Azure, and Google Cloud Platform (GCP) each offer the full range of infrastructure services—compute, storage, networking, databases, AI/ML, security—but differ substantially in maturity, ecosystem integration, developer experience, pricing models, and strategic positioning. Additionally, multi-cloud (deliberately spreading workloads across multiple providers) and hybrid cloud (connecting on-premises infrastructure to cloud) represent architectural patterns that address specific organizational constraints.

AWS holds the largest market share (~33% as of 2024) and has the broadest service catalog—over 200 services covering virtually every infrastructure use case. Azure is the dominant choice for organizations deeply invested in the Microsoft ecosystem (Active Directory, Office 365, Windows Server, .NET). GCP's differentiation is strongest in data and analytics (BigQuery), Kubernetes (GKE, the origin of Kubernetes), and ML/AI infrastructure (TPUs, Vertex AI). The gaps between providers have narrowed significantly over the past decade; for most workloads, any major provider can serve the need.

The decision has long-term financial and operational implications. Enterprise cloud commitments (AWS Savings Plans, Azure Reserved Instances, GCP Committed Use Discounts) lock in pricing for 1–3 years in exchange for 30–70% discounts over on-demand rates. Deep adoption of provider-specific services (Lambda, Azure Functions, Cloud Run) creates switching costs that make provider changes increasingly expensive over time. Understanding these dynamics before committing ensures the long-term relationship is sustainable.

Why it matters

Cloud provider selection is rarely reversed. Migrating between cloud providers is one of the most expensive infrastructure projects an organization can undertake—it typically requires rewriting infrastructure-as-code, migrating databases, reconfiguring networking, retraining teams, renegotiating contracts, and accepting months of parallel-run costs. The average large enterprise migration between providers takes 12–24 months and costs millions in engineering effort. Getting this decision right prevents that cost; getting it wrong is recoverable but expensive.

Talent markets are segmented by cloud provider. AWS certifications (Solutions Architect, DevOps Professional, Specialty) are the most widely held; hiring AWS-proficient engineers is easier than hiring Azure or GCP specialists. Conversely, organizations heavily invested in Microsoft enterprise technology find Azure engineers with relevant context more readily available. Kubernetes and containerization expertise is broadly transferable, but provider-specific managed service expertise (RDS vs. Cloud SQL vs. Azure SQL Database operational knowledge) has a steeper learning curve that affects time to productivity for new hires.

Regulatory and data sovereignty requirements impose constraints that can override technical preference. GDPR, HIPAA, FedRAMP, and national data sovereignty laws specify where data can be stored and processed. All three major providers have data center regions in most geographies with compliance certifications. However, specific certifications differ by region and service—not every service in every region is FedRAMP authorized, for example. Confirming that your required compliance certifications are available for your required services in your required regions before committing is essential.

Choose AWS when

  • The broadest service catalog and most mature managed services are priorities—AWS typically has the most features and longest operational history for each service category
  • The engineering team's existing cloud expertise is predominantly AWS-based
  • A large ecosystem of third-party integrations, marketplace offerings, and partner solutions is valuable
  • The application requires AWS-specific capabilities: Lambda@Edge, Aurora, DynamoDB, Kinesis
  • The organization is building on startup-friendly programs (AWS Activate) or needs the most extensive free tier for experimentation
  • Global footprint with the most AWS regions and availability zones is required

Choose Azure or GCP when

  • Deep Microsoft ecosystem integration (Active Directory SSO, Office 365, SQL Server, Windows Server) makes Azure the least-friction path—use Azure
  • Big data, analytics, and ML workloads are primary use cases—BigQuery and Vertex AI on GCP lead the market—use GCP
  • Kubernetes is the primary deployment platform—GKE is widely regarded as the most capable managed Kubernetes—consider GCP
  • The organization already has significant Google Workspace investment and wants tight integration—use GCP
  • The goal is to avoid AWS lock-in and the workload is container-based with portable infrastructure—consider GCP or Azure

Comparison


CAPABILITY COMPARISON TABLE
═══════════════════════════════════════════════════════════════════════════

Category          AWS                  Azure               GCP
──────────────────────────────────────────────────────────────────────────
Market share      ~33% (leader)        ~23%                ~11%
Compute           EC2, Lambda,         VMs, Functions,     Compute Engine,
                  ECS, EKS, Fargate    AKS, App Service    Cloud Run, GKE
Managed K8s       EKS                  AKS                 GKE (best-in-class)
Serverless        Lambda (leader)      Azure Functions     Cloud Functions
Object storage    S3 (standard)        Blob Storage        Cloud Storage
Relational DB     RDS, Aurora          Azure SQL, PG       Cloud SQL, AlloyDB
NoSQL             DynamoDB             Cosmos DB           Firestore, Bigtable
Big data/analytics Redshift, EMR, Glue  Synapse, HDInsight  BigQuery (leader)
ML platform       SageMaker            Azure ML            Vertex AI (TPUs)
CDN               CloudFront           Azure CDN, Front Door Cloud CDN, Media CDN
Identity/IAM      IAM, Cognito         Azure AD (leader)   Cloud IAM
Networking        VPC, TGW, Direct Conn VNet, ExpressRoute  VPC, Cloud Interconnect
Regions           33 regions           60+ regions          40 regions
Enterprise MS     Limited              Native (leader)     Limited
Pricing model     Pay-as-you-go        Pay-as-you-go        Pay-as-you-go
                  Savings Plans        Reserved Instances   Committed Use

MULTI-CLOUD vs HYBRID
════════════════════════════════════════════════════════════════

Multi-Cloud (workloads on multiple public clouds)
  ├─ Pros: Avoid vendor lock-in, use best-of-breed services
  ├─ Cons: Higher operational complexity, multiple billing, cross-cloud latency
  └─ Use when: Regulatory requirements mandate it, or specific services require it

Hybrid Cloud (on-premise + public cloud)
  ├─ Pros: Data sovereignty, low-latency for on-prem systems, sunk cost utilization
  ├─ Cons: Network complexity, consistent ops tooling challenge, latency overhead
  └─ Use when: Regulated data that cannot leave premises, or existing DC investment
          

Trade-offs

Single-cloud strengths

  • Operational simplicity: one billing system, one IAM model, one support relationship, one set of tools to master
  • Native service integration: services from the same provider integrate without cross-cloud networking latency or complexity
  • Volume discounts: committed use discounts are based on total spend with one provider—spreading spend across providers reduces each provider's commitment tier
  • Unified governance: security policies, compliance controls, and audit logs in a single pane of glass

Single-cloud weaknesses

  • Vendor dependency: a single provider outage affects all workloads; price increases apply to your entire infrastructure
  • Service gaps: if the chosen provider lacks a capability you need, you must use an inferior substitute or add a secondary provider
  • Negotiating leverage is reduced when a vendor knows you have no credible exit option
  • Deep native service adoption increases switching costs over time, making future migration progressively more expensive

Implementation considerations

Infrastructure as Code (IaC) portability is the most practical multi-cloud hedge available. Terraform with provider-agnostic modules abstracts away cloud-specific APIs, making infrastructure substantially more portable than vendor-specific tools (CloudFormation, Bicep, Deployment Manager). Even if you commit to a single provider initially, writing Terraform rather than CloudFormation preserves optionality at a cost of slightly reduced depth of integration. Kubernetes as a deployment target provides similar application portability—containerized workloads on EKS, AKS, or GKE can be moved between clusters with significantly less rework than workloads built on provider-native compute.

Cost management is a strategic discipline, not an afterthought. All three major providers offer significant discounts for committed usage: AWS Savings Plans (up to 66% off), Azure Reserved Instances (up to 72% off), GCP Committed Use Discounts (up to 70% off). Analyze your baseline usage and commit to Savings Plans or reservations for predictable workloads. Use Spot/Preemptible/Spot VM instances for fault-tolerant, interruptible workloads (batch processing, CI/CD, model training) at 60-90% discount. Implement tag-based cost allocation to attribute cloud costs to teams and products—untagged resources are the primary cause of cloud cost surprises.

For hybrid cloud architectures, latency between on-premises and cloud is a critical design constraint. AWS Direct Connect, Azure ExpressRoute, and GCP Cloud Interconnect provide dedicated private network connections (not over the public internet) with predictable, low latency (1–5ms typical) and higher bandwidth than VPN. These are mandatory for hybrid architectures with database replication or real-time data synchronization. For lift-and-shift migration, AWS Outposts, Azure Stack, and Google Distributed Cloud bring cloud-managed infrastructure to your data center, allowing the same APIs and tooling on-premises and in the cloud.

Common mistakes

  • Choosing AWS by default: "Nobody got fired for choosing AWS" is not a strategy; Azure may be dramatically simpler if your entire identity infrastructure is Microsoft-based, and GCP may be superior for data-heavy workloads.
  • Multi-cloud without a specific reason: "Avoiding vendor lock-in" as a vague principle is not a sufficient justification for the substantial operational complexity of multi-cloud; have a specific service requirement or regulatory mandate that justifies it.
  • Deep native service adoption without portability consideration: Building critical workflows on Lambda Step Functions, Azure Logic Apps, or GCP Dataflow provides excellent capability but creates significant switching cost; if portability matters, prefer Kubernetes-based or open standards-based alternatives.
  • No committed use discounts: Running entirely on on-demand pricing at scale leaves 30-70% savings on the table; analyze baseline usage and purchase reservations for predictable workloads.
  • Ignoring egress costs: Data transfer out of cloud providers costs money (typically $0.08–0.09/GB for AWS and Azure); architectures that move large volumes of data out of cloud must account for egress in cost modeling.

Decision checklist

  • What existing technology investments (Microsoft, Google Workspace, on-prem systems) favor a specific provider for integration reasons?
  • What are the team's existing cloud certifications and operational expertise? Retraining cost is real.
  • Are there regulatory, data sovereignty, or compliance requirements that constrain provider or region selection?
  • What specialized services are critical to the architecture (BigQuery, Azure AD, Lambda@Edge) that only one provider offers?
  • What is the projected cloud spend at 12 and 36 months, and what committed use discount strategy will you apply?
  • Is this a net-new application or a migration? Migration cost should be factored into provider comparison.
  • Does the organization have existing enterprise agreements with any provider that include cloud credits or discounts?

Real-world examples

  • Capital One (AWS all-in): Capital One made a publicized decision to exit all of its data centers and move entirely to AWS, citing the ability to use AWS's security services and serverless capabilities as a strategic differentiator. Their all-in commitment enabled significant volume discounts and operational simplification.
  • Spotify (GCP): Spotify migrated from self-hosted infrastructure to Google Cloud Platform, citing GCP's data and ML capabilities (BigQuery for analytics, GKE for container orchestration) and the ability to partner closely with Google on machine learning infrastructure for their recommendation systems as primary drivers.
  • BMW (Azure): BMW selected Azure as its primary cloud provider, driven by Microsoft's enterprise integration (Office 365, Active Directory, Dynamics 365) and Azure's automotive industry compliance certifications. Their Connected Drive platform runs on Azure with integration to Microsoft Teams and enterprise services that would have required additional integration effort on other providers.

Further reading