CloudFront 到 public 或私有 Route53 托管区域

CloudFront to a public or private Route53 hosted zone

我有一个使用 Terraform 创建的 ALB 和一个太旧以至于不受 Terraform 管理的 CloudFront Distribution。我的 ALB 在 DNS 名称中获得了一个随机数,我担心在 CloudFront 中将此 ALB DNS 作为来源输入。

所以我的想法是,设置一个或多或少固定的 Route53 条目,并通过 Terraform 进行管理。但到目前为止,我还没有找到让 CloudFront 指向我的 Route53 托管区域的方法。所以我问是否需要注册域名。

CloudFront Origin 是否可能指向没有注册域的 Route53 条目,即仅指向私有或 public 托管区域条目?

您似乎担心 ALB 的 DNS 名称的寿命。 只要您的 ALB 存在,您的 ALB 的 DNS 名称就是静态的。如果你删除它,你会得到一个新的,但只要它存在,它就会是静态的。

因此,如果您不打算定期删除您的 ALB,我会非常乐意使用它的 DNS 名称作为 CloudFront 中的来源。


关于您的 DNS 问题:

您还可以在 public 托管区域 中添加别名或 CNAME 记录,指向您的 ALB(或者在 CNAME 的情况下是 DNS 名称),这由 Terraform 管理。 它必须是具有真实域的 public 托管区域,即某些区域必须通过 DNS 委托给 Route53。 请记住,您必须创建一个 SSL/TLS 证书才能正常工作。 之后,您可以将自定义域名设置为 CloudFront 中的源。 这要求您有一个(子)域委托给您的 public 托管区域。

不能私人托管区域做同样的事情。 CloudFront 需要一个它可以解析的 DNS 名称,并且由于 CloudFront 不是您的 VPC 的一部分,它需要一个 public 只能解析的 DNS 名称,私有托管区域不提供。