我在生产帐户中有生产堆栈,在开发帐户中有开发堆栈。堆栈相同,设置如下:
要访问RDS实例,我必须通过SSH进入堡垒机器并从那里访问它,或者通过堡垒创建一个SSH隧道以通过数据库客户端应用程序(例如PGAdmin)来访问它。
当前DMS设置:
我希望能够使用DMS(数据库迁移服务)将RDS实例从生产复制到开发中。到目前为止,我正在尝试以下操作,但无法使其正常工作:
在Development VPC和Production VPC之间创建VPC对等连接 在Development VPC的专用子网中创建复制实例 更新开发VPC中的专用子网路由表,以通过VPC对等连接将流量路由到生产VPC的CIDR 确保复制实例的安全组可以访问两个RDS实例。
主要问题:
在DMS中创建源终结点时,向导仅显示来自同一帐户和相同区域的RDS实例,并且仅允许使用服务器名称和端口来配置RDS实例,但是,我的堆栈中的RDS实例只能通过使用隧道的堡垒机器可以访问。因此,测试端点连接总是失败。
关于如何实现此跨帐户复制的任何想法?
任何详细介绍如何执行此操作的循序渐进的博客?我发现了一些,但似乎没有RDS实例坐在堡垒机后面,因此它们都假定可以使用服务器名称和端口来填充端点配置向导。
非常感谢。
答案 0 :(得分:0)
通过Bastion主机保护RDS实例是一种安全的做法,当然,对于开发人员/操作人员来说也是这样。
但是,对于DMS迁移服务,您应该期望同时为目标RDS数据库实例和源RDS数据库实例打开安全组,以允许迁移实例同时访问这两个实例。
从Network Security for AWS Database Migration Service:
复制实例必须有权访问源端点和目标端点。复制实例的安全组必须具有网络ACL或规则,该ACL或规则允许从实例在数据库端口上出站到数据库端点。
数据库端点必须包含允许从复制实例进行传入访问的网络ACL和安全组规则。您可以使用复制实例的安全组,专用IP地址,公用IP地址或NAT网关的公用地址来实现此目的,具体取决于您的配置。
请参阅 https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.Network.html
对于网络寻址和打开RDS专用子网,源和目标都需要NAT。可以轻松添加它们,然后在迁移后终止它们。
现在,您可以使用网络地址转换(NAT)网关,这是一种高可用性的AWS托管服务,可以轻松地从AWS虚拟私有云(VPC)的私有子网中的实例连接到Internet。