我需要以编程方式更新包含多个A
条目的IPv4
记录。
每当EC2实例启动/终止时都会触发更新。
我想到的方法是read
当前记录,将IPv4
地址,然后upsert
新记录附加到Route53。但是,这会导致可能的竞争条件。
实现这一目标的最佳方法是什么,以避免竞争条件?
(p.s.ELB不是一个选项 - 我需要DNS循环负载平衡。)
答案 0 :(得分:0)
Route53's multivalued answers是正确的方法。
您可以创建多个A
记录(每个IP一个),而不是使用一个A
记录,并使用您在创建记录时指定的SetIdentifier
来区分它们({{3 }})。 SetIdentifier
可以是您喜欢的任何内容,并且记录的唯一ID实际上变为record_name:set_identifier
。
Route53会在响应客户端请求时自动将这些记录合并到一条记录中(因此它将返回一条A
记录,其中包含您指定为单个记录的所有IP集合。
这意味着您可以原封为upsert
/ delete
您的个人IP地址,避免在尝试更新包含多个值的A
记录时遇到的竞争条件。
另外,Route53可以选择健康检查每条记录,只返回健康记录:)