【问题标题】:Redirect old RDS traffic to the new RDS in AWS将旧 RDS 流量重定向到 AWS 中的新 RDS
【发布时间】:2020-03-14 19:26:06
【问题描述】:

旧数据库端点: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。欢迎所有建议:)

【问题讨论】:

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


    【解决方案1】:

    您不能为域 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 + 应用程序使用相同的数据库点。我无法访问所有 30 个应用程序并更改数据库端点。虽然,show processlist 会有很大帮助
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      更改您的DB identifier 会有所帮助。

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

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

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

      【讨论】:

      • 会检查一下
      猜你喜欢
      • 2020-02-27
      • 2018-03-09
      • 2022-06-13
      • 2021-09-21
      • 2018-04-17
      • 1970-01-01
      • 2018-12-03
      • 2015-09-25
      • 2020-01-18
      相关资源
      最近更新 更多