如何将 RDS 数据库移动到不同的 VPC

如何将 RDS 数据库移动到不同的 VPC

创建 MySQL RDS 数据库时我没有选择 VPC,因此它在自动生成的“默认”VPC 内创建了它。我现在无法将其添加到任何预定义的安全组,也无法从现有 VPC 中的实例访问它。显而易见的解决方案是将其重新定位到正确的 VPC,但“修改数据库实例”屏幕上似乎没有任何选项可以编辑 VPC。有没有办法选择不同的 VPC,或者我唯一的选择是删除数据库并在正确的 VPC 内重新创建它?

答案1

亚马逊最近发布了新闻稿宣布您现在可以更改现有 RDS 实例的 VPC:

现在,您可以轻松更改 Amazon RDS DB 实例使用的 Amazon Virtual Private Cloud (Amazon VPC)。您可以使用 Amazon RDS 管理控制台、Amazon RDS API 或 AWS 命令​​行工具为在单可用区配置中部署的现有 DB 实例指定新的 VPC。此外,如果您在 EC2-Classic 环境中运行 DB 实例,则可以通过修改现有 DB 实例切换到 EC2-VPC 环境。如果您的 AWS 账户是在 2013-12-04 之前创建的,则您可能在 EC2-Classic 环境中运行 RDS。

此功能适用于 Amazon RDS 支持的所有区域,并适用于 MySQL、MariaDB、Microsoft SQL Server、Oracle 和 PostgreSQL 的所有受支持版本。

请注意,此功能仅支持在单可用区部署中运行的数据库实例。如果您想要更改多可用区部署中数据库实例的 VPC 环境,您可以暂时将实例修改为单可用区部署,然后在更改为 EC2-VPC 环境后重新启用多可用区。

答案2

简单 - 对当前 RDS 实例进行快照,然后将该快照还原到 VPC 中的新实例。

答案3

为了避免在迁移到新 VPC 时出现停机,您应该为原始 RDS 集群设置多可用区数据库实例,以便创建快照不会导致短暂的 I/O 暂停。集群还应启用二进制日志记录,以便您在新 VPC 中加载快照时可以设置数据库之间的复制,以恢复创建快照后可能插入或更新的任何数据。

关注此指导来自 RDS 文档

编辑

我必须使用 RDS Aurora 来执行此操作,并且必须对上述指南进行轻微修改:

  • 从 Aurora 快照恢复时,您无法设置参数组,因此实例会自动获取默认参数。实例可用后,更改参数以包含二进制日志记录并重新启动它。

  • 运行SHOW MASTER STATUS\G不会为您提供拍摄快照时原始数据库的正确二进制日志文件和位置,实例重新启动会创建一个新的二进制日志文件。相反,运行SHOW BINARY LOGS;会查找上一个日志文件和 file_size,并在设置复制时使用这些值。

相关内容