amazon-web-services - 将旧 RDS 流量重定向到 AWS 中的新 RDS

标签 amazon-web-services redirect amazon-rds amazon-route53 amazon-vpc

旧数据库端点:old.cy336nc8sq5l.us-east-1.rds.amazonaws.com

新数据库端点:new.cy336nc8sq5l.us-east-1.rds.amazonaws.com

以上端点由 AWS 在创建 RDS 实例时自动创建

我已经尝试为 old.cy336nc8sq5l.us-east-1.rds.amazonaws.com 设置 CNAME具有值(value) new.cy336nc8sq5l.us-east-1.rds.amazonaws.com但它没有用。为此,我必须在 route53 中创建一个新的托管区域姓名cy336nc8sq5l.us-east-1.rds.amazonaws.com

但是,如果在其他托管区域中为任何 url(如 abc.example.com)设置 CNAME,值为 new.cy336nc8sq5l.us-east-1.rds.amazonaws.com奇迹般有效。旧的rds url已经在多个应用程序中使用我不能冒险完全放弃,最好的方法是使用某种重定向。

除此之外,cy336nc8sq5l.us-east-1.rds.amazonaws.com下的任何CNAME托管区域不工作。

我该如何解决这个问题?还请建议重定向 rds 流量的最佳做法是什么?我知道对于新的数据库端点,我将创建一个新的自定义 CNAME 并将继续使用它,而不是只使用默认的。欢迎所有建议:)

最佳答案

您不能为域 cy336nc8sq5l.us-east-1.rds.amazonaws.com 添加任何记录,因为您无法控制它,通常您可以创建任何托管区域,如 google.com 等,但除非您将原始 DNS 提供商的 NS 记录和 SOA 记录更改为指向您的记录,否则它不会反射(reflect)出来,您不能使用 aws rds 域。你可以通过做

来确认
dig +short -t ns cy336nc8sq5l.us-east-1.rds.amazonaws.com

如果以上结果返回您的 NS 记录,那么您控制该域。

为了在未来拥有这种灵 active ,我建议创建一个像 mydb.com 这样的私有(private)区域,并拥有像 master.mydb.com 这样的 A 记录,其值为 old.cy336nc8sq5l.us-east-1。 rds.amazonaws.com 并且当你想切换到另一个端点时只需在 route53 中切换它,TTL 到期后连接将开始到达新的端点,因为你正在进行更改,最好开始使用这种方式.

同样对于你的情况,在你切换到新端点后,你可以检查旧数据库中的连接数以了解它是否被引用到某个地方并通过运行 show processlist;,你将能够知道正在使用哪个 IP。

关于amazon-web-services - 将旧 RDS 流量重定向到 AWS 中的新 RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58931286/

相关文章:

java - 如何读取重定向的文件

mysql - 从 MySQL 数据库查询数据时 aws lambda 函数超时

amazon-web-services - 使用 CloudFormation 的 EMR 集群上的 EBS 卷

amazon-web-services - AWS Cloudformation - Elasticsearch 访问控制策略服务错误 InvalidTypeException

java - 如何使用maven项目作为后端?

amazon-web-services - "Max storage size not supported"升级AWS RDS时

python - Flask 无法连接 RDS MySQL

amazon-web-services - 如何在 aws ecs update-service cli 命令中添加等待功能?

.htaccess - 将变量 URL(附属链接)重定向到索引

ruby-on-rails - 将事件管理员登录重定向到设计登录