Home β€Ί Azure to AWS β€Ί Azure vs AWS Pricing for .NET Workloads

Azure vs AWS Pricing for .NET Workloads

Where AWS is cheaper than Azure for .NET applications: compute, databases, networking, and the discount mechanisms that make the difference.

The Pricing Reality

AWS and Azure have comparable list prices for basic compute and storage. The difference comes from:

  1. Graviton: AWS's ARM processors are 20% cheaper with equal or better performance. Azure has no equivalent.
  2. Savings Plans: AWS's Compute Savings Plans are more flexible and deeper than Azure Reservations for most workloads.
  3. Serverless pricing: Lambda is cheaper than Azure Functions at equivalent scale, especially with ARM64.
  4. Networking: Azure's networking costs are less transparent; AWS has clearer pricing but NAT Gateway charges surprise people.

Where AWS Is Cheaper

Compute

  • Graviton instances are 20% cheaper than x86 equivalents. Azure has ARM64 on VMs and Container Apps/AKS, but not on Azure Functions. So the serverless pricing advantage is Lambda-specific.
  • Lambda ARM64 is 20% cheaper than x86 (Azure Functions doesn't offer ARM execution)
  • Savings Plans can reach 72% discount (vs Azure Reserved Instances at ~60% max for most services)
  • Spot instances: pricing is similar between providers, but AWS's spot market is larger and more diverse

Serverless (Lambda vs Azure Functions)

Scenario Azure Functions (Consumption) AWS Lambda (ARM64)
10M invocations, 200ms avg, 256MB ~$6.40 ~$4.17
50M invocations, 500ms avg, 512MB ~$80 ~$52
100M invocations, 100ms avg, 128MB ~$32 ~$21

Lambda's ARM64 pricing advantage is consistent. At scale, the 35% savings adds up.

Database (Aurora vs Azure SQL)

Workload Azure SQL (Gen5, 4 vCores) Aurora Serverless v2 (equiv.)
Steady traffic, 24/7 ~$440/mo ~$350/mo
Variable traffic (idle 50%) ~$440/mo (always on) ~$190/mo (scales down)
With RI/SP ~$280/mo ~$220/mo

Aurora Serverless v2 wins for variable workloads because it scales to near-zero during quiet periods. Azure SQL doesn't scale below 1 vCore on the serverless tier.

For steady workloads with Reserved Instances applied, the gap narrows. But Aurora's storage auto-scaling (no pre-provisioning) still saves money vs Azure SQL's fixed storage allocation.

Storage (S3 vs Azure Blob)

Pricing is similar. S3 Standard and Azure Hot are within a few percent of each other. The difference comes from lifecycle management. S3's Intelligent-Tiering is more automated than Azure's equivalent, so teams save more without manual intervention.

Where Azure Is Cheaper (or Equivalent)

Azure Dev/Test pricing

Azure offers reduced pricing for dev/test workloads under Visual Studio subscriptions. AWS doesn't have an equivalent developer discount (you use separate accounts with Savings Plans, which requires more planning).

Windows licensing

If you need Windows Server, Azure includes the license in the instance price. AWS charges separately for Windows AMIs (or you bring your own license). For Windows-heavy workloads, Azure can be cheaper.

SQL Server licensing

Same story: Azure SQL includes the license. AWS RDS for SQL Server charges a license premium. If you're committed to SQL Server specifically (not PostgreSQL), Azure's integrated licensing wins.

However: If you're willing to move from SQL Server to PostgreSQL (Aurora), AWS becomes cheaper. The licensing cost disappears entirely.

The Discount Mechanisms

AWS: Compute Savings Plans

  • Commit to a $/hour spend for 1 or 3 years
  • Applies across EC2, Fargate, Lambda, and Lambda Managed Instances
  • Flexible: change instance types, regions, even services
  • 1-year no upfront: ~20% off. 3-year all upfront: ~60-72% off

Azure: Reserved Instances / Savings Plans

  • Azure Reservations: locked to specific VM size in a region (less flexible)
  • Azure Savings Plans: similar to AWS but newer and less mature
  • Discounts are comparable (1-year: ~20%, 3-year: ~60%)

The flexibility difference matters. AWS Compute Savings Plans let you shift from EC2 to Lambda to Fargate and the discount follows. Azure's reservations are more rigid.

Hidden Costs to Watch

On Azure (costs that go away)

  • Azure AD P1/P2 licensing (if you only need basic auth, Cognito is cheaper)
  • Azure DevOps per-user licensing (GitHub Actions or CodeBuild are per-minute)
  • App Service "always on" plans for minimal workloads (Lambda scales to zero)

On AWS (new costs to budget for)

  • NAT Gateway: $32/month per AZ + data processing. Azure's equivalent (VNet NAT) is similar but often less visible in Azure bills.
  • VPC Endpoints: $0.01/hour per AZ per service (~$7.20/month) plus $0.01/GB data processed. Azure Private Endpoints are priced almost identically. Not a cost difference between clouds, but a new line item if you weren't using private connectivity on Azure.
  • Data transfer: AWS charges $0.09/GB for outbound internet traffic (first 10TB). Azure is comparable but varies.
  • CloudWatch Logs: Can accumulate cost if you don't set retention policies. Azure Monitor charges similarly.

Total Cost of Ownership

Raw service pricing is only part of the story:

  • Operational efficiency: Lambda Managed Instances + CDK + CodeBuild can replace a team's worth of Azure DevOps management
  • Right-sizing tools: AWS Compute Optimizer proactively recommends sizing changes. Azure Advisor does similar but is less aggressive.
  • Graviton adoption: Immediate 20% savings on most workloads with no code changes (just recompile for ARM64)

For a typical .NET SaaS application (API tier + database + cache + queues):

  • Azure: $800-1500/month (App Service + Azure SQL + Redis Cache + Service Bus)
  • AWS (optimized): $400-900/month (Lambda/Fargate + Aurora Serverless + ElastiCache + SQS)
  • Savings: 30-50% after architecture optimization

Further Reading

Looking for hands-on help? View my modernization services β†’

Overpaying on Azure?

Drop me a message β€” I typically respond within one business day.