如何从一个区域到另一个区域使用AWS DMS?

时间:2018-09-03 13:43:51

标签: amazon-web-services aws-dms aws-regions

我正在尝试使用AWS DMS将数据从巴黎地区(eu-west-3)中的源数据库(AWS RDS MySQL)移至爱尔兰地区(eu-west-中的目标数据库(AWS Redshift)) 1)。目标是不断复制正在进行的更改。

我遇到了这类错误:

An error occurred (InvalidResourceStateFault) when calling the CreateEndpoint operation: The redshift cluster datawarehouse needs to be in the same region as the current region. The cluster's region is eu-west-1 and the current region is eu-west-3.

文档说:

  

使用AWS DMS的唯一要求是您的一个端点必须   使用AWS服务。

所以我想做的应该是可能的。实际上,这似乎是不允许的。

如何从一个区域到另一个区域使用AWS DMS? 我的端点应该在哪个区域? 我的复制任务应该在哪个区域? 我的复制实例必须与RDS MySQL实例位于同一区域,因为它们需要共享一个子网

3 个答案:

答案 0 :(得分:1)

AWS提供了this whitepaper,称为“将AWS资源迁移到新的AWS区域”,该服务已于去年更新。您可能需要联系他们的支持,但是一个想法是在迁移到Redshift之前,将您的RDS移到适当区域中的另一个RDS。在白皮书中,它们提供了另一种迁移RDS的方法(如果您出于某些原因不想使用DMS,则无需DMS):

  
      
  1. 停止所有事务或拍摄快照(但是,此时间点之后的更改会丢失,可能需要重新应用于   目标Amazon RDS数据库实例)。
  2.   
  3. 使用临时EC2实例,将所有数据从Amazon RDS转储到文件中:      
        
    • 对于MySQL,请使用mysqldump工具。你可能想要   压缩此转储(请参阅bzip或gzip)。
    •   
    • 对于MS SQL,请使用bcp   实用程序将数据从Amazon RDS SQL数据库实例导出到文件中。   您可以使用SQL Server生成和发布脚本向导来   为整个数据库或仅为选定的对象创建脚本。36
    •   
    • 注意:Amazon RDS不支持Microsoft SQL Server备份文件   恢复。
    •   
    • 对于Oracle,请使用Oracle导出/导入实用程序或   数据泵功能(请参阅   http://aws.amazon.com/articles/AmazonRDS/4173109646282306)。
    •   
    • 对于   在PostgreSQL中,可以使用pg_dump命令导出数据。
    •   
  4.   
  5. 使用CP,FTP或Rsync等标准工具将此数据复制到目标区域中的实例。
  6.   
  7. 使用新的Amazon RDS安全组在目标区域中启动新的Amazon RDS数据库实例。
  8.   
  9. 导入保存的数据。
  10.   
  11. 验证数据库是否处于活动状态并且您的数据是否存在。
  12.   
  13. 在源区域中删除旧的Amazon RDS数据库实例
  14.   

答案 1 :(得分:0)

我找到了当前正在测试的解决方法。

我将“ Postgres”声明为Redshift集群的引擎类型。它欺骗AWS DMS认为它是一个外部数据库,并且AWS DMS不再检查区域。

我认为这将导致性能下降,因为DMS可能会使用INSERT(而不是COPY命令)将数据提供给Redshift。

答案 2 :(得分:0)

当前Redshift必须与复制实例位于同一区域。

  

Amazon Redshift集群必须位于同一AWS账户中,并且   复制实例位于相同的AWS区域。

https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html

因此,应该在VPC内的Redshift区域中创建复制实例。 然后使用 VPC对等使复制实例能够连接到其他区域中的MySQL实例的VPC

https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html