

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

# 使用 AWS 应用程序迁移服务将本地虚拟机迁移到 Amazon EC2
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service"></a>

*Thanh Nguyen，Amazon Web Services*

## Summary
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-summary"></a>

就应用程序迁移而言，组织可以采取不同的方法将应用程序服务器从本地环境重新托管（直接迁移）至 Amazon Web Services (AWS) Cloud。一种方法是配置新的亚马逊弹性计算云 (Amazon EC2) 实例，然后从头开始安装和配置应用程序。另一种方法是通过第三方或 AWS 原生迁移服务同时迁移多台服务器。

此模式概述了使用 AWS 应用程序迁移服务将支持的虚拟机 (VM) 迁移到 AWS 云上的 Amazon EC2 实例的步骤。您可以使用此模式中的方法，手动迁移一个或多个虚拟机（逐一），还可以根据概述的步骤创建适当的自动化脚本执行自动迁移。

## 先决条件和限制
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-prereqs"></a>

**先决条件**
+ 支持应用程序迁移服务的 AWS 区域的有效 Amazon Web Services account
+ 通过使用 AWS Direct Connect 或虚拟专用网络 (VPN) 的私有网络，或者通过互联网实现源 EC2 服务器和目标服务器之间的网络连接

**限制**
+ 有关支持区域的最新列表，请参阅[支持的 AWS 区域](https://docs.aws.amazon.com/mgn/latest/ug/supported-regions.html)。
+ 有关支持的操作系统的列表，请参阅 [Amazon](https://aws.amazon.com/ec2/faqs/) 的 “[支持的操作系统](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html)” 和 “*常规*” 部分 EC2 FAQs。

## 架构
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-architecture"></a>

**源技术堆栈**
+ 运行 Amazon 支持的操作系统的物理、虚拟或云托管服务器 EC2

**目标技术堆栈**
+ 与源虚拟机运行相同操作系统的 Amazon EC2 实例
+ Amazon Elastic Block Store（Amazon EBS）

**源架构和目标架构**

下图显示了解决方案的高级架构以及主要组件。本地数据中心中存在带有本地磁盘的虚拟机。在 AWS 上，有一个带有复制服务器的暂存区和一个带有用于测试和切换的 EC2 实例的迁移资源区域。两个子网都包含 EBS 卷。

![\[用于将支持的虚拟机迁移到 AWS 云上的 Amazon EC2 实例的主要组件。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/f8396fad-7ee9-4f75-800f-e819f509e151.png)


1. 初始化 AWS Application Migration Service。

1. 设置暂存区域服务器配置和报告，包括暂存区域资源。

1. 在源服务器上安装代理，并使用连续块级数据复制（压缩和加密）。

1. 自动编排和系统转换，以缩短割接窗口。

**网络架构**

下图从联网角度显示了此解决方案的高级架构和主要组件，包括本地数据中心和 AWS 主要组件之间通信所需协议和端口。

![\[网络组件，包括用于数据中心与 AWS 之间的通信的协议和端口。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/2f594daa-ddba-4841-8785-6067e8d83c2f.png)


## 工具
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-tools"></a>
+ [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) 可帮助您将应用程序更换主机（*直接迁移*）到 Amazon Web Services Cloud 中，无需更改且停机时间最短。

## 最佳实践
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-best-practices"></a>
+ 在向目标 EC2 实例的直接转换完成之前，请勿使源服务器离线或重新启动。
+ 为用户提供充足的机会，使其在目标服务器上执行用户验收测试 (UAT)，以识别和解决任何问题。理想情况下，此测试至少应在割接前两周开始。
+ 经常在应用程序迁移服务控制台上监控服务器复制状态，以便尽早发现问题。
+ 使用临时的 AWS Identity and Access Management (IAM) 凭证安装代理，而非永久 IAM 用户凭证。

## 操作说明
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-epics"></a>

### 生成 AWS 凭证
<a name="generate-aws-credentials"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建 AWS Replication Agent IAM 角色。 | 使用 Amazon Web Services Account 的管理权限登录。在 AWS Identity and Access Management (IAM) [控制台](https://console.aws.amazon.com/iam/)，创建 IAM 角色：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html) | AWS 管理员、迁移工程师 | 
| 生成临时安全凭证。 | 在安装了 AWS 命令行界面（AWS CLI）的计算机上，使用管理权限登录。或者（在支持的 AWS 区域内），在 AWS 管理控制台上，使用 AWS 账户的管理权限登录，然后打开 AWS CloudShell。使用以下命令生成临时凭证，将 `<account-id>` 替换为 Amazon Web Services account ID。`aws sts assume-role --role-arn arn:aws:iam::<account-id>:role/MGN_Agent_Installation_Role --role-session-name mgn_installation_session_role`从命令输出，复制 `AccessKeyId`、** **`SecretAccessKey` 以及** **`SessionToken` 的值。** **将其存储于安全的地方，以备后用。这些临时凭证将在一小时后过期。如果一小时后需要凭证，请重复前面的步骤。 | AWS 管理员、迁移工程师 | 

### 初始化应用程序迁移服务，并创建复制设置模板
<a name="initialize-application-migration-service-and-create-the-replication-settings-template"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 初始化此服务。 | 在控制台上，使用 Amazon Web Services Account 的管理权限登录。选择**应用程序迁移服务**，然后选择 **开始使用**。 | AWS 管理员、迁移工程师 | 
| 创建并配置复制设置模板。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)Application Migration Service 将自动创建促进数据复制和启动迁移服务器所需所有 IAM 角色。 | AWS 管理员、迁移工程师 | 

### 在源计算机上安装 AWS Replication Agents
<a name="install-aws-replication-agents-on-source-machines"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 准备好所需 AWS 凭证。 | 在源服务器上运行安装程序文件时，需要输入之前生成的临时凭证，包括 `AccessKeyId`、`SecretAccessKey` 和 `SessionToken`。 | 迁移工程师、AWS 管理员 | 
| 对于 Linux 服务器，请安装代理。 | 复制安装程序命令，登录至源服务器，并运行安装程序。有关详细说明，请参阅 [AWS 文档](https://docs.aws.amazon.com/mgn/latest/ug/linux-agent.html)。 | AWS 管理员、迁移工程师 | 
| 对于 Windows 服务器，请安装代理。 | 将安装程序文件下载至每台服务器，然后运行安装程序命令。有关详细说明，请参阅 [AWS 文档](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html)。 | AWS 管理员、迁移工程师 | 
| 等待初始数据复制完成。 | 代理完成安装后，源服务器将出现在 Application Migration Service 控制台的**源服务器**部分。服务器正在执行初始数据复制，请稍候。 | AWS 管理员、迁移工程师 | 

### 配置启动设置
<a name="configure-launch-settings"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 指定服务器的详细信息。 | 在 Application Migration Service 控制台上，选择**源服务器**部分，然后从列表中选择服务器名称，以访问服务器详细信息。 | AWS 管理员、迁移工程师 | 
| 配置启动设置。 | 选择**启动设置**选项卡。您可以配置各种设置，包括常规启动设置和 EC2 启动模板设置。有关详细说明，请参阅 [AWS 文档](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html)。 | AWS 管理员、迁移工程师 | 

### 执行测试
<a name="perform-a-test"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 测试源服务器。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)将启动服务器。 | AWS 管理员、迁移工程师 | 
| 验证测试是否成功完成。 | 测试服务器完全启动后，页面上的**警报**状态将显示每台服务器**已启动**。 | AWS 管理员、迁移工程师 | 
| 测试服务器。 | 执行测试服务器测试，以确保其按预期运行。 | AWS 管理员、迁移工程师 | 

### 计划并执行割接
<a name="schedule-and-perform-a-cutover"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 计划割接时段。 | 与相关团队计划适当的割接时间表。 | AWS 管理员、迁移工程师 | 
| 执行割接。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)源服务器的**迁移生命周期**将更改为**正在进行割接**。 | AWS 管理员、迁移工程师 | 
| 验证割接是否成功完成。 | 割接服务器完全启动后，**源服务器**页面上的**警报**状态将显示每台服务器**已启动**。 | AWS 管理员、迁移工程师 | 
| 测试服务器。 | 执行割接服务器测试，以确保其按预期运行。 | AWS 管理员、迁移工程师 | 
| 完成割接。 | 选择**测试并割接**，然后选择**完成割接**以完成迁移过程。 | AWS 管理员、迁移工程师 | 

## 相关资源
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-resources"></a>
+ [AWS Application Migration Service](https://aws.amazon.com/application-migration-service/)
+ [AWS Application Migration Service 用户指南](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)