Amazon CloudFront 新增支持 HTTP/3功能

2c5094d7f47feda3e91e59d4f1adb065.png

553823780e7d06bfcd8ebd8f1e8b5536.gif

点击上方入口立即【自由构建 探索无限】

一起共赴年度科技盛宴!

前言

Amazon CloudFront 是一种内容分发网络(CDN)服务,这是一种由互连的服务器组成的网络,由于在地理位置上更接近用户,因此能够更快地到达他们的计算机。Amazon CloudFront 通过 410 多个遍布全球且支持自动网络映射和智能路由的入网点(POP)交付数据,从而降低延迟。

借助 Amazon CloudFront,内容、API 请求和响应或应用程序可以通过超文本传输协议(HTTP)版本 1.1 和传输层安全性协议(TLS)最新版本 2.0 交付,以加密和保护用户客户端和 CloudFront 之间的通信。

今天,我们将为 Amazon CloudFront 添加对 HTTP 版本 3.0(HTTP/3)的支持。HTTP/3 使用 QUIC,这是一种基于用户数据报协议的流多路复用安全传输协议,它结合了现有传输控制协议(TCP)、TLS 和 HTTP/2 的功能并在此基础上进行了改进。现在,您可以在全球所有边缘站点的所有新的和现有的 CloudFront 分配中为最终用户连接启用 HTTP/3,使用此功能无需额外付费。

Amazon CloudFront:

https://aws.amazon.com/cn/cloudfront/

超文本传输协议:

https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

2.0 版相关文章:

https://aws.amazon.com/cn/blogs/aws/new-http2-support-for-cloudfront/

QUIC:

https://en.wikipedia.org/wiki/QUIC

什么是 HTTP/3?

HTTP/3 使用 QUIC,克服了 TCP 的许多局限性,并将相应优势赋予 HTTP。在使用现有的 HTTP/2 over TCP 和 TLS 时,TCP 需要通过握手才能在客户端和服务器之间建立会话,TLS 也需要通过自己的握手来确保会话安全。每次握手都必须在客户端和服务器之间进行完整的往返,从网络角度来看,当客户端和服务器相距遥远时,这可能需要很长时间。但是,QUIC 只需要一次握手即可建立安全会话。

c405648c568a864b0ae94e3308b39545.jpeg

此外,TCP 还会由无数不同的中间设备 ,例如防火墙和网络地址转(NAT)设备了解和操作。QUIC 使用 UDP 作为其基础,允许数据包在企业网络或公共网络中流动,并且完全加密,包括元数据,这使得中间系统无法检查或操作其详细信息。

HTTP/3 流被独立地多路复用,以消除请求和响应之间的队头阻塞。这可以实现,因为流多路复用发生在传输层,而不是应用程序层(例如 HTTP/2 over TCP)。这使 Web 应用程序能够更快地运行,尤其是在速度较慢的网络上和对延迟敏感的连接上。

队头阻塞相关文章:

https://en.wikipedia.org/wiki/Head-of-line_blocking

HTTP/3 给 CloudFront 带来的优势

我们的客户总是希望为最终用户提供速度更快、响应更敏捷、安全性更高的网络体验。HTTP/3 为所有 CloudFront 客户提供了更快的连接速度、流多路复用、客户端连接迁移,以及减少握手过程中的往返次数以降低错误率等优势。

基于 UDP 的 QUIC 连接支持连接重用,连接 ID 独立于 IP 地址/端口元组,因此用户不会遭遇中断或受到影响。如果客户在网络连通性较低的国家/地区运营,会发现其应用程序的性能得到提高。

CloudFront 的 HTTP/3 支持在 s2n-quic 的基础上提供了增强的安全性,s2n-quic 是添加到我们的亚马逊云科技加密开源库集中的 QUIC 协议的开源 Rust 实施,两者都非常注重效率和性能。

如果您在 CloudFront 分配中启用 HTTP/3,则用户可以向 CloudFront 边缘站点发出 HTTP/3 查看器请求。在边缘站点之外,我们在 Amazon Cloud 中拥有高度可靠的网络,CloudFront 将继续使用 HTTP/1.1 获取来源。因此,您无需在服务器端进行任何更改即可通过 HTTP/3 访问您的内容。

5612c2f4122723e544c98b21ebf84719.png

对于某些类型的应用程序(例如需要 HTTP 客户端库来发出 HTTP 请求的应用程序),客户可能需要将其 HTTP 客户端库更新到支持 HTTP/3 的版本。但是,如果由于某种操作原因客户端无法建立 QUIC 连接,可以回退到另一个受支持的协议,例如 HTTP/1.1 或 HTTP/2。

s2n-quic 相关文章:

https://aws.amazon.com/cn/blogs/security/introducing-s2n-quic-open-source-protocol-rust/

如何启用 HTTP/3

要启用 HTTP/3 连接,您可以通过 CloudFront 控制台编辑分配配置。您可以在现有分配中的 Supported HTTP versions(支持的 HTTP 版本)中选择 HTTP/3,也可以在不对原始内容进行任何更改的情况下创建新分配。您可以使用 UpdateDistribution API 或使用 CloudFormation 模板

3aaf70d8360176688f2910b3b619f25d.png

部署分配后,您可以连接支持 HTTP/3 的浏览器,例如最新版本的 Google Chrome, Mozilla Firefox, Microsoft Edge 以及 Apple Safari(手动打开后可连接)。要了解有关 Web 浏览器支持的更多信息,请参阅 Can I Use – HTTP/3 Support(我是否可以使用 – HTTP/3 支持)页面。

通过浏览器中的 Web 开发人员工具,您可以看到从 CloudFront 加载页面时发出的 HTTP/3 请求。下图是一个 Mozilla Firefox 示例。

209b567be6f24b2bbc91d1bf6c3cacdc.jpeg

您也可以向 Curl 添加 HTTP/3 支持,然后通过以下命令行进行测试:

Bash
$ curl --http3 -i https://d1e0fmnut9xxxxx.cloudfront.net/speed.html
HTTP/3 200
content-type: text/html
content-length: 9286
date: Fri, 05 Aug 2022 15:49:52 GMT
last-modified: Thu, 28 Jul 2022 00:50:38 GMT
etag: "d928997023f6479537940324aeddabb3"
x-amz-version-id: mdUmFuUfVaSHPseoVPRoOKGuUkzWeUhK
accept-ranges: bytes
server: AmazonS3
vary: Origin
x-cache: Miss from cloudfront
via: 1.1 6e4f43c5af08f740d02d21f990dfbe80.cloudfront.net (CloudFront)
x-amz-cf-pop: ICN54-C2
alt-svc: h3=":443"; ma=86400
x-amz-cf-id: 6fy8rrUrtqDMrgoc7iJ73kzzXzHz7LQDg73R0lez7_nEXa3h9uAlCQ==

*左滑查看更多

CloudFront 控制台:

https://signin.aws.amazon.com/signin?redirect_uri=https%3A%2F%2Fus-east-1.console.aws.amazon.com%2Fcloudfront%2Fv3%2Fhome%3Fregion%3Dus-east-1%26state%3DhashArgs%2523%252Fdistributions%26isauthcode%3Dtrue&client_id=arn%3Aaws%3Aiam%3A%3A015428540659%3Auser%2Fcloudfront&forceMobileApp=0&code_challenge=ucFXlxTRBUSiLDDt6nL29y11nrKSeekK-5FwLzKSEvU&code_challenge_method=SHA-256

UpdateDistribution API :

https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html

CloudFormation 模板:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-httpversion

Can I Use – HTTP/3 Support:

https://caniuse.com/http3

向 Curl 添加 HTTP/3 支持:

https://github.com/curl/curl/blob/master/docs/HTTP3.md

客户案例

包括 Snap, Zillow, AC3/Movember, Audible, Skyscanner 在内的多家亚马逊云科技客户已经在其 CloudFront 分配中启用 HTTP/3。以下是他们的一些看法:

Snap Inc

Snap Inc 是一家社交媒体公司,该公司推出了 Snapchat 应用程序,该应用程序提供了一种快速而有趣的方式,可以与世界各地不同社区的好友建立联系。在亚马逊云科技上,Snap 现在支持超过 3.06 亿 Snapchat 用户每天发送超过 54 亿个 Snap,与之前的架构相比,延迟降低了 20%。

Snapchat 软件工程经理 Mahmoud Ragab 说:

“Snapchat 帮助全球数百万人与朋友分享精彩时刻。Snapchat 竭力成为最快的沟通方式。这就是我们一直与 Amazon Cloudfront 合作的原因,因为我们能够利用 Cloudfront 上的 QUIC 实现快速、高性能、低延迟的内容交付。

它在发送和接收内容方面具有显著的优势,尤其是在存在有损信号和间歇性连接的网络中。QUIC 提供的改进 [例如零往返时间(0-RTT)连接设置和改进的拥塞控制] 使接收到第一个字节所需的时间(TTFB)平均减少了 10%,同时降低了总体错误率。较低的网络延迟和较少的错误使 Snapchat 更适合世界各地的用户。

通过对 QUIC 的早期访问,我们能够进行实验并快速迭代和改进服务器端实施,以及优化客户端和服务器之间的集成。随着 QUIC 的广泛应用,两家公司将继续携手合作。”

Zillow

Zillow 是一家房地产科技公司,通过透明和几乎无缝的端到端服务,为客户提供销售、购买、租赁和融资方面的按需体验。自 2015 年以来,Zillow 通过使用 Amazon S3 和 Amazon CloudFront 提高了其成像系统的可用性

Zillow 首席云架构师 Craig Link 说:

“对于 Amazon CloudFront 推出对 HTTP/3 的支持,我们期待万分。在 CloudFront 上启用 HTTP/3 是无缝过渡,我们的综合测试和临时使用都可继续顺利进行。”

AC3 

AC3 是一家位于澳大利亚的 Amazon Managed Services 合作伙伴,一直为我们的客户 Movember Foundation 提供支持,该基金会是男性健康领域领先的慈善机构之一。在 21 个国家/地区经营一家处理捐款、数据、活动和本地化网站的国际慈善机构可能会带来一些技术挑战。Movember 诞生于云,利用亚马逊云科技技术采用了新的工作模型,确保造就了一个灵活的 IT 平台,并加快了创新速度。

AC3 超大规模云负责人 Greg Cockburn 说:

“AC3 很高兴能与他们的长期合作伙伴 Movember 合作,在其服务于 Web 和 API 前端的 CloudFront 分配上启用 HTTP3,并对初步结果中展示的性能改进感到倍受鼓舞。”

Snap Inc:

https://www.snap.com/zh-Hans

支持超过 3.06 亿 Snapchat 用户:

https://aws.amazon.com/cn/solutions/case-studies/innovators/snap/

Zillow:

https://www.zillow.com/z/corp/about/

提高其成像系统的可用性文章:

https://aws.amazon.com/cn/solutions/case-studies/zillow/

AC3:

https://partners.amazonaws.com/partners/001E000000U0VKtIAN/AC3

利用亚马逊云科技技术文章:

https://www.aboutamazon.com.au/news/aws/putting-cloud-skills-to-work-for-a-cause

现已推出

Amazon CloudFront 对 HTTP/3 的支持现已在全球所有 400 多个 CloudFront 边缘站点提供,使用此功能无需额外付费。要了解更多信息,请参阅 Amazon CloudFront 开发人员指南。请将反馈发送至 Amazon re:Post for Amazon CloudFront 或通过平时的 Amazon Support 联系人发送反馈。

Amazon CloudFront 开发人员指南:

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesSupportedHTTPVersions

Amazon re:Post for Amazon CloudFront :

https://repost.aws/tags/TA8pHF0m5aQdawzT2gwPcVYQ/amazon-cloud-front

bd9cd29c68ecf66cf94fa60c035b57e2.jpeg

点击上方【立即报名】

直通大咖云集的亚马逊云科技中国峰会!

1e7ed49fd1770d506a8dc780e6340971.gif

f7f5a23e4436e75edbce263442df6402.gif

听说,点完下面4个按钮

就不会碰到bug了!

e5fdc0baf6eab59436b0c5089507e6a2.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值