

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

# 使用 AWS DMS 诊断支持 AMI
<a name="CHAP_SupportAmi"></a>

如果您在使用时遇到与网络相关的问题 AWS DMS，您的支持工程师可能需要有关您的网络配置的更多信息。我们希望确保 S AWS upport 在尽可能短的时间内获得尽可能多的所需信息。因此，我们开发了一个带有诊断工具的预构建的 Amazon EC2 AMI，用于测试您的 AWS DMS 网络环境。

该亚马逊机器映像（AMI）上安装的诊断测试包括：
+ Virtual Private Cloud (VPC)
+ 网络数据包丢失
+ 网络延迟
+ 最大传输单元（MTU）大小

**Topics**
+ [启动新的 AWS DMS 诊断 Amazon EC2 实例](#CHAP_SupportAmi_Launch)
+ [创建一个 IAM 角色](#CHAP_SupportAmi_Iam)
+ [运行诊断测试](#CHAP_SupportAmi_Run)
+ [后续步骤](#CHAP_SupportAmi_NextSteps)
+ [IDs 按地区划分的 AMI](#CHAP_SupportAmi_AmiIDs)
+ [AWS 系统补丁管理器](#CHAP_PatchManager)

**注意**  
如果您的 Oracle 源遇到性能问题，则可以评估 Oracle 重做或存档日志的读取性能，以寻找提高性能的方法。有关更多信息，请参阅[评估 Oracle 重做或存档日志的读取性能](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Oracle.ReadPerformUtil)。

## 启动新的 AWS DMS 诊断 Amazon EC2 实例
<a name="CHAP_SupportAmi_Launch"></a>

在本节中，您将启动新的 Amazon EC2 实例。有关如何启动 Amazon EC2 实例的信息，请参阅 [Amazon EC2 用户指南](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/)中的 [Amazon EC2 Linux 实例入门](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)。

使用以下设置启动 Amazon EC2 实例：
+ 对于**应用程序和 OS 映像（亚马逊机器映像）**，请搜索 **DMS-DIAG-AMI** AMI。如果您已登录控制台，则可以使用[此查询](https://us-east-1.console.aws.amazon.com/ec2/home?region=us-east-1#Images:visibility=public-images;search=:dms-diag-ami;v=3;)搜索 AMI。有关您所在地区的 AWS 诊断 AMI 的 AMI ID，请参阅[IDs 按地区划分的 AMI](#CHAP_SupportAmi_AmiIDs)以下内容。
+ 对于**实例类型**，建议您选择 **t2.micro**。
+ 对于**网络设置**，请选择您的复制实例使用的同一个 VPC。

实例激活之后，连接到该实例。有关连接到 Amazon EC2 Linux 实例的信息，请参阅[连接到 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)。

## 创建一个 IAM 角色
<a name="CHAP_SupportAmi_Iam"></a>

如果您想使用所需的最低权限在复制实例上运行诊断测试，请创建一个使用以下权限策略的 IAM 角色：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "dms:DescribeEndpoints",
                "dms:DescribeTableStatistics",
                "dms:DescribeReplicationInstances",
                "dms:DescribeReplicationTasks",
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "*"
        }
    ]
}
```

------

将该角色附加到新的 IAM 用户。有关创建 IAM 角色、策略和用户的信息，请参阅 [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/)中的以下部分：
+ [IAM 入门](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)
+ [创建 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)
+ [创建 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)

## 运行诊断测试
<a name="CHAP_SupportAmi_Run"></a>

创建 Amazon EC2 实例并连接到该实例后，请执行以下操作，对您的复制实例运行诊断测试。

1. 配置 C AWS LI：

   ```
   $ aws configure
   ```

   提供您要用于运行诊断测试的 AWS 用户帐户的访问凭证。向 VPC 和复制实例提供区域。

1. 显示您所在地区的可用 AWS DMS 任务。将示例区域替换为您的区域。

   ```
   $ dms-report -r {{us-east-1}} -l
   ```

   此命令会显示任务的状态。  
![显示任务列表的诊断工具。](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/images/datarep-diagami1.png)

1. 显示任务端点和设置。{{<DMS-Task-ARN>}}用您的任务替换亚马逊资源名称 (ARN)。

   ```
   $ dms-report -t {{<DMS-Task-ARN>}}
   ```

   此命令显示任务的端点和设置。  
![显示任务端点列表的诊断工具。](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/images/datarep-diagami2.png)

1. 运行诊断测试。{{<DMS-Task-ARN>}}替换为你的任务 ARN。

   ```
   $ dms-report -t {{<DMS-Task-ARN>}} -n y
   ```

   此命令显示有关您的复制实例的 VPC、网络数据包传输、网络延迟和网络最大传输单元（MTU）大小的诊断数据。  
![显示网络数据的诊断工具。](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/images/datarep-diagami3.png)

## 后续步骤
<a name="CHAP_SupportAmi_NextSteps"></a>

以下部分介绍基于网络诊断测试结果的故障排除信息：

### VPC 测试
<a name="CHAP_SupportAmi_NextSteps_Vpc"></a>

此测试验证诊断 Amazon EC2 实例与复制实例位于同一 VPC 中。如果诊断 Amazon EC2 实例与您的复制实例不在同一 VPC 中，请将其终止，然后在正确的 VPC 中重新创建。Amazon EC2 在创建之后无法更改其 VPC。

### 网络数据包丢失测试
<a name="CHAP_SupportAmi_NextSteps_Npl"></a>

此测试向以下端点发送 10 个数据包并检查数据包是否丢失：
+ 端口 80 上的 AWS DMS Amazon EC2 元数据服务
+ 源端点
+ 目标端点

所有数据包都应成功到达。如果有任何数据包丢失，请咨询网络工程师以确定问题并寻找查找方案。

### 网络延迟测试
<a name="CHAP_SupportAmi_NextSteps_Nl"></a>

此测试将 10 个数据包发送到之前测试所用的同一个端点，并检查数据包延迟。所有数据包的延迟应小于 100 毫秒。如果任何数据包的延迟超过 100 毫秒，请咨询网络工程师以确定问题并寻找解决方案。

### 最大传输单元（MTU）大小测试
<a name="CHAP_SupportAmi_NextSteps_Mtu"></a>

此测试在之前测试所用的同一个端点上，使用 Traceroute 工具来检测 MTU 的大小。测试中的所有数据包都应具有相同的 MTU 大小。如果任何数据包的 MTU 大小不同，请咨询系统专家以确定问题并寻找解决方案。

## IDs 按地区划分的 AMI
<a name="CHAP_SupportAmi_AmiIDs"></a>

要查看您 AWS 所在地区可用的 DMS 诊断 AMIs 列表，请运行以下 AWS CLI 示例。

```
aws ec2 describe-images --owners 343299325021 --filters "Name=name, Values=DMS-DIAG*" --query "sort_by(Images, &CreationDate)[-1].[Name, ImageId, CreationDate]" --output text
```

如果输出未显示任何结果，则表示 DMS 诊断 AMI 在您所在的 AWS 地区不可用。解决方法是按照以下步骤从其他区域复制该诊断 AMI。有关更多信息，请参阅[复制 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html)。
+ 在可用区域中启动实例。
+ 创建映像。映像将归您所有。
+ 将 AMI 复制到您所在的区域，例如中东（阿联酋）区域。
+ 在您的本地区域启动实例。

## AWS 系统补丁管理器
<a name="CHAP_PatchManager"></a>

AWS Systems Patch Manager 可自动修补您的 EC2 实例上的操作系统和应用程序。

**要对 Patch Manager 进行配置，请执行以下步骤：**

1. 启用 Systems Manager：

   1. 将 `AmazonSSMManagedInstanceCore` IAM 策略附加到 EC2 实例角色。

   1. 确保已安装 SSM 代理（亚马逊 Linux 2、Ubuntu 20.04\+ 的默认）。 AMIs

1. 通过定义 critical/security 更新规则（包括补丁应用程序的时间表）来创建补丁基准。

1. 使用 SSM 中的维护时段，安排更新以便在规定的时间应用补丁。

1. 在 Systems Manager 中查看修补状态和合规性报告，验证合规性。