

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

# 将平台更换为 EC2
<a name="replatform-to-ec2"></a>

AWS 上的云迁移工厂解决方案允许从其数据存储中定义的配置自动启动一组 EC2 实例；部署附有 EBS 卷的 EC2 实例。这提供了配置新 EC2 实例的功能，允许通过 AWS 进行平台重组 CloudFormation，并在单个 CMF 用户界面中使用 AWS MGN 重新托管本地服务器。在使用此功能之前，数据存储必须包含服务器的定义。一旦解决了这个问题，服务器就应该连接到一个 Wave。在决定启动 EC2 实例后，用户可以针对 Wave 启动以下操作：
+ EC2 输入验证
+ EC2 生成 CF 模板
+ EC2 部署

## 先决条件
<a name="prerequisites-1"></a>

添加更换平台属性访问权限的权限。

## 脚本执行平台选择
<a name="script-execution-platform-selection"></a>

在部署自动化脚本之前，请确定哪个计算平台最适合您的需求：
+  **传统 Automation Server**：最适合需要复杂依赖关系、多种编程语言或特定操作系统要求的场景
+  **SSM 自动化文档**：建议用于不需要访问本地环境的标准 Python-based 自动化脚本

## 初始配置
<a name="initial-configuration"></a>

新 EC2 实例的配置是通过使用用户界面创建新服务器项目或通过导入包含服务器项目的 CSV 纳入表来完成的。这些定义将转换为存储在 S3 存储桶中的 AWS CloudFormation 模板，该存储桶位于部署 AWS CMF 实例的 AWS 账户中。

### 用户界面定义
<a name="user-interface-definition-1"></a>

**在 AWS 云迁移工厂数据存储中定义服务器以与 “重新平台到 EC2” 功能配合使用时，需要为服务器配置重新平台**迁移策略**。**选择**更换平台**后，屏幕上将显示此功能所需的其他属性。要使该功能起作用，需要填充以下属性：

#### 必需的属性
<a name="required-attributes"></a>

 **AMI ID**-用于启动 EC2 实例的亚马逊系统映像的 ID。

 **可用区**-EC2 实例将部署到的可用区。

 **根卷大小**-实例根卷的大小（以 GB 为单位）。

 **实例类型**-要使用的 EC2 实例类型。

 **安全组 ID**-分配给实例的安全组列表。

 **子网 ID**-分配此 EC2 实例的子网 ID。

 **租赁**-当前，重新平台到 EC2 集成唯一支持的选项是**共享**，生成模板后，任何其他选项都将被替换为 “**共享**”。

#### 可选属性
<a name="optional-attributes"></a>

 **启用详细监控**-选中可启用详细监控。

 **其他卷名**-其他 EBS 卷名称列表。列表中的每个项目都需要映射到与**大小**和**类型**列表的相同行。

 **其他卷大小**-其他 EBS 卷大小列表。列表中的每一项都需要映射到**名称**和**类型**列表的相同行。

 **其他卷类型**-其他 EBS 卷类型列表。列表中的每个项目都必须映射到与**名称**和**大小**列表的相同行，如果未指定，则所有卷的默认值为 **gp2**。

 **用于卷加密的 EBS KMS 密钥 ID** **-如果要加密 EBS 卷，则指定**密钥 ID、密钥** **ARN、密**钥别名或别名** ARN**。**

 **启用 EBS 优化**-选择开启 **EBS** 优化。

 **根卷名**-从提供的选项中选择，如果未指定，则将使用该 ID。

 **根卷类型**-提供要创建的卷的 EBS 类型，如果未指定，则默认为 **gp** 2。

### 纳入表定义
<a name="intake-form-definition-1"></a>

纳入表可以包含在 csv 文件的单行中与数据存储一起创建或更新多种类型记录的详细信息，这样就可以导入相关数据。在以下示例中，Wave、应用程序和服务器记录将在导入过程中自动创建并相互关联。

示例：纳入表


| 列名称 | 示例数据 | 必需 | 注意 | 
| --- | --- | --- | --- | 
| wave\_name |  `wave1`  | 是 |  | 
| app\_name |  `app1`  | 是 |  | 
| aws\_accountid |  `1234567890`  | 是 |  | 
| server\_name |  `Server1`  | 是 |  | 
| server\_fqdn |  `Server1`  | 是 |  | 
| server\_os\_family |  `linux`  | 是 |  | 
| server\_os\_version |  `Amazon`  | 是 |  | 
| server\_tier |  `Web`  | 否 |  | 
| server\_environment |  `Dev`  | 否 |  | 
| subnet\_IDs |  `subnet-xxxxxxx`  | 是 |  | 
| 安全组\_ID |  `sg-yyyyyyyyyy`  | 是 |  | 
| instanceType |  `m5.large`  | 是 |  | 
| iamRole |  `ec2customrole`  | 否 |  | 
| 租期 |  `Shared`  | 是 |  | 
| r\_type |  `Replatform`  | 是 |  | 
| root\_vol\_size |  `50`  | 是 |  | 
| ami\_id |  `ami-zzzzzzzzzz`  | 是 |  | 
| availabilityzone |  `us-west-2a`  | 是 |  | 
| root\_vol\_type |  `gp2`  | 否 |  | 
| add\_vols\_size |  `40:100`  | 否 |  | 
| add\_vols\_type |  `gp2:gp3`  | 否 |  | 
| ebs\_optimized |  `false`  | 否 |  | 
| ebs\_kmskey\_id |  `1111-1111-1111-1111`  | 否 |  | 
| detailed\_monitoring |  `true`  | 否 |  | 
| root\_vol\_name |  `Server1_root_volume`  | 否 |  | 
| add\_vols\_name |  `Server1_root_volumeA: Server1_root_volumeB`  | 否 |  | 

要导入受理表，请按照与导入 AWS 云迁移工厂解决方案中的任何其他数据相同的流程进行操作。

## 部署操作
<a name="deployment-actions"></a>

### EC2 输入验证
<a name="ec2-input-validation"></a>

定义实例参数后，您必须先运行 Wave 操作：**更换平台**>**EC2**>**EC2 输入验证**。此操作验证是否为每台服务器提供了所有正确的参数，以便创建有效的 CloudFormation 模板。

**注意**  
此验证当前不验证输入参数是否有效，仅验证输入参数是否存在于每个服务器定义中。在创建模板之前，必须验证正确的值，否则模板的部署将失败。

### EC2 生成 CloudFormation 模板
<a name="ec2-generate-cloud-formation-template"></a>

一旦验证了波浪中包含的所有服务器的定义，就可以生成 CloudFormation 模板了。为此，请运行 Wave 操作：**更换平台**>**EC2**>**EC2 生成 CF 模板**。此操作为浪潮中的每个应用程序创建一个 CloudFormation 模板，其中应用程序中的服务器具有**重新平台****迁移策略**；任何定义了其他迁移策略的服务器都不会包含在模板中。

运行后，每个应用程序的模板将存储在 S3 存储桶中：**-gfbuild-cftemplates**，该存储桶是在部署 AWS 云迁移工厂解决方案时自动创建的。此桶的文件夹结构如下所示：
+ [目标 AWS 账户 ID]
+ [Wave 名称]
  +  **cfn\_tem** ****plate\_\\ \_ 0yaml**** 

每次运行生成操作时，都会在 S3 桶中存储模板的新版本。通知中将提供模板的 S3 URI，可以在部署之前根据需要查看或编辑这些模板。

这些 CloudFormation 模板目前生成以下 CloudFormation 资源类型：
+ AWS::EC2::Instance
+ AWS::EC2::Volume
+ AWS:: EC2:: VolumeAttachment

### EC2 部署
<a name="ec2-deployment"></a>

准备好部署新的 EC2 实例后，您可以通过以下 Wave 操作启动 **EC2 部署**操作：**更换平台**>**EC2**>**EC2 部署**。此操作将为浪潮中的每个应用程序使用最新版本的 CloudFormation 模板，并通过 AWS 将这些模板部署到选定的目标账户 CloudFormation。