如何使用 Amazon Redshift 作为 AWS DMS 任务的目标终端节点?

上次更新时间:2019 年 9 月 26 日

如何使用 Amazon Redshift 作为我的 AWS Database Migration Service (AWS DMS) 任务的目标终端节点?

简短描述

您可以使用 Amazon Redshift 数据库作为使用任何可支持源的 AWS DMS 任务的目标。当您迁移到 Amazon Redshift 时,AWS DMS 首先将数据移到 Amazon Simple Storage Service (Amazon S3) 存储桶。然后,再将数据传输到目标 Amazon Redshift 集群中的表。此 S3 存储桶在相同的 AWS 区域中创建,作为 Amazon Redshift 数据库。因此,您的 Amazon Redshift 集群必须与复制实例处于同一账户和同一 AWS 区域中。更多信息,请参阅使用 Amazon Redshift 作为 AWS Database Migration Service 的目标的限制

解决方法

开始之前,请务必在 Amazon Redshift 集群安全组的入站规则中提供安全组、子网 CIDR 范围或复制实例的 IP 地址。AWS DMS 复制实例与该集群使用的 Amazon Redshift 终端节点(主机名和端口)之间必须有网络连接。别外,请确认 AWS DMS 拥有创建 S3 存储桶的权限。由于 AWS DMS 使用 Amazon S3 作为媒体将数据传输到 Amazon Redshift 集群,因此 AWS DMS 需要 dms-access-for-endpoint AWS Identity and Access Management (IAM) 角色。更多信息,请参阅使用 Amazon Redshift 数据库作为 AWS Database Migration Service 的目标的前提条件

  1. 打开 AWS DMS 控制台,然后选择您的 Amazon Redshift 集群所在的 AWS 区域。
  2. 从导航窗格中选择终端节点。 
  3. 选择创建终端节点
  4. 终端节点类型中,选择目标终端节点
  5. 输入您的终端节点标识符,然后选择 Redshift 作为您的目标引擎。 
  6. 输入您的 Amazon Redshift 终端节点作为服务器名称。 
  7. 输入端口号(Amazon Redshift 的默认端口为 5439)
  8. 输入您的 Amazon Redshift 用户名密码数据库名称
  9. 或者,您也可以从终端节点特定的设置添加额外的连接属性。
  10. 测试终端节点连接部分中,选择复制实例所在的 VPC,并选择复制实例。 
  11. 选择运行测试,然后等待状态变为成功
  12. 选择创建终端节点

如果您使用 AWS DMS 控制台创建终端节点,将会自动创建必需的 IAM 角色和策略。如果您使用 AWS 命令行界面 (AWS CLI) 或 AWS DMS API,您必须手动创建 IAM 角色和策略。有关 IAM 角色和策略配置的信息,请参阅创建 IAM 角色以用于 AWS CLI 和 AWS DMS API 中的创建 dms-access-for-endpoint IAM 角色以用于作为目标数据库的 Amazon Redshift 部分。