Cross-cloud migrations are not on-premise migrations with a different destination. The cost shape is fundamentally different. Egress is paid on the source side, by you, to the provider you are leaving. Every managed service has an equivalent on the destination side that does not match the source one-to-one. IAM, networking, encryption, secrets management, and monitoring all need rework, not just lift. This page is the cost reference for AWS to Azure cross-cloud migration in 2026.
The cost case for moving an existing workload from AWS to Azure rarely closes on steady-state economics alone. AWS and Azure compute on like-for-like SKUs typically land within 5 percent of each other; Azure pulls ahead on Microsoft-licensed workloads via Hybrid Benefit, AWS pulls ahead on open-source and Linux-heavy workloads. The 3-year saving from a switch is usually 5 to 15 percent. The one-time cost of the cross-cloud migration frequently exceeds two years of that saving, which means the financial case has to draw on other levers.
The four most common drivers in practice are licence consolidation (the Microsoft Enterprise Agreement aligns better with Azure), identity and security platform alignment (Microsoft Entra ID, Defender for Cloud, Sentinel), commercial leverage in a multi-cloud RFP, and specific sovereign or regulated workloads that Azure addresses more directly in regions like Azure for US Government, Azure Sovereign, or Azure China. Cost matters but it is rarely the leading argument.
AWS charges data transfer out (DTO) on most cross-region and cross-cloud movements. The rate schedule for EC2 internet egress is on the public AWS EC2 pricing page, data transfer section: $0.09 per GB for the first 10 TB per month, $0.085 for the next 40 TB, $0.07 for the next 100 TB, and $0.05 for everything above 150 TB. S3 to internet egress follows a similar tiered structure. The cost is paid per region, per month, so phased migrations that move 20 TB per month for three months pay the first-tier rate three times rather than once.
AWS to Azure egress cost by dataset size, single-month transfer
| Dataset | AWS DTO at typical tier | Cost | Notes |
|---|---|---|---|
| 5 TB | $0.09 per GB | $461 | First-tier rate applies |
| 20 TB | $0.087 blended | $1,780 | 10 TB at $0.09, 10 TB at $0.085 |
| 50 TB | $0.077 blended | $3,944 | Blended across first three tiers |
| 100 TB | $0.070 blended | $7,168 | Most of the data in the $0.07 tier |
| 200 TB | $0.061 blended | $12,492 | 50 TB in the $0.05 tier |
| 500 TB | $0.055 blended | $28,160 | 350 TB in the $0.05 tier |
| 1 PB | $0.052 blended | $53,247 | 850 TB in the $0.05 tier |
The Snowball Edge Export option
AWS IAM and Azure Entra ID solve the same problem with different primitives. AWS IAM uses policies attached to users, groups, and roles with resource-level ARN-based policies. Azure uses role-based access control (RBAC) at the resource group and subscription level, with identity managed through Microsoft Entra ID. The two models do not translate one-for-one. Service accounts, federated identities, cross-account roles, and resource policies all need redesign for the Azure model.
Network re-architecture is similarly structural. AWS VPCs map roughly to Azure Virtual Networks but the security boundary primitives differ. AWS Security Groups are stateful firewalls attached to ENIs; Azure Network Security Groups are stateful but attached to subnets or NICs with different rule precedence. AWS Transit Gateway maps to Azure Virtual WAN. AWS PrivateLink maps to Azure Private Endpoints. Each mapping requires design, implementation, and validation effort.
For a 50-workload AWS to Azure migration, IAM and network re-architecture together typically cost $80K to $250K depending on the complexity of the existing AWS access patterns and the volume of cross-account or cross-VPC interactions. This is a one-time cost that does not feature on on-premise migrations because there is no existing cloud IAM to translate from.
The most expensive cross-cloud migrations are dominated by managed service conversion rather than compute lift. Each AWS managed service has an Azure equivalent that requires schema, code, or configuration work to land. The conversion cost depends on how deeply the source workload uses AWS-native services.
AWS to Azure managed service conversion, typical cost band
| AWS service | Azure equivalent | Conversion cost (per workload) | Notes |
|---|---|---|---|
| RDS for SQL Server | Azure SQL Managed Instance | $8,000 to $35,000 | DMS does most of the data lift; app-side connection string and ORM tweaks |
| RDS for PostgreSQL | Azure Database for PostgreSQL Flexible Server | $5,000 to $20,000 | Engine compatibility good; extensions need audit |
| DynamoDB | Azure Cosmos DB (Table API or NoSQL) | $20,000 to $90,000 | API shape differs; consistency model and pricing model differ |
| Lambda | Azure Functions | $10,000 to $50,000 | Runtime differences (Node, Python, .NET); trigger model differs |
| S3 | Azure Blob Storage | $3,000 to $15,000 | Object API mostly compatible; SDK swap and IAM policy translation |
| SQS / SNS | Azure Service Bus / Event Grid | $8,000 to $30,000 | Queue semantics differ; consumer pattern rework |
| EKS | Azure Kubernetes Service (AKS) | $5,000 to $25,000 | Kubernetes is portable; ingress and network plugin choices vary |
| CloudWatch | Azure Monitor + Log Analytics | $5,000 to $20,000 | Dashboard rebuild, alert reconfiguration, log pipeline rebuild |
| IAM | Microsoft Entra ID + Azure RBAC | $15,000 to $60,000 | Identity and policy model differs; covered above |
| Secrets Manager | Azure Key Vault | $3,000 to $12,000 | Secret rotation pattern and SDK swap |
For Microsoft-heavy AWS estates the largest single cost line in the cross-cloud move is frequently the RDS for SQL Server to Azure SQL Managed Instance conversion. Azure Database Migration Service supports an online migration path from RDS for SQL Server with near-zero downtime, similar to AWS DMS. The cost shape is dominated by the parallel-running period (both source RDS and destination Azure SQL MI running together) plus the data ingress into Azure SQL MI from RDS, which counts as AWS egress on the source side.
A typical 5 TB SQL Server database moves in two to four weeks of parallel running with DMS replication, with around $450 of AWS egress, $1,200 of DMS instance cost, and $4,000 to $12,000 of partner-led validation and cutover labour. The post-migration economic case is dominated by Hybrid Benefit on Azure SQL MI, which typically reduces the run-rate by 30 to 45 percent compared with the AWS RDS list-price equivalent.
A representative cost build for a 50-server AWS to Azure migration, mid-market scope, 50 TB of data across S3 and RDS, mixed strategy (70 percent rehost on Azure VMs, 20 percent replatform to managed Azure services, 10 percent retire), 9-month programme.
Worked AWS to Azure cost build, 50 servers, 50 TB, 9 months
| Cost line | Low estimate | Typical estimate | High estimate |
|---|---|---|---|
| Assessment and planning (Azure Migrate + partner) | $30,000 | $55,000 | $110,000 |
| AWS egress (50 TB at blended $0.077 per GB) | $3,500 | $4,000 | $4,500 |
| Migration labour, 45 workloads, blended | $320,000 | $640,000 | $1,150,000 |
| IAM and VPC re-architecture | $80,000 | $160,000 | $250,000 |
| RDS to Azure SQL MI conversion (5 databases) | $25,000 | $70,000 | $160,000 |
| Lambda to Azure Functions refactor (8 functions) | $15,000 | $45,000 | $95,000 |
| Parallel running (4 months, AWS + Azure both live) | $110,000 | $220,000 | $420,000 |
| Cutover and downtime contingency | $30,000 | $60,000 | $150,000 |
| Azure Premier Support (9 months) | $85,000 | $130,000 | $170,000 |
| Staff retraining (5 engineers) | $15,000 | $28,000 | $48,000 |
| Security rework (Defender for Cloud, Sentinel) | $30,000 | $80,000 | $170,000 |
| Contingency at 15 percent | $110,000 | $220,000 | $425,000 |
| AMMP partner funding | ($100,000) | ($170,000) | ($300,000) |
| Net total estimate | $753,500 | $1,542,000 | $2,852,500 |
The typical-column number, $1.54M for 50 workloads, works out at roughly $30,800 per workload, materially higher than the per-workload number for the on-premise to Azure scenario ($23,500 per workload). The premium reflects the cross-cloud nature: IAM rework, managed service conversion, and source-side egress all add up. The case for the migration rarely closes on cost alone; it closes on licence consolidation, identity alignment, or regulatory drivers.
Cross-cloud migration is the most expensive shape of cloud migration on a per-workload basis. The egress arithmetic, the IAM and network rework, and the dual-cloud parallel running all compound. Teams that succeed at cross-cloud moves at sensible cost are disciplined about scope: only move what genuinely needs to move, retire aggressively before migrating, and converge managed services during the move rather than running a second refactor programme. The cost discipline is the same as for on-premise migration; the line items are different and several percent more expensive each.
A. Cross-cloud migrations are structurally more expensive than on-premise to cloud migrations because every line item carries a cloud-out egress cost on the source side. A 50-server, 50 TB AWS to Azure move typically costs $220K to $750K over a 6 to 12 month programme. The biggest cost drivers are AWS egress ($0.05 to $0.09 per GB), IAM and VPC re-architecture, RDS to Azure SQL Managed Instance conversion, and the parallel-running window where both clouds are paid simultaneously.
A. Yes, if the underlying Windows Server or SQL Server licences with Software Assurance were owned independently of AWS. Licences purchased through AWS Marketplace as License Included instances are not transferable to Azure. The licence audit before migration is critical; many AWS estates have a mix of BYOL and LI workloads and the migration cost case can hinge on how much of the licence base ports across.
A. AWS publishes the EC2 Data Transfer Out rate as $0.09 per GB for the first 10 TB per month, dropping to $0.085 for the next 40 TB, $0.07 for the next 100 TB, and $0.05 above 150 TB. A 50 TB cross-cloud move pays roughly $4,400 in AWS egress alone, before counting Direct Connect or AWS PrivateLink fees. AWS S3 to internet egress follows a similar tiered schedule.
A. The four most common drivers are (1) consolidating Microsoft licensing on Azure to access Hybrid Benefit, (2) Microsoft 365 and Azure integration for identity and security tooling, (3) commercial leverage in a multi-cloud RFP process, and (4) regulatory or sovereign cloud requirements that Azure addresses more directly in specific regions (notably the EU, UK Sovereign, and Australia Government regions). Cost alone is rarely the primary driver because the cross-cloud migration cost frequently exceeds the steady-state cost saving for several years.
A. Small workload moves of 5 to 20 servers complete in 3 to 6 months. Mid-market moves of 50 to 150 workloads typically run 6 to 18 months. The timeline is dominated by the cutover phasing required to avoid coincident dual egress fees. Most teams stage migrations in waves of 10 to 20 workloads to manage egress cost bursts.
A. Azure Migrate Server Migration supports AWS EC2 as a source directly. The tooling cost is zero. Third-party tools (Carbonite Migrate, CloudEndure, Zerto) add per-server licence costs of roughly $300 to $800 per server but offer faster cutover for stateful workloads with low downtime tolerance. For most mid-market migrations the Azure-native tooling is the cheaper path; the third-party tools earn their keep on high-availability workloads where minutes of downtime carry significant revenue impact.
AWS vs Azure vs GCP ->
Side-by-side on identical scenario
Azure to AWS (reverse) ->
Losing Hybrid Benefit, AD federation
On-prem to Azure ->
Hybrid Benefit, FastTrack
AWS migration cost ->
EC2, MAP credits, DataSync
Azure migration cost ->
Hybrid Benefit, FastTrack, MSP
SQL Server to AWS RDS ->
Reverse direction reference
AWS Snowball cost ->
Per-device, per-day, export option
10 hidden costs ->
Detailed playbook
Strategy cost tables ->
7Rs framework
Updated 2 May 2026