Migrating SQL Server
In your journey to the cloud, you have multiple options for migrating your SQL Server environments to AWS. A successful migration is based on generating a detailed inventory of your SQL Server workloads and their dependencies, identifying your authentication scheme, capturing your high availability and disaster recovery (HADR) requirements, assessing your performance targets, and evaluating your licensing options. This inventory helps you determine the target database platform and define your migration options.
You have many options to consider when migrating your SQL Server workloads to AWS,
each resulting in optimized price/performance, a more intuitive user experience, and a
lower TCO. You can choose to deploy SQL Server on the following: Amazon EC2, Amazon RDS for SQL Server, or Amazon RDS Custom for SQL Server
Assess
To implement a successful migration, it's important to evaluate your existing infrastructure and understand the key features required for your environment. We recommend that you review the following key areas before choosing a migration plan:
-
Review existing infrastructure – Review your existing SQL Server infrastructure by using data collected in the discovery phase of your migration. You can use AWS Migration Evaluator
to automatically collect detailed information about server configurations, SQL Server deployments, resource utilization, and application dependencies. For VMware-based environments, the AWS Transform discovery tool provides agentless, on-premises discovery without requiring cloud connectivity. Its output feeds directly into an AWS Transform assessment for TCO analysis and business case generation. We recommend that you use the Microsoft prescribed sizing for SQL Server infrastructure on AWS. Understanding current utilization of your on-premises SQL Server instance, including memory, CPU, IOPS, and throughput, is important to right size your SQL Server instance on AWS. -
Review existing licensing – You can take advantage of the complementary AWS Optimization and Licensing Assessment (AWS OLA)
to build a migration and licensing strategy on AWS. AWS OLA provides you with a report that models your deployment options using existing licensing entitlements. These results can help you explore available cost savings across flexible AWS licensing options. If you already run SQL Server workloads on AWS, AWS Compute Optimizer provides automated licensing recommendations, including identifying opportunities to downgrade SQL Server editions based on actual feature usage. -
Review existing SQL Server architecture – If you're using a SQL Server failover cluster with shared storage or SQL Server Always On Availability Group architecture, then understanding your current high availability architecture requirements will help you define the SQL Server deployment options on AWS.
SQL Server Always On Availability Groups support both synchronous and asynchronous commit modes, and you can use them for high availability within a single AWS Region (across Availability Zones) or for disaster recovery across Regions. SQL Server Always On Failover Cluster Instances (FCIs) require shared storage, which can be provided by using Amazon FSx for Windows File Server or Amazon FSx for NetApp ONTAP. For a full comparison of high availability and disaster recovery options, see Choose a high availability and disaster recovery solution on AWS Prescriptive Guidance.
-
Develop backup strategies – For Amazon RDS for SQL Server, you can use automated backups with point-in-time recovery, manual snapshots, and native backup and restore. For SQL Server on Amazon EC2, you can use native SQL Server backup and restore, use a snapshot approach, or back up databases to Amazon EBS, Amazon FSx for Windows File Server, Amazon FSx for NetApp ONTAP, or Amazon S3. You can use AWS Backup to orchestrate and centralize backups across Amazon RDS for SQL Server and SQL Server on Amazon EC2.
SQL Server 2022 on Amazon EC2 with Amazon FSx for NetApp ONTAP supports T-SQL snapshot backups
for near-instant, consistent backups with minimal impact on the primary host. SQL Server 2025 extends this further by enabling native database backups from secondary replicas in Always On Availability Groups. For more information, see What's new in Microsoft SQL Server 2025 on AWS (AWS blog post). For more information about backup strategies, see Backup and restore strategies for Amazon RDS for SQL Server
(AWS blog post) and Backup and restore options for SQL Server on Amazon EC2 (AWS Prescriptive Guidance). -
Understand disaster recovery (DR) needs – For Amazon RDS for SQL Server, cross-Region automated backups and read replicas provide managed DR options without requiring SQL Server-level replication configuration.
For SQL Server on Amazon EC2, you can use a secondary AWS Region connected through AWS Transit Gateway or AWS Direct Connect, which allows replication to occur. DR options include SQL Server distributed availability groups for multi-Region deployments, log shipping for a cost-effective option with RTO and RPO within minutes, and AWS Elastic Disaster Recovery for continuous block-level replication as an active/passive DR implementation. For more information, see Choose a high availability and disaster recovery solution on AWS Prescriptive Guidance and Architect a disaster recovery for SQL Server on AWS: Part 1
on the AWS Database Blog.
Mobilize
There are SQL Server database migration strategies that we recommend you consider for your SQL Server workloads:
-
Rehosting (lift and shift) – This involves migrating your on-premises SQL Server databases to SQL Server on an Amazon EC2 instance in the AWS Cloud. This approach is useful if a faster migration to AWS is your priority. You can bring your existing SQL Server licenses using the bring your own license (BYOL) model, or you can purchase license-included (LI) instances from AWS. You can also use AWS Launch Wizard for SQL Server to guide you through the sizing, configuration, and deployment of SQL Server on Amazon EC2. It supports both single-instance and high availability deployments.
-
Replatforming (lift and reshape) – This involves migrating your on-premises SQL Server databases to a managed database service on AWS. This approach offloads undifferentiated tasks, such as installation, configuration, patching, upgrades, and high availability setup. Choose between two managed options:
-
Amazon RDS for SQL Server
– This is a fully managed option that is best when you want to offload all database infrastructure management. -
Amazon RDS Custom for SQL Server — This is a managed service with retained operating system and database-level access. This option is well suited for legacy or packaged applications with custom deployment requirements. Amazon RDS Custom supports the bring your own media (BYOM) option, which enables you to use your existing SQL Server licenses in compliance with Microsoft's License Mobility terms.
For a feature comparison of SQL Server on Amazon EC2, Amazon RDS, and Amazon RDS Custom, see Choosing between Amazon EC2 and Amazon RDS on AWS Prescriptive Guidance.
-
-
Refactoring (re-architect) – This typically involves application changes and modernizing by using open source databases or databases built for the cloud. By moving away from SQL Server, you can reduce licensing costs and avoid vendor lock-in and licensing audits. You can modernize your SQL Server databases to:
-
Amazon RDS for MySQL or Amazon RDS for PostgreSQL – Fully managed open-source database offerings.
-
Amazon Aurora – A cloud-native relational database with full MySQL and PostgreSQL compatibility that delivers the performance and availability of commercial-grade databases at a fraction of the cost.
-
Babelfish for Aurora PostgreSQL – Enables applications originally written for SQL Server to work with Aurora PostgreSQL with minimal code changes, accelerating migration and reducing refactoring risk.
To convert your SQL Server schema and code, you can use AWS DMS Schema Conversion, which is a fully managed schema conversion feature of AWS Database Migration Service (AWS DMS).
-
Migrate
As you migrate your SQL Server workloads to AWS, the following sections describe the available tools and approaches for each migration strategy.
Rehosting
Rehosting is a homogeneous migration approach. Choose this option when you want to migrate your SQL Server database as-is without changing the database software or configuration. This is a common choice for large-scale legacy migrations where speed is the priority.
Migrating SQL Server using Amazon EC2
If you migrate to Amazon EC2, you can bring your existing SQL Server licenses by using the BYOL model, or you can purchase LI instances from AWS. AWS License Manager helps you control the allocation of your available licenses when deploying SQL Server on Amazon EC2 and helps you comply with licensing rules.
For a BYOL approach, you can rehost SQL Server to shared-tenancy (default)
Amazon EC2 instances only if you have Microsoft Software Assurance (SA)
You can migrate a SQL Server database to an Amazon EC2 instance by using SQL Server features or AWS services. These options are appropriate if you're migrating a single database or set of databases to a new SQL Server instance on Amazon EC2. In addition to the database migration, you might also need to migrate objects such as logins, jobs, database mail, and linked servers.
The following approaches are available for rehosting your SQL Server databases on AWS:
You could also use AWS Launch Wizard for SQL Server to guide you through the sizing, configuration, and deployment of Microsoft SQL Server on Amazon EC2, which supports both single instance and high availability deployments.
Migrating SQL Server using AWS Application Migration Service
AWS Application Migration Service
SQL Server on Linux
The SQL Server database engine runs in a similar way on both Windows Server and Linux. However, there are some changes to certain tasks when using Linux. AWS Launch Wizard can help you adjust to these changes and configure highly available solutions. If you have in-house Linux administration expertise, rehosting to Amazon EC2 Linux is a good choice to save on Windows Server licensing costs. SQL Server on Linux is supported starting with SQL Server 2017. For more information, see Migrate an on-premises Microsoft SQL Server database to Microsoft SQL Server on Amazon EC2 running Linux on AWS Prescriptive Guidance.
Replatforming
Replatforming is a homogeneous approach that's best suited for reducing the time you
spend managing database instances by using a fully-managed database offering. A
fully-managed database in Amazon RDS for SQL Server limits you from accessing the underlying
operating system, system volume, or installation of custom drivers. For more
information, see Amazon RDS for Microsoft SQL Server. If OS-level access or existing SQL Server licenses are
required, consider replatforming to Amazon RDS Custom
Amazon RDS Custom for SQL Server supports the BYOM licensing model, which enables
you to use your own installation media and licenses. Your licenses must comply
with the Microsoft License Mobility
The following options are available for migrating SQL Server to Amazon RDS for SQL Server or Amazon RDS Custom for SQL Server:
-
Custom log shipping – Requires custom scripts for Amazon RDS for SQL Server and Amazon RDS Custom. For a reference implementation, see Automate on-premises or Amazon EC2 SQL Server to Amazon RDS for SQL Server migration using custom log shipping
on the AWS Database Blog. -
SQL Server backup and restore – For backup and restore for Amazon RDS for SQL Server, see Migrating SQL Server to Amazon RDS using native backup and restore
. For Amazon RDS Custom, see Migrate on-premises SQL Server to Amazon RDS Custom for SQL Server using native backup and restore and Amazon S3 .
For more information, see the SQL Server migration methods in AWS Prescriptive Guide.
To replatform your SQL Server databases to run on Amazon RDS for SQL Server, consider using
the approaches provided in Amazon RDS for SQL Server resources
Refactoring
Refactoring is heterogeneous. Choose this approach if you're ready to restructure, rewrite, and rearchitect your database and application to take advantage of open source and built-for-the-cloud database offerings. If you're open to refactoring your database and respective applications, you can modernize your SQL Server workloads to either Amazon RDS for MySQL, Amazon RDS for PostgreSQL, Amazon Aurora MySQL-Compatible Edition, or Amazon Aurora PostgreSQL-Compatible Edition. You can refactor depending on many modernization timelines and performance requirements.
Amazon RDS for MySQL and Amazon RDS for PostgreSQL are fully-managed database offerings for their respective open-source databases. Amazon Aurora is a relational database management system (RDBMS) that is built for the cloud with full MySQL and PostgreSQL compatibility. Aurora features a fault-tolerant storage system and gives you the performance and availability of commercial-grade databases at one-tenth the cost.
You can also use Amazon Aurora Serverless
To refactor your SQL Server databases to one of these offerings, consider using one of the following:
-
AWS Transform for SQL Server Modernization automates the full-stack modernization of SQL Server databases and their associated .NET applications to Amazon Aurora PostgreSQL. It orchestrates the entire migration journey, including schema conversion, stored procedure transformation (T-SQL to PL/pgSQL), data migration through AWS DMS, and application code updates (Entity Framework, ADO.NET, connection strings). It also provides human-in-the-loop checkpoints at critical stages. For more information about the supported SQL Server versions, sources, and targets, see Supported versions and project types in the AWS Transform documentation.
-
For schema-only conversions or migrations to Amazon RDS for MySQL, Amazon RDS for PostgreSQL, or other Aurora targets, consider using AWS DMS Schema Conversion.
-
If your goal is to accelerate your application and database migrations to AWS, consider using Babelfish for Aurora PostgreSQL. Babelfish enables applications that were originally written for SQL Server to work with Amazon Aurora with minimal code changes. As a result, the effort required to modify and move to Babelfish for Aurora PostgreSQL applications developed for SQL Server 2019 or older is reduced, leading to faster, lower-risk, and more cost-effective refactoring.
Consider the following resources for migrating with Babelfish:
-
Migrate from SQL Server to Amazon Aurora using Babelfish
(AWS Database Blog) -
Prepare for Babelfish migration with the AWS SCT assessment report
(AWS Database Blog) -
Migrate from SQL Server to Aurora PostgreSQL using SSIS and Babelfish
(AWS Database Blog) -
Using Babelfish as a target for AWS Database Migration Service (AWS Database Migration Service documentation)
For more information, see Tools for heterogeneous database migrations on AWS Prescriptive Guidance.
-
Additional resources
-
Migrating Microsoft SQL Server databases to the AWS Cloud (AWS Prescriptive Guidance)
-
Migration and modernization strategies for your SQL Server workloads on AWS
(AWS Blogs) -
SQL Server database migration methods (AWS Prescriptive Guidance)