CloudFront 和全球加速器

在现代互联网应用程序中,如何提升内容分发性能、优化全球用户体验,同时确保高可靠性和安全性,是开发者和架构师必须关注的核心问题。AWS 提供了两项强大的全球服务——CloudFrontGlobal Accelerator,它们通过不同的工作机制满足了多样化的需求。从内容分发网络(CDN)到跨区域的快速流量路由,这两项服务在优化性能和应对灾难恢复方面展现出独特的优势。

  • 全球服务。
  • AWS CloudFront 是一个CDN(内容分发网络)
  • 提高读取性能,内容缓存在边缘,减少原点的负载。
  • 全球 216 个接入点(边缘位置)。
  • DDoS 保护(因为是全球性的)、与 Shield、AWS Web 应用程序防火墙集成。
  • 边缘位置位于 VPC 之外,因此必须配置原点的 SG 以允许来自所有边缘位置的公共 IP 列表的入站请求。
  • 支持HTTP/RTMP协议(不支持UDP协议)。
  • 地理限制功能。
  • 提高可缓存内容(如图像和视频)和动态内容(如 API 加速和动态站点交付)的性能。
  • 要在 CloudFront 级别阻止特定 IP,请在 CloudFront 上部署 WAF。
  • 支持服务器名称指示 (SNI)以允许 SSL 流量到多个域。

CloudFront – 起源

  • 用于分发文件并将其缓存在边缘位置。
  • 源访问身份 (OAl) 或源访问控制 (OAC)允许 S3 存储桶仅由 CloudFront 访问
  • OAC 正在取代 OIA(原始访问标识)。
  • CloudFront 可用作入口(将文件上传到 S3)。
  • 需要通过边缘位置的公共 IP 在 HTTP 上公开访问
    • EC2 实例
    • 紧急负载平衡
    • S3 网站(可能包含客户端脚本)
    • 本地后端

CloudFront – 地理限制

  • 您可以限制谁可以访问您的分发。
    • 允许列表:仅当您的用户位于批准国家/地区列表中的国家/地区之一时才允许您的用户访问您的内容。
    • 阻止列表:如果您的用户位于被禁国家/地区列表中的国家/地区,则阻止他们访问您的内容。
  • “国家”是使用第三方 Geo-IP 数据库确定的。
  • 用例:版权法控制内容访问。

CloudFront 与 S3 跨区域复制

  • 全球边缘网络
      • 文件缓存的 TTL(可能是一天)
      • 非常适合必须在任何地方都可用的静态内容)
  • 必须为要进行复制的每个区域进行设置
      • 文件几乎实时更新
      • 只读
      • 非常适合需要在少数地区以低延迟提供的动态内容
  • CloudFront 是一个 CDN,用于缓存世界各地的内容。而 S3 跨区域复制实际上是将整个存储桶复制到另一个区域。

CloudFront – 定价

  • CloudFront 边缘站点遍布世界各地。
  • 每个边缘位置的数据输出成本各不相同。

CloudFront – 价格类别

  • 您可以减少边缘位置的数量以降低成本。
  • 三个价格等级:
    • 价格等级全部:所有地区 – 最佳表现
    • 价格等级 200:大多数地区,但不包括最昂贵的地区。
    • 价格等级 100:仅最便宜的地区。
  • 如果您更新后端原点,CloudFront 并不知道这一点,并且仅在 TTL 过期后才会获取刷新的内容。
  • 但是,您可以通过执行 CloudFront 失效来强制整个或部分缓存刷新(从而绕过 TTL)
  • 您可以使所有文件 (*) 或特殊路径 (/images/*) 无效。

  • 单播IP:一台服务器拥有一个IP地址。
  • 任播 IP:所有服务器都拥有相同的 IP 地址,客户端被路由到最近的服务器。
  • 全球服务。
  • 提高应用程序对全球用户的可用性
  • 利用私有 AWS 网络将请求路由到应用程序(更快)
    • 支持全球分布的应用程序端点
    • 不在边缘位置缓存任何内容
    • 端点可以是公共的也可以是私有的(可以跨越多个区域)
      • 弹性 IP
      • EC2 实例
      • 白蛋白
      • 国家法律顾问委员会
    • 蓝绿部署中使用端点权重流量拨号
    • 不受客户端 DNS 缓存的影响,因为 2 个任播 IP 是静态的(流量拨号和端点权重更改在几秒钟内生效
    • 适合
      • 非 HTTP 用例:
        • 游戏 (UDP)
        • 物联网 (MQTT)
        • IP 语音 (VoIP)
      • 需要静态 IP 地址或快速区域故障转移的 HTTP 用例
  • 为您的应用程序在全球范围内创建2 个任播公共 IP(静态) 。来自这些 IP 的客户端的请求将自动路由到最近的边缘站点。边缘站点通过私有 AWS 网络将流量发送到您的应用程序。
  • 流量拨号用于控制定向到端点组(部署应用程序的 AWS 区域)的流量百分比
  • 端点权重用于确定定向到端点组中端点的流量比例
  • Global Accelerator为应用程序执行健康检查
  • 不到 1 分钟即可对不健康端点进行故障转移
  • 客户端只需将 2 个静态 IP 列入白名单
  • 可以与AWS Shield 集成以实现 DDoS保护

  • 它们都使用 AWS 全球网络及其遍布全球的边缘站点。
  • 这两种服务都与 AWS Shield 集成以提供 DDoS 防护。
  • CloudFront

    • 提高可缓存内容(如图像和视频)的性能。
    • 动态内容(例如 API 加速和动态站点交付)。
    • 内容在边缘提供。
  • AWS 全球加速器

    • 提高 TCP 或 UDP 上各种应用程序的性能。
    • 将边缘数据包代理到在一个或多个 AWS 区域中运行的应用程序。
    • 非常适合非 HTTP 用例,例如游戏(UDP)、物联网(MQTT)或 IP 语音。
    • 适用于需要静态 IP 地址的 HTTP 用例。
    • 适用于需要确定性、快速区域故障转移的 HTTP 用例。

无论是需要高效缓存静态内容的 CloudFront,还是需要快速区域故障转移和静态 IP 地址支持的 Global Accelerator,AWS 的全球基础设施为各种场景提供了灵活、可靠的解决方案。结合这些服务,可以显著提高应用程序的性能、扩展能力和全球可用性,从而满足现代业务对低延迟、高可用的严格要求。

更多探索

Tell me what you need