Azure vs AWS vs GCP for Canadian SMBs: The Honest Comparison

AWS because 'everyone does it'? A client discovered 70% of workloads ran better on Azure at −30% cost. Field guide: 6-dimension comparison, real cases, 7-situation decision table.

Azure vs AWS vs GCP for Canadian SMBs: The Honest Comparison

Cloud Journey Series · Post B12

The "Everyone Uses AWS" Trap

The IT director walks into my office, arms crossed. "We're choosing AWS. That's what everyone does." Three months later, his 85 VMs are running on EC2 ca-central-1. The bill is 40% over budget. And his team realizes that 70% of their workloads — primarily Exchange, SharePoint, and a dozen .NET apps on Windows Server — would have run better on Azure, with native integration they had to configure manually on AWS.

Recalculating with Azure Hybrid Benefit on existing Windows Server licenses, plus 3-year VM reservations, gives −30% on the total bill. Not an anecdote. A real case. And the reverse migration cost 3 additional months of effort.

This guide doesn't claim one cloud is universally better. It gives you the criteria to choose the right one for your actual situation.


The Canadian Context: What Changes Everything

Before comparing prices, there are non-negotiable legal constraints for Canadian SMBs.

PIPEDA and Quebec Law 25

The Personal Information Protection and Electronic Documents Act (PIPEDA) governs personal data processing in Canada. Quebec Law 25 (in force since 2022) imposes additional obligations for Quebec organizations: explicit consent, privacy impact assessments (PIAs), and data localization.

The practical consequence: your personal data must generally stay on Canadian soil. All three clouds have Canadian regions, but they're not equivalent.

Canadian Regions for All 3 Clouds

Cloud CA Regions Toronto Latency Montreal Latency
Azure Canada Central (Toronto)
Canada East (Quebec City)
< 5 ms < 10 ms
AWS ca-central-1 (Montreal)
ca-west-1 (Calgary — limited)
~ 10-15 ms < 5 ms
GCP northamerica-northeast1 (Montreal)
northamerica-northeast2 (Toronto)
< 5 ms < 5 ms

Key point: Azure is the only cloud with a region in Quebec City — which matters for organizations subject to Law 25 wanting intra-provincial DR resilience.


The 6-Dimension Comparison

Dimension Azure AWS GCP
Canadian Presence ⭐⭐⭐⭐⭐
2 regions incl. QC City
⭐⭐⭐⭐
2 regions (Mtl + limited Calgary)
⭐⭐⭐⭐
2 regions (Mtl + Toronto)
Microsoft Ecosystem ⭐⭐⭐⭐⭐
Native: M365, AD, SQL, .NET
⭐⭐⭐
Third-party integration possible
⭐⭐
Few native MS integrations
Service Catalog ⭐⭐⭐⭐
~200 services
⭐⭐⭐⭐⭐
240+ services, leader
⭐⭐⭐
~150 services, data/ML focus
SMB Pricing ⭐⭐⭐⭐⭐
Hybrid Benefit, CSP, MPSA
⭐⭐⭐⭐
Reserved + Savings Plans
⭐⭐⭐⭐
Auto Sustained Use, CUDs
SMB Support ⭐⭐⭐⭐
Strong CSP partners in CA
⭐⭐⭐⭐⭐
Largest partner ecosystem #1
⭐⭐⭐
Fewer partners in CA
CA Compliance ⭐⭐⭐⭐⭐
PIPEDA, Law 25, SOC2, ISO27001
⭐⭐⭐⭐
PIPEDA, SOC2 — no QC region
⭐⭐⭐⭐
PIPEDA, SOC2 — 2 CA regions

Azure: When It's the Right Choice

If your SMB has an existing Microsoft environment — Office 365, Active Directory, SQL Server, .NET applications, Windows Server licenses — Azure isn't just "an option." It's the obvious answer.

Concrete Arguments

  • Azure Hybrid Benefit: Have Windows Server licenses with Software Assurance? You can use them on Azure, saving up to 40% on Windows VM costs. Same for SQL Server: an on-prem SQL Enterprise license = Azure SQL Managed Instance with no additional license cost.
  • Azure AD / Entra ID: If your users are in Active Directory, Azure AD Connect syncs in 20 minutes. SSO authentication to cloud apps is native. AWS would require AD Connector or IAM Identity Center setup — doable, but not free in time or complexity.
  • 2 Canadian regions including Quebec City: For organizations subject to Quebec Law 25 wanting intra-provincial DR, Azure Canada East (QC City) + Canada Central (Toronto) is the only native option among the 3 clouds.
  • M365 Copilot and Microsoft AI: If you plan to adopt Microsoft AI tools, Azure OpenAI Service is the only cloud where you can deploy them privately, with data residency guarantees in Canada.

Real Case: 180-User SMB, Microsoft Stack

Client: industrial distributor, 180 employees, Quebec. Infrastructure: 45 VMs (Windows Server 2016/2019), SQL Server 2019 Standard, Exchange Server, SharePoint on-prem, branches in Montreal and Toronto.

Migration to Azure Canada Central + Canada East. With Azure Hybrid Benefit on 45 Windows Server licenses and 8 SQL Server licenses, plus 3-year Reserved VM Instances for stable workloads:

  • Monthly cost before: 28,400 CAD (infrastructure + licenses)
  • Monthly cost after Azure: 18,460 CAD
  • Savings: −35% · Investment recovery: 8 months

AWS: When It's the Right Choice

AWS remains the most mature and complete cloud. If you're not in a Microsoft ecosystem and want the broadest service catalog with the most active community, AWS is hard to beat.

Concrete Arguments

  • Service catalog: 240+ managed services. If you're looking for a cloud service that exists, AWS probably has it. And often longer than others, with richer documentation and a larger community.
  • Partner ecosystem in Canada: The largest number of certified AWS partners in the country. For an SMB wanting local resources (consultants, integrators, MSPs), AWS offers the best choice.
  • Reserved Instances and Savings Plans: On a 1-year commitment, −40% vs on-demand. Over 3 years, up to −60%. For predictable workloads, this is the most effective cost-reduction tool on the market.
  • ca-central-1 (Montreal): The Canadian AWS region is mature, with the majority of services available (unlike ca-west-1 Calgary, which remains limited).

Real Case: B2B SaaS Startup

Client: HR SaaS, 35 employees, US + CA expansion. Stack: Node.js, PostgreSQL, Redis, ElasticSearch. Multi-tenant, 3x growth expected in 18 months.

Chose AWS ca-central-1. Amazon RDS PostgreSQL + ElastiCache + OpenSearch. Auto Scaling Groups for application servers. 1-year Savings Plans on base instances.

  • Ability to absorb a 10x traffic spike without manual intervention
  • Multi-region US (us-east-1) deployment in 2 weeks using the same patterns
  • Infrastructure cost: 4,200 CAD/month for 50,000 active users
  • AWS Activate startup credits: 100,000 USD used over 18 months

GCP: When It's the Right Choice

GCP is underestimated by SMBs. Its reputation as a "cloud for data scientists" sticks, but there are cases where GCP is objectively the best choice — sometimes by a wide margin.

Concrete Arguments

  • GKE (Google Kubernetes Engine): Google invented Kubernetes. GKE remains technically superior to AKS (Azure) and EKS (AWS) in terms of operational ease, auto-upgrade, and total cost. If your organization is Kubernetes-first, GKE is the natural choice.
  • BigQuery: For SMBs with analytics needs, BigQuery is in a league of its own. No server to manage, per-query billing (5 USD/TB analyzed), and performance on terabytes of data that would require a much more expensive Redshift or Synapse cluster at AWS/Azure.
  • Sustained Use Discounts: Unlike AWS and Azure requiring explicit reservations, GCP automatically applies discounts up to 30% if you use an instance more than 25% of the month. For unpredictable workloads, this is a real advantage.
  • Cheaper egress: GCP charges network egress ~30% less than AWS and Azure. For architectures with high outbound data transfer (public APIs, non-included CDN, analytics exports), this can represent thousands of dollars in monthly savings.

Real Case: Data-Intensive SMB

Client: data marketing agency, 45 employees. Daily processing: 2 TB of event data (clicks, conversions, attributions). Analytics stack: dbt + BigQuery + Looker. Kubernetes workloads for APIs.

Comparison with AWS Redshift + EKS: GCP (BigQuery + GKE) came in at −28% over 12 months. The combination of on-demand BigQuery + Sustained Use Discounts on GKE vs. Redshift RA3 + EKS cost showed a significant gap.

  • BigQuery queries: 0 to provision, 0 to tune
  • GKE autopilot: Kubernetes infrastructure with no nodes to manage
  • Savings vs AWS: −28% · Migration timeline: 6 weeks

Quick Decision Guide

Quick decision table: which cloud to choose?
Situation Recommendation Estimated Savings
Microsoft stack (M365, AD, SQL Server, .NET) Azure Hybrid Benefit: −35 to −45%
Multi-region SaaS startup, broad catalog needed AWS Reserved 1 yr: −40 to −60%
Intensive analytics, BigQuery, native ML/AI GCP Sustained Use: −20 to −30%
Managed Kubernetes priority, DevOps teams GCP GKE + SUD: −25%
General SMB, first cloud, tight budget Azure or AWS Negotiate CSP/MPSA: −20%
Quebec Law 25 + strict PIPEDA, intra-provincial DR Azure 2 QC regions available
Data-intensive app, expensive egress elsewhere GCP GCP egress 30% cheaper

Pitfalls to Absolutely Avoid

1. Egress: The Invisible Cost That Explodes Budgets

All three clouds charge for outbound traffic. Rates converge around 0.08–0.09 USD/GB, but details diverge. AWS charges egress to the Internet AND between regions. Azure offers a waiver on inter-regional traffic within the same continent. GCP is generally the cheapest of the three on egress.

Concrete example: a SaaS application transferring 50 TB/month to its customers = 4,000–4,500 USD/month just in egress on AWS or Azure. On GCP, around 2,800 USD. Over 12 months: 14,000–20,000 USD difference. Check your egress profile before choosing.

2. Vendor Lock-In: More Subtle Than You Think

Real lock-in doesn't come from VMs (easy to migrate). It comes from proprietary managed services: Azure Service Bus, AWS DynamoDB, Google Spanner, AWS Lambda (vs Azure Functions vs Cloud Run). Every hour invested configuring DynamoDB is an hour hard to recover if you need to migrate.

Strategy: identify from the start which services are "portable" (PostgreSQL RDS → Azure DB → Cloud SQL) and which are proprietary. Limit lock-in to services where the differential value justifies it.

3. The "Cloud Is Cheaper" Myth

Cloud is not cheaper than on-prem by default. It's more expensive without active FinOps. It's cheaper when:

  • You activate reservations (Reserved Instances, Savings Plans, CUDs)
  • You do regular right-sizing (oversized instances = money burned)
  • You have no idle resources (dev/test environments left running 24/7)
  • You manage egress (architecture that minimizes outbound traffic)

Without FinOps, a BOTUM client migrating 40 VMs will often find themselves at +20% costs before optimization, then at −35% after 3 months of active FinOps.

4. Underestimating Support Costs

AWS "Developer" support costs 29 USD/month minimum — useless for production. "Business" support starts at 100 USD/month + 10% of your bill. On 20,000 USD/month of cloud = 2,000 USD/month for support. Multiply by 12: 24,000 USD/year just to have someone answer the phone. Azure and GCP have similar models. Factor this into your TCO from day one.


Conclusion: The Right Cloud Is the One That Fits Your Context

There's no universally best cloud. There's the best cloud for you, based on your stack, your team, your legal obligations, and your 3-year objectives.

If you're Microsoft-heavy, Azure is almost always the right choice — the native ecosystem and Hybrid Benefit make a 30–45% difference on the bill. If you're building a multi-region SaaS and want the richest catalog, AWS is the reference. If your workloads are data-intensive or Kubernetes-first, GCP deserves serious evaluation.

What doesn't change: the choice must be made before migrating, based on a portfolio assessment and a comparative 3-year TCO. Not after committing 3 months of migration in the wrong direction.

📥 Complete PDF Guide

Download this comparison guide as PDF.

⬇ Download the guide (PDF)

🚀 Go Further with BOTUM

Choosing the right cloud is strategic. BOTUM teams help Canadian SMBs evaluate and deploy cloud solutions.

Discuss your project →
📚 Cloud Journey Series 📋 View complete series →