繁体   English   中英

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

[英]Redirect old RDS traffic to the new RDS in AWS

旧数据库端点: 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,值为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,并将继续使用它,而不是仅使用默认的 CNAME。 欢迎所有建议:)

您不能为域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 记录,则您控制该域。

为了将来具有这种灵活性,我建议一种创建一个私人区域的方法当您想切换到另一个端点时,只需在 route53 中切换它,在 TTL 过期后,连接将开始进入新端点,因为您正在进行更改,最好开始使用这种方式。

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

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

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

更改您的DB identifier可以在某种程度上有所帮助。

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

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

但我喜欢/etc/hosts解决方案简单而安全。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM