Amazon CloudFront 部署小指南(十)- 平滑迁移备用域名到其他账号

Amazon CloudFront 部署小指南(十)- 平滑迁移备用域名到其他账号

💡 原文中文,约11700字,阅读约需28分钟。
📝

内容提要

本文介绍了在CloudFront中使用备用域名的方法,以及如何迁移备用域名和配置。迁移过程分为5个步骤。

🔎

延伸解读

迁移前必须评估的依赖资源

CloudFront 分配配置可能引用 ACM 证书、缓存策略、Lambda@Edge 函数、WAF Web ACL、S3 源站等资源,这些资源迁移到新账号后标识符会改变。文章建议先迁移这些资源并记录新 ID 或 ARN,再更新 CloudFront 配置文件。资源少可手工创建,多则推荐 API/SDK 程序化迁移,否则容易因引用失效导致分配创建失败。

通配符迁移的适用边界与限制

使用通配符域名(如 *.example.com)跨账号迁移备用域名时,不能迁移 Apex 域名(如 example.com),因为通配符是 Apex 的子域,以 Apex 为目标的请求无法匹配。若需迁移 Apex 域名,必须联系亚马逊云科技 Support 验证所有权后手动移动。此外,需准备 SNI 列表包含通配符的 SSL/TLS 证书,且无需为通配符配置 DNS,否则可能误导向目标分配。

迁移过程中的流量切换与回退窗口

在源分配删除备用域名后,CloudFront 边缘站点通过模糊匹配通配符将请求自动转发到目标分配,实测不到 30 秒流量即切换,且状态码保持 200。若目标分配出现异常,可在步骤 5 之前通过 UpdateDistribution 将备用域名加回源分配实现快速回退。但一旦完成步骤 5,就只能发起反向迁移,不再有快速回退机会,因此建议先用测试域名验证全流程。

DNS 切换与域前置检查

步骤 4 要求将业务域名的 DNS 记录指向目标分配,这是步骤 5 的前提。若未正确配置 DNS 就尝试将目标分配的备用域名从通配符改为具体业务域名,CloudFront 会检测到域前置并报错,提示别名指向了另一个 CloudFront 分配。因此必须等待新 DNS 记录完全生效后再执行步骤 5,否则迁移会失败。

❓

Q&A

CloudFront 备用域名是什么?为什么必须全局唯一?

备用域名(CNAME)允许您在文件 URL 中使用自己的域名(如 www.example.com)替代 CloudFront 分配的默认域名(如 d123.cloudfront.net)。CloudFront 将备用域名关联到每个边缘站点的 IP 地址,当请求到达时,通过检查 Host 或 :authority 标头来找到对应的分配。由于备用域名是 CloudFront 区分租户业务的重要依据,必须全局唯一,否则添加时会收到 CNAMEAlreadyExists 错误。

跨账号迁移 CloudFront 备用域名需要提前准备哪些资源?

需要提前迁移并记录新标识符的资源包括:ACM SSL/TLS 证书、缓存策略、源请求策略、响应标头策略、CloudFront Functions 及其键值存储、Lambda@Edge 函数及其依赖的 DynamoDB/SQS 和 IAM 角色、字段级加密、实时日志配置、WAF Web ACL、S3 日志存储桶、S3 源站及 OAC/OAI。资源少可手工创建,多则推荐 API/SDK 程序化迁移。

迁移备用域名时有哪些限制和注意事项?

主要限制和注意事项包括:不能使用通配符迁移 Apex 域名(如 example.com),需联系 AWS Support 处理;需要准备 SNI 列表中包含通配符域名的 SSL/TLS 证书;无需为通配符域名配置 DNS;迁移过程涉及多次分配更新,需等待每次部署完成;无法提前验证迁移正确性,建议先用测试域名验证;目标分配和源分配无法共享缓存,迁移后可能阶段性产生较多回源流量。

CloudFront 备用域名跨账号迁移的具体步骤是什么?

迁移分为 5 个步骤:1. 在目标账号创建 CloudFront 分配,但不配置备用域名;2. 检查目标分配配置无误后,添加通配符域名(如 *.example.com)为备用域名并安装自定义 SSL/TLS 证书;3. 删除源 CloudFront 分配的备用域名,CDN 流量自动迁移到目标分配,如有异常及时回退;4. 将业务域名的 DNS 解析指向目标 CloudFront 分配;5. 待 DNS 完全生效后,将目标分配的备用域名从通配符域名修改为业务域名。

迁移过程中如果出现业务异常,如何回退?

如果 CDN 业务流量迁移到目标分配后出现异常,可通过 UpdateDistribution API 将源 CloudFront 分配的 Aliases 修改回原来的值(即重新添加被删除的备用域名),即可快速回退。注意:如果已执行完步骤 5(将目标分配的备用域名改为业务域名),则只能发起一个新的反向迁移操作,不再有快速回退的机会。

为什么迁移时不能使用通配符迁移 Apex 域名?如何处理?

因为通配符域 *.example.com 是 Apex 域(如 example.com)的子域,以 Apex 域名为目标的请求无法被传送到通配符域名。如果您需要迁移的备用域名是 Apex 域名,请联系 AWS Support 团队,请求他们验证您拥有该域,然后为您将该备用域名移动到新的 CloudFront 分配。

🏷️

标签

➡️

继续阅读