使用AWS GA提升互联网流量性能

如果您提供游戏、媒体、移动或金融等应用程序,则需要一致的、低延迟的用户体验。AWS Global Accelerator通过提高客户机和运行在AWS上的应用程序之间的internet流量的性能,帮助您实现更低的延迟。它使用AWS全球网络将TCP或UDP通信定向到离客户机最近的AWS区域中的健康应用程序端点:通过Anycast方式将客户端的流量路由到最近的AWS边缘位置,然后通过AWS全球网络将其路由到最近的区域端点。

GA的原理和特性

Global Accelerator为每个加速器提供两个静态IP地址。这些IP地址是任意发送的,并通过AWS边缘位置在全球进行广播。使用您配置的加速器,Global Accelerator将TCP或UDP流量路由到应用程序端点(如Amazon EC2实例、应用程序负载均衡器、网络负载均衡器或弹性IP地址),并改善用户流量的延迟、抖动、包丢失和吞吐量性能。可以使用速度比较工具https://speedtest.globalaccelerator.aws/从您自己的位置测试使用GA的性能优势。

衡量绩效的一个流行方法是通过生产量——即在一段时间内可以传输多少数据。无论您是为API调用、文件上传还是IP语音调用提供服务,吞吐量的大小都会影响用户的体验。如今,Global Accelerator引入了一项改进,通过在边缘终止TCP,自动提供额外的吞吐量改进。通常,TCP连接是通过internet上的客户机和AWS区域中的应用程序端点之间的三路握手(即三条消息)建立的。因此,客户端离端点越远,初始连接设置花费的时间就越长。由于TCP在边缘终止,Global Accelerator通过在客户机和距离客户机最近的AWS边缘位置之间建立TCP连接,减少了初始设置时间。几乎同时,在AWS区域的边缘位置和应用程序端点之间建立第二个TCP连接。由于这个过程,客户端从全局加速器边缘位置获得更快的响应,并且从边缘位置到该区域的应用程序端点的上游连接被优化为在AWS全球网络上运行。作为该特性的一部分实现的优化包括:

  • 巨型帧的支持。通过在AWS区域的AWS边缘位置和应用端点之间启用巨型帧,Global Accelerator能够在每个数据包中多发送和接收6倍的数据(有效负载)。巨型帧支持减少了客户端和应用程序之间传输数据所需的总时间。
  • 大型接收端窗口和TCP缓冲区。通过调优AWS edge基础设施上的接收端窗口和TCP缓冲区设置,Global Accelerator能够在更短的时间内接收和缓冲来自应用程序的大量数据。这为您的客户端提供了更快的下载速度,现在直接从AWS边缘获取数据的时间缩短了。
  • 大的拥塞窗口。通过在AWS全球网络上传输数据,global Accelerator可以扩展TCP拥塞窗口,以发送比通常通过公共internet可能发送的更多的数据。

性能测试与结论

为了评估这个特性对性能的影响,我们测量了从世界各地的客户端到运行在AWS US East (N. Virginia)地区Amazon EC2上的端点的吞吐量。我们比较了通过TCP终止的Global Accelerator传输数据时的吞吐量和通过公共internet传输数据时的吞吐量。使用Global Accelerator的结果是吞吐量性能提高了60%。在所有情况下,使用Global Accelerator获得的吞吐量性能收益取决于许多因素,包括传输的数据量以及最后一英里网络中的连接的质量、容量和距离。

下面的图表显示了澳大利亚(图1)和美国(图2)的互联网客户端从AWS US East (N. Virginia)地区下载100KB的对象所花费的时间。图中比较了通过Global Accelerator(蓝色线)下载对象和通过公共internet从EC2直接下载对象(绿色线)的情况——包括启用TCP在边缘终止之前和之后。通过第三方工具进行的实际用户测量显示,对于通过带有TCP终止的Global Accelerator从AWS美国东部(北弗吉尼亚)地区下载对象的澳大利亚客户来说,实际用户测量结果提高了60%左右。美国的客户改善了40%以上。

https://d2908q01vomqb2.cloudfront.net/5b384ce32d8cdef02bc3a139d4cac0a22bb029e8/2020/03/12/Screen-Shot-2020-03-12-at-3.10.05-PM.png

https://d2908q01vomqb2.cloudfront.net/5b384ce32d8cdef02bc3a139d4cac0a22bb029e8/2020/03/12/Screen-Shot-2020-03-12-at-3.10.24-PM.png

我们注意到,在使用数字体验监控平台千人来衡量性能时,也出现了类似的结果。下面的图表(图3)显示,当一个100 KB的测试文件通过Global Accelerator从AWS EU(爱尔兰)地区下载时,非洲、美洲、亚洲和欧洲的40个客户端通过TCP终端通过Global Accelerator从AWS EU(爱尔兰)地区下载时,平均下载吞吐量提高了2.5倍以上。

https://d2908q01vomqb2.cloudfront.net/5b384ce32d8cdef02bc3a139d4cac0a22bb029e8/2020/03/12/Screen-Shot-2020-03-12-at-3.10.32-PM.png

GA的使用场景

为单一区域应用程序提升延迟和可用性

通过提升本地和全球流量的网络路由,AWS Global Accelerator 帮助缩小单一区域部署和多个区域部署之间的差距。如果导向您应用程序的单一区域的本地和全球流量留在了公共互联网,则可能会受到互联网拥塞和本地中断的负面影响。使用 Global Accelerator,您的用户流量会离开互联网,通过 80+ 全球边缘站点进入 Amazon 的私有全球网络,再导向您的应用程序源。AWS Global Accelerator 可以快速设置,并将流量性能提升高达 60%。

多区域应用程序的简化和弹性流量路由

随着您的应用程序架构发展,复杂性也随之增大,有面向客户的更长 IP 列表以及更细微的流量路由逻辑。AWS Global Accelerator 通过为您提供两个来自全球分布式边缘站点的静态任播 IP 地址来解决这一问题,为您的应用程序提供单个切入点,无论其部署了多少个 AWS 区域。这样,您可以增加或删除源、可用区域或区域,而无需降低应用程序可用性。对您的流量路由进行手动管理,或在控制台用终端节点流量调拨和权重进行管理。如果您的应用程序终端节点存在故障或可用性问题,AWS Global Accelerator 将在几秒钟内自动把您的新连接重新导向运行正常的终端节点。

用于在线游戏的增强型玩家服务器联网

发展和维持您的在线多玩家游戏社区需要顺畅和具有竞争力的游戏体验。使用 AWS Global Accelerator 沿私有 AWS 网络路由玩家流量,可以提升您的玩家在线体验,降低游戏内延迟、抖动和数据包丢失。支持常用引擎流量加速,如 Unity 和 Unreal。AWS 边缘站点将玩家流量传入并路由至 15+ AWS Global Accelerator 支持区域中任何游戏服务器,提供更快的加载时间和更稳定的游戏内体验。无需打断高可用性 AWS 网络的服务,即可处理您的大型流量高峰,如游戏启动和游戏内活动。

在 AWS 上运行服务通信和 IP 语音

AWS Global Accelerator 通过减少呼叫设置时间的方式来提升您的实时通信 (RTC),同时增加呼叫成功比率和质量。在电信行业,您为应用程序提供延迟敏感的 RTC,包括 IP 语音以及跨多种设备的视频会议。为了支持该功能,使用 Global Accelerator 可允许您运行应用程序协议,如会话启动、沿 AWS 网络的实时和 WebRTC。直接连接至您的流量暂存控制器,以减少网络依赖关系和跳转的数量。这可以在互联网高峰时段和呼叫流量高峰时段稳定您的 RTC 发起人流量。

GA定价

使用 AWS Global Accelerator,您需要为预置的每台加速器以及流经加速器的主方向流量付费。

在账户中运行加速器时,每小时(不足 1 小时按 1 小时算)收取 0.025 USD,直到加速器被删除。

除了对在 AWS 区域中运行的应用程序终端节点收取正常的 EC2 数据传出费用之外,还会收取数据传输附加费。

数据传输附加费如下:

参考文献:

https://aws.amazon.com/cn/blogs/networking-and-content-delivery/achieve-up-to-60-better-performance-for-internet-traffic-with-aws-global-accelerator/

https://aws.amazon.com/cn/blogs/networking-and-content-delivery/improving-real-time-communication-rtc-client-experience-with-aws-global-accelerator/

https://aws.amazon.com/cn/global-accelerator

如需进一步协助或服务,请留言,泰岳云服务会提供自动化工具及专业服务。