旧数据库端点: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/