Migrating SQL Server - AWS Prescriptive Guidance

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). If you don't have SA on your SQL Server licenses, you can rehost to Amazon EC2 Dedicated Hosts if the licenses were purchased prior to October 1, 2019 or if you have added your licenses as a true-up under an active Enterprise Enrollment that is effective prior to that date. For more information, see Microsoft Licensing on AWS.

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 is well suited if you want to lift and shift one or more large-scale machines from an on-premises environment to AWS without changing the SQL Server version, operating system, or code in the databases with near-zero or minimal downtime. You can use AWS Application Migration Service to quickly lift and shift physical, virtual, or cloud servers without compatibility issues, performance impact, or long cutover windows. For guidance on migrating a SQL Server database from an on-premises environment to an Amazon EC2 instance using Application Migration Service, see Migrating Microsoft SQL Server databases to the AWS Cloud on AWS Prescriptive Guidance. You can also refer to best practices when you use Application Migration Service to migrate Microsoft SQL Server database workloads to AWS.

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 for SQL Server.

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 terms. You can either replatform SQL Server to Amazon RDS for SQL Server or to Amazon RDS Custom for SQL Server. The choice depends on the customization level you need on the underlying operating system, whether the features you need are supported in Amazon RDS for SQL Server, or whether you want to use your existing SQL Server licenses by using BYOM.

The following options are available for migrating SQL Server to Amazon RDS for SQL Server or Amazon RDS Custom for SQL Server:

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. For information about how to migrate end-of-support workloads, see Migrate end of support Microsoft SQL Server databases to Amazon RDS for SQL Server confidently on the AWS Database Blog. For information about migrating on-premises databases to Amazon RDS Custom for SQL Server, see Migrating an on-premises database to Amazon RDS Custom for SQL Server in the Amazon RDS documentation.

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 run your database on AWS without managing database capacity. Amazon Aurora Serverless v2 scales instantly to hundreds of thousands of transactions in a fraction of a second. You pay only for the capacity your application consumes, and you can save up to 90% on database costs compared to the cost of provisioning capacity for peak load.

To refactor your SQL Server databases to one of these offerings, consider using one of the following:

Additional resources