完成DMS架构转换的先决条件 - Amazon 数据库迁移服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

完成DMS架构转换的先决条件

要设置DMS架构转换,请完成以下任务。然后,您可以设置实例配置文件、添加数据提供程序并创建迁移项目。

创建VPC基于 Amazon 的 VPC

在此步骤中,您将在中创建虚拟私有云 (VPC) Amazon Web Services 账户。VPC它基于亚马逊 Virtual Private Cloud(亚马逊VPC)服务,包含您的 Amazon 资源。

VPC为DMS架构转换创建
  1. 登录 Amazon Web Services Management Console 并打开 Amazon VPC 控制台,网址为https://console.aws.amazon.com/vpc/

  2. 选择创建VPC

  3. 创建VPC页面上,输入以下设置:

    • 可供创建的资源VPC以及更多

    • 名称标签自动生成 – 选择自动生成,然后输入一个全局唯一名称。例如,输入 sc-vpc

    • IPv4CIDR区块10.0.1.0/24

    • NAT网关在 1 个可用区

    • VPC端点-

  4. 保持其余设置不变,然后选择 “创建” VPC。

  5. 选择子网,记下您的公有子网和私有子网IDs。

    要连接到您的 Amazon RDS 数据库,请创建一个包含公有子网的子网组。

    要连接到本地数据库,请使用包含专用子网的子网组。有关更多信息,请参阅 为DMS架构转换创建实例配置文件

  6. 选择NAT网关。选择您的NAT网关并记下您的弹性 IP 地址

    配置您的网络,确保它 Amazon DMS 可以从此NAT网关的公有 IP 地址访问您的源本地数据库。有关更多信息,请参阅 使用互联网连接到 VPC

VPC当您在 Amazon 上创建实例配置文件和目标数据库时,请使用此选项RDS。

创建 Amazon S3 存储桶

要存储迁移项目中的信息,请创建一个 Amazon S3 存储桶。 DMS架构转换使用此 Amazon S3 存储桶来保存诸如评估报告、转换后的SQL代码、有关数据库架构对象的信息等项目。

为DMS架构转换创建 Amazon S3 存储桶
  1. 登录 Amazon Web Services Management Console 并打开 Amazon S3 控制台,网址为https://console.aws.amazon.com/s3/

  2. 选择创建存储桶

  3. 创建存储桶页面上,为 S3 存储桶选择一个全局唯一名称。例如,输入 sc-s3-bucket

  4. 对于 Amazon Web Services 区域,选择区域。

  5. 对于存储桶版本控制,选择启用

  6. 保留其余默认设置,然后选择创建存储桶

将数据库凭据存储在 Amazon Secrets Manager

将您的源数据库和目标数据库凭据存储在中 Amazon Secrets Manager。确保将这些秘密复制到您的 Amazon Web Services 区域. DMS 架构转换使用这些密钥在迁移项目中连接到您的数据库。

将您的数据库凭据存储在 Amazon Secrets Manager
  1. 登录 Amazon Web Services Management Console 并打开 Amazon Secrets Manager 控制台,网址为https://console.aws.amazon.com/secretsmanager/

  2. 选择 存储新密钥

  3. 将打开选择密钥类型页面。对于密钥类型,选择要存储的数据库凭证类型:

    • 亚马逊RDS数据库凭证-选择此选项可存储您的亚马逊RDS数据库的凭证。对于凭证,输入数据库的凭证。对于数据库,选择您的数据库。

    • 其他数据库的凭据-选择此选项可存储源 Oracle 或 SQL Server 数据库的凭据。对于凭证,输入数据库的凭证。

    • 其他类型的密钥 – 选择此选项,仅存储用于连接数据库的用户名和密码。选择添加行,以添加两个键值对。请务必使用 usernamepassword 作为密钥名称。对于与这些密钥相关的值,输入数据库的凭证。

  4. 对于加密密钥,选择 Secrets Manager 用于加密密 Amazon KMS 钥值的密钥。选择下一步

  5. 配置密钥页面上,输入描述性的密钥名称。例如,输入 sc-source-secretsc-target-secret

  6. 选择复制密钥,然后在 Amazon Web Services 区域中选择区域。选择下一步

  7. 配置旋转页面,选择下一步

  8. 审核页面上,审核密钥详细信息,然后选择存储

要存储源数据库和目标数据库的凭证,请重复上述步骤。

创建IAM策略

为DMS架构转换创建访问亚马逊 S3 的IAM策略
  1. 登录 Amazon Web Services Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择策略

  3. 选择创建策略

  4. 选择服务页面上,从列表中选择 Amazon S3

  5. 在 “允许的操作” 中PutObject,选择GetObjectGetObjectVersionGetBucketVersioning、、GetBucketLocationListBucket

  6. 资源中,ARN指定您在上一节中创建的存储桶的。选择下一步

  7. 在 “查看并创建” 页面上,输入描述性名称。例如:sc-s3-policy。然后选择创建策略

为DMS架构转换创建访问IAM策略 Amazon Secrets Manager
  1. 登录 Amazon Web Services Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择策略

  3. 选择创建策略

  4. 选择服务页面上,从列表中选择 S ecrets Manager

  5. 选择下一步。将打开添加权限页面。

  6. 在 “允许的操作” 中,选择:GetSecretValueDescribeSecret

  7. 在 “查看并创建” 页面上,输入描述性名称。例如:sc-secrets-manager-policy。然后选择创建策略

创建IAM角色

创建 Amazon Identity and Access Management (IAM) 角色以在您的迁移项目中使用。 DMS架构转换使用这些IAM角色来访问您的 Amazon S3 存储桶和存储在中的数据库凭证 Amazon Secrets Manager。

创建提供对您的 Amazon S3 存储桶的访问权限的IAM角色
  1. 登录 Amazon Web Services Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色

  3. 选择创建角色

  4. 选择可信实体页面上,选择 Amazon 服务。选择 DMS

  5. 选择下一步。将打开添加权限页面。

  6. 筛选策略中,输入 S3。选择您在上一节中创建的 sc-s3-policy 策略

  7. 选择下一步。将打开命名、检查并创建页面。

  8. 对于角色名称,输入一个描述性名称。例如,输入 sc-s3-role。选择 Create role(创建角色)。

  9. 角色页面上,在角色名称中输入 sc-s3-role。选择 sc-s3-role

  10. sc-s3-role 页面上,选择信任关系选项卡。选择编辑信任策略

  11. 编辑信任策略页面上,编辑要使用的角色schema-conversion.dms.amazonaws.com和您的 Amazon DMS 区域服务主体作为可信实体的信任关系。该 Amazon DMS 区域服务主体采用以下格式:

    dms.region-name.amazonaws.com

    region-name替换为您所在地区的名称,例如us-east-1:以下代码示例显示了该us-east-1地区的委托人:

    dms.us-east-1.amazonaws.com

    以下代码示例显示了用于访问 Amazon DMS 架构转换的信任策略:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dms.us-east-1.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
创建提供访问权限的IAM角色 Amazon Secrets Manager
  1. 登录 Amazon Web Services Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色

  3. 选择创建角色

  4. 选择可信实体页面上,选择 Amazon 服务。选择 DMS

  5. 选择下一步。将打开添加权限页面。

  6. 筛选策略中,输入 s3。选择sc-secrets-manager-policy您在上一节中创建的。

  7. 选择下一步。将打开命名、检查并创建页面。

  8. 对于角色名称,输入一个描述性名称。例如,输入 sc-secrets-manager-role。选择 Create role(创建角色)。

  9. 角色页面上,在角色名称中输入 sc-secrets-manager-role。选择 sc-secrets-manager-role

  10. sc-secrets-manager-role页面上,选择信任关系选项卡。选择编辑信任策略

  11. 编辑信任策略页面上,编辑要使用的角色schema-conversion.dms.amazonaws.com和您的 Amazon DMS 区域服务主体作为可信实体的信任关系。该 Amazon DMS 区域服务主体采用以下格式:

    dms.region-name.amazonaws.com

    region-name替换为您所在地区的名称,例如us-east-1:以下代码示例显示了该us-east-1地区的委托人:

    dms.us-east-1.amazonaws.com

    以下代码示例显示了用于访问 Amazon DMS 架构转换的信任策略:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dms.us-east-1.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
创建与 Amazon CLI或一起使用的dms-vpc-roleIAM角色 Amazon DMS API
  1. 使用以下IAM策略创建JSON文件。为JSON文件命名dmsAssumeRolePolicyDocument.json

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    然后,使用以下命令 Amazon CLI使用创建角色:

    aws iam create-role --role-name dms-vpc-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument.json
  2. dms-vpc-role使用以下命令将AmazonDMSVPCManagementRole策略附加到:

    aws iam attach-role-policy --role-name dms-vpc-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole
创建与 Amazon CLI或一起使用的dms-cloudwatch-logs-roleIAM角色 Amazon DMS API
  1. 使用以下IAM策略创建JSON文件。为JSON文件命名dmsAssumeRolePolicyDocument2.json

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    然后,使用以下命令 Amazon CLI使用创建角色:

    aws iam create-role --role-name dms-cloudwatch-logs-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument2.json
  2. dms-cloudwatch-logs-role使用以下命令将AmazonDMSCloudWatchLogsRole策略附加到:

    aws iam attach-role-policy --role-name dms-cloudwatch-logs-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole