亚马逊AWS官方博客

Amazon CloudFront 部署小指南(十二):Amazon CloudFront Anycast

亚马逊云科技近期推出了 CloudFront Anycast 静态 IP 功能,为客户提供了一组专用的静态 IP 地址,用于连接全球所有 CloudFront 边缘节点。我很高兴与大家分享这项新功能的详细信息、使用场景以及部署指南。在本文中,我们将深入探讨这项新功能的使用场景、部署方法以及实际应用。

什么是 CloudFront Anycast?

一直以来,CloudFront 基于 Domain Name System (DNS) 动态地选择 IP 地址来为客户端提供服务。而 Anycast 静态 IP 则为客户提供了一个专用的静态 IP 地址列表,用于其工作负载。这种方法使用了边界网关协议(BGP)Anycast 网络寻址技术,其中多个节点共享相同的 IP 地址。在 CloudFront 的实现中,这允许多个边缘位置(PoP)宣告相同的 IP 地址,从而使流量能够路由到最近或最佳的可用服务器。

Anycast 是一种网络寻址和路由方法,它允许多个网络节点共享同一个 IP 地址。在 CloudFront 的实现中,多个 PoP 会广播相同的 IP 地址,客户端的请求会根据网络拓扑和 BGP 路由协议被路由到最近或最佳的可用服务器。CloudFront Anycast 静态 IP 列表目前包含 21 个 IPv4 地址,这些地址专用于您的 AWS 账户,并分布在不同的地理区域。只要保持订阅,IP地址列表保持不变。这种设置为客户提供了显著的优势,特别是在需要固定 IP 地址的场景中。

Figure 1. BGP Anycast 原理

使用场景

1. 零费率(Zero-rating)合作

零费率是 CloudFront Anycast 的主要应用场景之一。它涉及客户与第三方服务提供商(如移动运营商)之间的合作,其中提供商的流量对客户的最终用户免费或不计入数据限额。固定的 21 个 IP 地址使得与 ISP 的合作变得更加可行,相比之前的可变 IP 场景,大大简化了实施过程。

例如,一家大型在线教育平台可以与移动运营商合作,将其 CloudFront Anycast IP 列表加入零费率计划。这样,使用移动运营商网络的学生在访问该平台的教育内容时,就不会消耗自己的移动数据流量。这不仅降低了学生的使用成本,还提高了平台的访问率和用户粘性。

2. 企业防火墙白名单

对于需要严格控制外部访问的企业应用,CloudFront Anycast 提供了一个理想的解决方案。固定的IP地址列表使得在企业防火墙中设置白名单变得简单高效。这对于金融、医疗等需要高度安全性的行业尤其重要。

例如,一家大型银行使用 CloudFront 来分发其在线银行应用。通过使用 Anycast 静态 IP,银行可以精确控制哪些 IP 地址可以与其核心系统通信,大大降低了安全风险。同时,这也简化了合规性审计过程,因为所有外部连接都来自预定义的 IP 地址集。

如何部署 CloudFront Anycast

部署 CloudFront Anycast 需要遵循以下步骤:

  1. 请求配额增加
  2. 创建 Anycast IP 列表
  3. 将列表与分配关联

1. 请求配额增加

首先,您需要联系 AWS 支持团队请求增加“每个 AWS 账户的 Anycast 静态 IP 列表数量”配额。默认情况下,所有账户的此配额值为 0。

步骤:

  1. 登录 AWS 管理控制台
  2. 导航到 CloudFront 控制台
  3. 在左侧导航栏中选择“静态 IP”
  4. 点击”请求”链接以联系 CloudFront 支持工程团队

Figure 2. 联系 CloudFront 支持工程团队

Figure 3. 请求提高配额

Figure 4. 输入配额值

  1. 提供您的工作负载信息(请求字节/秒和请求/秒)

AWS 支持团队将审核您的请求,这个过程可能需要一定的时间。

2. 创建 Anycast IP 列表

一旦您的请求获得批准,您就可以创建 Anycast 静态 IP 列表了。

步骤:

  1. 在 CloudFront 控制台的“静态 IP”页面,选择“创建 Anycast 静态 IP 列表”

Figure 5. 创建 Anycast 静态 IP 列表

  1. 为列表命名
  2. 查看服务条款和定价信息
  3. 提交请求

Figure 6. 为列表命名

创建完成后,您可以在静态 IP 列表详情页面查看分配的 IP 地址。

3. 将列表与分配关联

最后一步是将 Anycast IP 列表与您的 CloudFront 分配关联。

Figure 7. Anycast IP 列表与 CloudFront 分配关联

对于现有的分配:

  1. 在分配详情页面的“常规”标签下,选择“编辑”
  2. 在“Anycast 静态 IP 列表”下拉菜单中选择您创建的列表
  3. 保存更改

实际应用与最佳实践

零费率设置

要实施零费率,请按照以下步骤操作:

  1. 获取您的 Anycast IP 列表
  2. 与目标 ISP 合作,提供这些 IP 地址
  3. ISP 将这些 IP 添加到其零费率计划中
  4. 监控流量模式,确保正确实施

注意:零费率协议可能因不同的 ISP 而异,请务必与他们密切合作以确保正确实施。

IP 地址白名单

在企业环境中设置 IP 白名单:

  1. 获取您的 Anycast IP 列表
  2. 在企业防火墙中添加这些 IP 地址

注意事项和限制

在实施 CloudFront Anycast 时,请注意以下几点:

  • 目前 Anycast 静态 IP 仅支持 IPv4。使用 Anycast 时需要关闭 IPv6。
  • 您的应用程序仍然需要使用 SNI 与 CloudFront Anycast IP 建立 TLS 连接。并且 CloudFront 专用 IP 地址无法与 CloudFront Anycast 同时使用,具体操作请参考开发人员指南
  • 必须选择“使用所有边缘位置”以确保最佳性能。
  • 一个 Anycast IP 列表可以与 100 个 CloudFront 分配关联,可透過工单提高。
  • 除了标准的 CloudFront 费用之外,您需要为每个 Anycast IP 列表额外支付月度订阅费,具体费用请参考 CloudFront 定价页
  • CloudFront Anycast 静态 IP 功能在除了北京区域和宁夏区域之外的所有亚马逊云科技区域可用。

总结

CloudFront Anycast 静态 IP 为企业提供了一种强大的工具,用于简化内容分发网络的管理,同时提高性能和安全性。无论是实施零费率计划、优化企业防火墙设置,这项功能都展现出了巨大的潜力。

通过本文介绍的部署步骤和最佳实践,您应该能够开始探索如何将 CloudFront Anycast 集成到您的基础设施中。记住,每个用例都是独特的,可能需要根据具体情况进行调整。我鼓励您与 AWS 解决方案架构师合作,以充分利用这一强大功能,并为您的应用程序带来最大价值。

随着数字世界的不断发展,像 CloudFront Anycast 这样的创新将继续塑造我们构建和交付在线内容的方式。通过拥抱这些技术,我们可以创造出更快速、更可靠、更安全的数字体验,满足当今全球用户的需求。

本篇作者

Rex Law

亚马逊云科技解决方案架构师,位于香港,负责游戏及初创企业行业客户在亚马逊云上的解决方案架构设计。在加入亚马逊云科技之前,在游戏行业工作超过6年,对容器、网络、DevOps等方向具有丰富的经验。