

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# EC2 使用应用程序迁移服务将本地 Microsoft SQL Server 数据库迁移到亚马逊
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn"></a>

*Senthil Ramasamy，Amazon Web Services*

## Summary
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-summary"></a>

此模式描述了将 Microsoft SQL Server 数据库从本地数据中心迁移到亚马逊弹性计算云 (Amazon EC2) 实例的步骤。它使用 AWS Application Migration Service (AWS MGN) 通过自动 lift-and-shift迁移来重新托管您的数据库。 AWS MGN 对源数据库服务器执行块级复制。

## 先决条件和限制
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-prereqs"></a>

**先决条件**
+ 活跃的 AWS 账户
+ 本地数据中心的源 Microsoft SQL Server 数据库

**限制**
+ 您的本地数据中心与 AWS之间的网络带宽可能有限。
+ AWS MGN 仅限于托管在具有专用存储空间的独立服务器上的数据库。它不支持迁移集群数据库系统和变化率超过网络吞吐量的数据库系统。
+ 有些 AWS 服务 并非全部可用 AWS 区域。有关区域可用性，请参阅[按区域划分的AWS 服务](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。有关特定端点，请参阅[服务端点和配额](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)页面，然后选择相应服务的链接。

**产品版本**
+ Microsoft SQL Server 数据库的所有版本
+ [支持 AWS MG](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html) N 的 Windows 和 Linux 操作系统

## 架构
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-architecture"></a>

**源技术堆栈**

本地 Microsoft SQL Server 数据库

**目标技术堆栈**

亚马逊 EC2 实例上的微软 SQL Server 数据库

**目标架构**

![将数据从本地企业数据中心复制到 AWS。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/a459eaef-c256-4691-a7ec-2304f634228c/images/d8d6cee7-f42c-4686-bf92-6e6d39adfb17.png)


此架构使用 AWS MGN 将数据从本地企业数据中心复制到。 AWS图中显示了数据复制过程、API 通信以及测试和割接阶段。

1. 数据复制：
   + AWS MGN 将数据从本地企业数据中心复制到 AWS 并启动变更的持续复制。
   + 暂存子网中的复制服务器接收和处理数据。

1. API 通信：
   + 复制服务器通过 TCP 端口 443 连接到 AWS MGN EC2、亚马逊和亚马逊简单存储服务 (Amazon S3) Simple Storage API 终端节点。
   + AWS MGN 负责管理迁移。
   + Amazon EC2 管理实例操作。

1. 测试和割接：
   + 测试实例使用复制的数据在运行子网中启动。
   + 成功测试后， AWS MGN 会为最终迁移创建直接转换实例。

## 工具
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-tools"></a>
+ [AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) 可帮助您将应用程序重新托管*（移动*）到， AWS Cloud 无需更改且停机时间最短。
+ [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 通过标准的以太网光纤电缆将内部网络链接到 Direct Connect 位置。通过此连接，您可以直接创建通往公共 AWS 服务的虚拟接口，同时绕过网络路径中的互联网服务提供商。
+ [亚马逊弹性计算云 (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) 在中提供可扩展的计算容量 AWS Cloud。您可以根据需要启动任意数量的虚拟服务器，并快速纵向扩展或缩减这些服务器。
+ [Amazon Simple Storage Service（Amazon S3）](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)是一项基于云的对象存储服务，可帮助您存储、保护和检索任意数量的数据。

## 最佳实践
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-best-practices"></a>
+ 在虚拟私有云 (VPC) 中为 AWS MGN EC2、Amazon 和 Amazon S3 设置 API 区域终端节点，以禁止公共访问互联网。
+ 设置 AWS MGN 启动设置以启动私有子网中的目标数据库服务器。
+ 数据库安全组中仅允许必需的端口。
+ 遵循最低权限原则，并授予执行任务所需的最低权限。有关详情，请参阅 IAM 文档中的[授予最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv)和[安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 操作说明
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-epics"></a>

### 设置 AWS MGN
<a name="set-up-aws-mgn"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 配置 AWS MGN。 |  AWS Application Migration Service 在中搜索 AWS 管理控制台，然后启动设置过程。这将创建一个复制模板并将您重定向到 MGN 控制台的**源服务器**页面。配置 MGN 服务时，从生成的列表中选择一个服务角色。 | 数据库管理员、迁移工程师 | 
| 添加源服务器。 | 添加本地源数据库服务器的详细信息，然后添加服务器。 | 数据库管理员、迁移工程师 | 
| 在源服务器上安装 AWS MGN 代理。 | 将 AWS MGN 代理安装程序下载到本地系统，然后将安装程序传输到源数据库服务器。要验证安装程序哈希值，请参阅验证所下载的 [Windows 2012 版AWS 复制代理安装程序](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html#installer-hash-table-2012)。 | 数据库管理员、迁移工程师 | 

### 在源计算机上安装 AWS MGN 代理
<a name="install-aws-mgn-agent-on-source-machines"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 生成客户端 IAM 凭证。 | 在安装 AWS MGN 代理之前，请通过创建具有相应权限的新 IAM 用户来生成 AWS 证书。<br />有关更多信息，请参阅 [AWS 托管策略 AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/security-iam-awsmanpol.html)和[生成所需 AWS 证书](https://docs.aws.amazon.com/mgn/latest/ug/credentials.html)。 | 数据库管理员、迁移工程师 | 
| 在源服务器上安装代理。 | 将代理安装至托管 Microsoft SQL Server 数据库的源计算机上。有关更多信息，请参阅[在 Windows 服务器上安装 AWS 复制代理](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html)。<br />提供以下 AWS 凭证：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)<br />您的唯一 AWS 凭证使 AWS MGN 代理能够进行身份验证和执行迁移任务。 | 应用程序所有者、数据库管理员、迁移工程师 | 
| 选择要复制的磁盘。 | 输入您的 AWS 凭据后，安装程序会验证您的服务器是否满足代理安装的最低要求（例如，服务器是否有足够的磁盘空间来安装 AWS MGN 代理）。安装程序会显示卷标和存储详情。<br />要使用 AWS MGN 服务复制数据库，请在源服务器上选择适用的磁盘。输入每个磁盘的路径（以逗号分隔）。若要复制所有磁盘，请将路径留空。确认所选磁盘后，安装即会继续。 | 数据库管理员、迁移工程师 | 
| 监控同步进度。 | AWS Replication Agent 首先拍摄所选磁盘的快照，然后复制数据，从而启动同步过程。<br />您可以从 AWS MGN 控制台的**源服务器**页面监控同步进度。有关更多信息，请参阅[监控迁移生命周期中的服务器](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html)。 | 数据库管理员、迁移工程师 | 

### 使用 AWS MGN 复制
<a name="replication-using-aws-mgn"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 管理复制进度。 | 开始初始同步后，您的源服务器将出现在 AWS MGN 控制台中，您可以在其中管理和监控迁移。控制台显示完成复制的预计时间，该时间基于所选磁盘的总容量和可用网络带宽计算得出。 | 数据库管理员、迁移工程师 | 
| 验证同步。 | 源服务器上的磁盘完全同步后，确认所有选定磁盘都列为已完全同步，并且控制台中没有报告错误。<br />然后， AWS MGN 控制台将自动将迁移生命周期状态转换 AWS 为 “**准备测试**”，这表明中的复制环境已准备好进行性能和功能测试。 | 应用程序所有者、数据库管理员、迁移工程师 | 

### 测试和割接
<a name="test-and-cut-over"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 配置启动设置。 | 在 AWS MGN 控制台中选择源服务器，然后更新目标测试实例的启动设置。在源**服务器详细信息**页面上，导航到**启动设置**选项卡以配置测试实例。<br />选择经济高效的实例类型和 Amazon Elastic Block Store（Amazon EBS）卷类型，然后配置安全组和网络要求。有关更多信息，请参阅[启动设置](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html)。 | 数据库管理员、迁移工程师 | 
| 启动目标测试实例。 | 导航到同步源计算机的 AWS MGN 控制台，然后选择测试**并切换，然后启动测试**实例，**启动目标测试实例**。<br />这将创建一个启动作业，使用您配置的设置部署测试实例。该实例将在中启动 AWS Cloud 并复制您的源数据库服务器的环境。从**启动历史记录**页面监控启动进度，您可以在其中跟踪实例创建情况并解决任何问题。 | 数据库管理员、迁移工程师 | 
| 验证目标测试实例。 | 验证 Amazon EC2 数据库服务器：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)<br />执行验证测试以确保数据库按预期运行。 | 数据库管理员、迁移工程师 | 
| 对服务器进行重命名。 | AWS MGN 迁移涉及本地源服务器的存储级副本。您的 SQL Server EC2 实例在其二进制文件中仅包含原始源服务器的详细信息，因此请更新二进制信息以反映新服务器的名称。[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | 数据库管理员、迁移工程师 | 
| 启动割接实例。 | 在 AWS MGN 控制台的 “**源服务器**” 页面上，确认服务器的迁移生命周期状态为 “**准备切**换”。配置割接实例的启动设置，确保这些设置与您的本地环境相符。<br />在启动割接之前，请关闭本地数据库，以确保：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)<br />在 AWS MGN 控制台中启动转换实例。当割接实例处于运行状态时，登录该实例并执行以下测试：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | 应用程序所有者、数据库管理员、迁移工程师、迁移主管 | 

## 问题排查
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-troubleshooting"></a>


| 问题 | 解决方案 | 
| --- | --- | 
| 初始同步在身份验证步骤失败。 | 这是网络连接问题。复制服务器无法连接到 AWS MGN。 | 

## 相关资源
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-resources"></a>

**AWS 文档**
+ [入门 AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/getting-started.html)
+ [将本地微软 SQL Server 数据库迁移到亚马逊 EC2](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.html)
+ [亚马逊上的微软 SQL Server EC2 是什么？](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/sql-server-on-ec2-overview.html)

**视频**
+ [使用 AWS Application Migration Service执行直接迁移](https://www.youtube.com/watch?v=tB0sAR3aCb4)（视频）