当我在 AWS 中创建负载均衡器时,它会被分配一个 DNS 名称(A 记录)
{name-provided}-971871181.ap-southeast-2.elb.amazonaws.com
。
问题是我似乎无法控制
-971871181
部分(每次都会更改),也看不到如何在 ap-southeast-2.elb.amazonaws.com
(或 AWS 域下的其他任何地方)创建 CNAME 记录以指向它(托管区域不起作用,尽管 AWS 给人的印象是它们起作用)。
但我需要能够反复拆除并重新部署此负载均衡器,以便它始终具有相同/已知的域名,因为我打算在它前面使用 CloudFlare。 CloudFlare 将配置 CNAME 记录以指向
*.ap-southeast-2.elb.amazonaws.com
名称,但我无法在每次重新部署时以编程方式更改该记录。
这应该是可能的吗?
问题是我似乎无法控制-971871181部分(每次都会改变),
你无法控制
我也看不到如何在 ap-southeast-2.elb.amazonaws.com(或 AWS 域下的任何其他位置)中创建 CNAME 记录以指向它
您不拥有该域名
amazonaws.com
。 Amazon 不会授予您在其 DNS 服务器中创建 CNAME 记录的权限。
托管区域不起作用,尽管 AWS 给人的印象是它们起作用)。
托管区域适用于您拥有的域。您不拥有
amazonaws.com
域,因此您无法创建托管区域来控制该域或该域的子域。
托管区域将作为您的 DNS 服务器,就像 Cloudflare 当前作为您的 DNS 服务器一样。由于您已经在 Cloudflare 上拥有 DNS,因此使用 Route53 没有意义。
但是我需要能够反复拆除并重新部署此负载均衡器,以便它始终具有相同/已知的域名,
那是不可能的。每次它都会有一个新的随机域名。
CloudFlare 将配置 CNAME 记录以指向 *.ap-southeast-2.elb.amazonaws.com 名称,但我无法在每次重新部署时以编程方式更改该名称。
Cloudflare 有一个 API,以及一个 Terraform 提供商。如果您使用 Terraform 管理 AWS 资源,则每当您在 AWS 中创建新的负载均衡器时,您还可以让 Terraform 自动更新 Cloudflare CNAME 记录。否则,您将需要更新您正在使用的任何脚本或自动化工具,以便在部署时调用 Cloudflare API 来更新 CNAME 记录。