当我移动 RDS 实例时,我的 AWS EC2 实例是否需要移动到我的 VPC 中?

Do my AWS EC2 instances need to move into my VPC when I move our RDS instance?

我们有一个包含多个 EC2 实例和一个 RDS 实例的 AWS 账户。在引入 VPC 之前,这些已经 运行。现在需要升级RDS实例class,新的class只能建立在VPC中。因此,如果我们的 RDS 实例被修改(转换)为新的 class 并且新的 RDS 实例位于 VPC 中,那么使用此 RDS 的 EC2 实例是否需要同时移动到 VPC 中,或者这可以是一个单独的过程?

RDS 和 EC2 安全组在 classic 和 vpc EC2 之间不交叉兼容。如果您有一个带有 EC2 sec 组引用的 RDS,您将无法将经典 ec2 sec 组添加到您的 vpc RDS sec 组。

Differences Between Security Groups for EC2-Classic and EC2-VPC

最好的办法是将 EC2 基础设施与 RDS 一起迁移到 VPC。如果您想分离进程,然后在迁移 EC2 基础设施后将其锁定,您当然可以授予对 RDS 的全局访问权限,但这是一个很大的禁忌(巨大的安全风险)。

这是一个非常重要的过程,我感受到了你的痛苦。最不复杂的事情是在迁移期间发生停机,这样您就不会在 RDS 实例之间出现分歧。但这并不理想,尤其是当您拥有大型 RDS 存储时。顺便说一句,您需要测试快照和恢复 RDS 的过程需要多长时间,因为这可能需要一段时间。

如果可以的话,另一种方法是在迁移 RDS 时强制您的应用程序使用只读副本。这样您的应用程序仍然可以(某种程度上)运行,并且您不必担心 RDS 实例 post-迁移之间的协调。但很明显,您的应用需要知道它处于只读模式,否则您最终会出现不稳定的行为。

忘记提到有一个叫做 classic-link 的东西,它可能对这里有帮助,但我个人从未使用过 classic-link。在此处写的 AWS 白皮书中查看:

移动亚马逊 RDS MySQL 数据库到 Amazon VPC 使用亚马逊 EC2 经典链接和阅读 副本