0

我需要以编程方式更新包含多个IPv4条目的A记录。避免使用Route53高位插入竞争条件

无论何时EC2实例启动/终止,都会触发更新。

我心中的做法是以read的当前记录,追加IPv4地址,然后upsert将新记录添加到Route53。但是,这会导致可能的竞争条件。

达到此目的的最佳途径是什么,以避免竞争条件?

(附注:ELB是不是一种选择 - 我需要DNS轮循负载平衡)。

回答

0

Route53's multivalued answers在这里正确的做法。

而是有一个A记录,您可以创建多个A记录(每个IP),并使用您创建记录(see API)时指定SetIdentifier歧视他们。 SetIdentifier可以是任何你喜欢的,并且记录的唯一ID有效地变为record_name:set_identifier

Route53会在响应客户端请求时自动将这些记录合并到单个记录中(因此它将返回一个包含指定为单个记录的所有IP的集合的A记录)。

这意味着您可以原子性地使用您的个人IP地址,避免尝试更新包含多个值的A记录时遇到的竞态条件。


顺便说一句,Route53可以有选择地健康检查每个记录,并且只返回那些健康:)