将旧RDS流量重定向到AWS中的新RDS

旧数据库端点: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设置值为new.cy336nc8sq5l.us-east-1.rds.amazonaws.com的CNAME,但没有成功。为此,我必须以route53名称cy336nc8sq5l.us-east-1.rds.amazonaws.com创建一个新的托管区域。

但是,如果在其他托管区域中为abc.example.com之类的任何URL设置值为new.cy336nc8sq5l.us-east-1.rds.amazonaws.com的CNAME就像一个超级按钮。旧的rds url已在多个应用程序中使用,我不能冒险完全放弃它,最好的方法是使用某种重定向。

除此之外,cy336nc8sq5l.us-east-1.rds.amazonaws.com托管区域下的所有CNAME均无法正常工作。

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

chenyong715 回答:将旧RDS流量重定向到AWS中的新RDS

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

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

如果以上结果返回了您的NS记录,则您可以控制该域。

为了将来具有这种灵活性,我建议一种方法来创建一个私有区域,如mydb.com,并创建一个记录,如master.mydb.com,其值为 old.cy336nc8sq5l.us-east-1。 rds.amazonaws.com ,当您想切换到另一个端点时,只需在route53中进行切换即可,TTL过期后,连接将开始进入新端点,因为您正在进行更改,因此最好使用这种方式

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

,

最重要的是,您将必须更新所有30个应用程序才能使用新的数据库端点。如果要删除数据库并定期像这样重新创建它们,请配置数据库以在您控制的区域中使用名称,并为当前的任何数据库端点创建一个CNAME。

您可以 可以通过向/ etc / hosts添加条目来创建临时解决方案(假设您的客户端运行的是linux,我相信在Windows上也可以,但是长时间)将新数据库的当前IP映射到旧主机名。但这可能与更新应用程序以使用新数据库一样多。如果您正在运行多可用区数据库并发生故障转移事件,它也会失败。

,

更改DB identifier可以有所帮助。

选择您的集群-> Modify->更改DB cluster identifier

您将保留具有不同端点的旧数据库,然后将新数据库更改为新端点。

但是我喜欢/etc/hosts解决方案,因为它既简单又安全。

本文链接:https://www.f2er.com/3074620.html

大家都在问