Cloud TechnologyAWS Cost Optimization: 7 Steps to Cut Your Cloud Bill in 2026A practical 2026 guide to AWS cost optimization: tagging, budgets, rightsizing, Savings Plans, S3 storage classes and network charges, with current AWS prices.CodeeoInsightsCloud Technology
AWS to Azure Migration: Service Mapping, Tools and Steps
How to move a workload from AWS to Azure: the official service mapping, the Microsoft tools for each layer, and a five phase plan.

An AWS to Azure migration works best as a like-for-like move: map each AWS service to its closest Azure counterpart, rebuild the foundation, move data and servers with Microsoft's own tooling, run both clouds side by side until the new one is proven, then switch off AWS. Microsoft's guidance puts a moderately complex workload at roughly 6 to 13 weeks from planning to decommissioning. This guide covers when the move makes sense, the verified service mapping, the tools, and the five phases.
Is an AWS to Azure migration worth it?
It depends on what you gain on the other side. Moving clouds costs engineering time and carries risk, so the case has to rest on something concrete, not a general feeling that Azure is "better".
Good reasons to move
- You already run on Microsoft. If your staff sign in with Microsoft Entra ID, your business runs on Microsoft 365, Dynamics 365 or Power Platform, and your apps are .NET or SQL Server, Azure keeps identity, data and billing in one place.
- You own Windows Server or SQL Server licences. With active Software Assurance or qualifying subscription licences, Azure Hybrid Benefit lets you pay only the base compute rate for Windows Server VMs, which Microsoft says equals the Linux rate.
- A customer, regulator or parent company asks for Azure. This is common in enterprise and public sector work, and it is a perfectly valid reason on its own.
- Hybrid needs. Azure Arc and Azure Local extend Azure management to on-premises servers and other clouds.
Reasons to think twice
- Billing granularity is not an argument any more. Older articles praised Azure for per-minute billing. Today Microsoft's own comparison states that on-demand VMs on both AWS and Azure bill per second.
- Some AWS services have no direct equivalent. Amazon MemoryDB, AWS Ground Station, Storage Gateway in tape and volume modes, and Amazon Linux itself all need a redesign or a replacement.
- Team skills. Your engineers will need time to learn subscriptions, resource groups, RBAC and Azure networking, which differ from their AWS habits.
- Lock-in moves, it does not vanish. Rebuilding on Azure-specific services creates the same dependency you had on AWS.
Before committing, answer three questions honestly: which Azure capability will improve operations, what the full cost looks like after licences and egress, and who will run the platform once the project team leaves.
AWS to Azure service mapping
Microsoft maintains an official Azure for AWS professionals series that maps services category by category. The table below is checked against those pages as of October 2026. Microsoft notes that matched services do not always have feature-for-feature parity, so treat each row as a starting point for testing.
| Area | AWS service | Azure counterpart |
|---|---|---|
| Virtual machines | Amazon EC2 | Azure Virtual Machines |
| Autoscaling | AWS Auto Scaling | Virtual Machine Scale Sets |
| Serverless functions | AWS Lambda | Azure Functions |
| Kubernetes | Amazon EKS | Azure Kubernetes Service (AKS) |
| Containers | Amazon ECS / AWS Fargate | Azure Container Apps / Azure Container Instances |
| Container registry | Amazon ECR | Azure Container Registry |
| Web app hosting | AWS Elastic Beanstalk | Azure App Service |
| Object storage | Amazon S3 | Azure Blob Storage |
| Block storage | Amazon EBS | Azure managed disks |
| File storage | Amazon EFS / FSx for Windows | Azure Files |
| Archive storage | S3 Glacier Flexible Retrieval / Deep Archive | Blob Storage archive tier |
| Relational databases | Amazon RDS | Azure SQL Database, Azure Database for MySQL, Azure Database for PostgreSQL |
| NoSQL key-value | Amazon DynamoDB | Azure Cosmos DB for NoSQL |
| Cache | Amazon ElastiCache | Azure Managed Redis |
| Private network | Amazon VPC | Azure Virtual Network |
| DNS | Amazon Route 53 | Azure DNS (records) and Traffic Manager (routing) |
| Load balancing | Network / Application Load Balancer | Azure Load Balancer / Application Gateway |
| CDN | Amazon CloudFront | Azure Front Door |
| Dedicated link | AWS Direct Connect | Azure ExpressRoute |
| Identity | AWS IAM / IAM Identity Center | Microsoft Entra ID and Azure RBAC |
| Keys and secrets | AWS KMS | Azure Key Vault |
| Monitoring | Amazon CloudWatch / AWS X-Ray | Azure Monitor and Application Insights |
| Infrastructure as code | AWS CloudFormation / CDK | Azure Resource Manager and Bicep |
| Queues | Amazon SQS | Azure Queue Storage or Service Bus queues |
| Pub/sub and events | Amazon SNS / EventBridge | Service Bus topics / Azure Event Grid |
| API gateway | Amazon API Gateway | Azure API Management |
Mapping traps worth knowing
- Route 53 splits in two. Azure DNS hosts your records; Traffic Manager handles DNS-level routing and failover.
- Subnets behave differently. An AWS subnet sits in one Availability Zone. An Azure subnet is regional and spans all zones in the region, which changes how you design for redundancy.
- DynamoDB to Cosmos DB is not a drop-in swap. Microsoft warns that consistency, indexing, query, transaction and pricing models differ, so plan application changes.
- Amazon SES has no single Azure equivalent. For external transactional or marketing email, Microsoft points you to third-party providers such as Twilio SendGrid.
- Amazon Linux cannot move as is. It is only supported on AWS, so workloads on it need a new OS such as RHEL on Azure.
The tools Microsoft provides
You do not have to script every step by hand. Microsoft documents a specific route for each layer of the stack.
| What you are moving | Microsoft tool or guide | Notes |
|---|---|---|
| EC2 instances | Azure Migrate (agent-based replication) | EC2 is treated as a physical server; needs a separate replication appliance |
| S3 buckets | Azure Storage Mover, AzCopy, Azure Data Factory | Storage Mover supports cloud-to-cloud S3 to Blob moves, including over private links |
| RDS and Aurora PostgreSQL | Azure Database for PostgreSQL migration service | Online and offline options |
| RDS for MySQL | Data-in replication to Azure Database for MySQL | Keeps the target in sync until cutover |
| RDS for SQL Server | Azure SQL migration guides and Azure Database Migration Service | Check supported scenarios before choosing |
| DynamoDB | Cosmos DB for NoSQL migration guides | Separate guides for data and application code |
| Lambda | Lambda to Azure Functions migration guide | Rewrite triggers and bindings |
| EKS | EKS to AKS migration scenarios | Covers web apps and event-driven workloads with KEDA and Karpenter |
Azure Migrate is free to use for discovery, assessment and migration (partner tools inside it may charge). For EC2, Microsoft's EC2 tutorial lists a few preparation steps: enable password authentication for discovery, deploy the replication appliance on a separate Windows Server 2022 EC2 instance, open ports 443 and 9443 between source VMs and the appliance, and consider disabling cloud-init before replication. Always run a test migration first.
Do not forget data egress
Moving terabytes out of AWS costs money. AWS gives 100 GB per month of free data transfer out to the internet, and since March 2024 it has offered a waiver for customers moving all their data off AWS. You request it through AWS Support, and eligible customers outside the EU have 180 days to complete the move. Ask before you start transferring, not after.
How to migrate from AWS to Azure in five phases
Microsoft's workload migration guidance splits the job into five phases and gives typical durations for a moderately complex, non-mission-critical workload.
| Stage | Phases | Typical duration |
|---|---|---|
| Before migration | Plan, Prepare | 2 to 4 weeks |
| During migration | Execute | 3 to 7 weeks |
| After migration | Evaluate, Decommission | 1 to 2 weeks |
1. Plan
Inventory everything the workload touches: compute, storage, databases, queues, DNS, secrets, IAM roles, scheduled jobs and third-party integrations. Record current performance and cost so you have numbers to compare against later. Tools such as Workload Discovery on AWS and Azure Migrate assessments help with dependency mapping and right-sizing. Agree on timeline, budget and success criteria with every stakeholder.
2. Prepare
Build the Azure foundation first: a landing zone with management groups, subscriptions, virtual networks, identity, policies and monitoring. Write it as code in Bicep or Terraform so environments are repeatable. Map each AWS component to its Azure target using the table above, and decide which items need redesign rather than a straight move.
3. Execute
Microsoft recommends a like-for-like approach: keep the same architecture, meet the same KPIs and SLAs on Azure, and save refactoring for later. Scope creep, such as paying off technical debt mid-move, is a common cause of delay. Replicate data, run test migrations, then cut over during a planned window with a written rollback plan. Keep AWS running in parallel until the cutover is confirmed.
4. Evaluate
Compare Azure against the baseline you captured in the plan phase: response times, error rates, throughput and cost. Hand the workload to the operations team with Azure Monitor dashboards and alerts that match what they had in CloudWatch.
5. Decommission
Once Azure has run stably, back up anything you must retain, delete AWS resources, and close out reserved instances and savings plans where you can. Leftover EBS snapshots and idle load balancers keep billing quietly if nobody removes them.
After the move: optimise
With the workload stable, this is the right time for improvements you deferred. Azure Advisor and Microsoft Cost Management flag oversized VMs and idle resources. Apply Azure Hybrid Benefit where your licences qualify. Then consider modernising specific components, for example moving a VM-hosted web app to App Service or a self-managed database to a managed service.
How Codeeo helps with AWS to Azure migration
Codeeo's Azure integration services cover landing zone setup, service mapping and connecting Azure with Microsoft 365, Dynamics 365 and Power Platform. For moving live websites and applications with planned cutover and redirects, see our site migration service. Where a workload needs rework rather than a straight move, our custom software team handles the refactoring. Codeeo is trusted by 200+ companies and holds a 4.7 rating on Google from 23 reviews. If you want a second opinion on your plan, get in touch.
Frequently asked questions
For a moderately complex workload using a like-for-like approach, Microsoft's guidance gives roughly 2 to 4 weeks before migration, 3 to 7 weeks during, and 1 to 2 weeks after.
Large or mission-critical estates take longer and are usually moved in waves.
Tell us what the business needs. We will tell you what to build first.
Schedule a free consultation and get a written recommendation, with costs, before you commit to anything.
Get in touchPROVEN RESULTS

