亚马逊云科技-HTTP API构建GenAI更好更便宜

亚马逊云科技-HTTP API构建GenAI更好更便宜

关键字: [yt, HTTP APIs, Http Api, Api Gateway, Lower Cost, Faster Response, Better Experience]

本文字数: 400, 阅读完需: 2 分钟

导读

亚马逊云科技无服务器领域的开发者代言人Eric Johnson在一场亚马逊云科技活动上发表了题为”HTTP API:构建API的更快、更低成本、更好的方式”的演讲。他阐述了亚马逊云科技新推出的HTTP API服务如何实现更快的API性能,在高百分位时延迟降低60%,成本比REST API低达71%,同时提供更佳的可用性,包括更简单的用户界面和私有集成、自定义域名、请求节流和有效负载格式更改等功能。演讲重点介绍了与REST API相比,HTTP API如何实现更快的响应时间、节省成本以及更易于开发和管理API,并概述了HTTP API和REST API在未来实现功能对等的路线图。

演讲精华

以下是小编为您整理的本次演讲的精华,共100字,阅读时间大约是0分钟。

在云计算时代,构建应用程序编程接口(API)已成为软件开发的核心任务之一。API通过抽象底层实现并仅暴露所需对象或操作,简化了编程,实现了客户端与服务之间的通信。传统架构中,客户端向API发出请求,API与后端服务(如计算或存储)交互,并向客户端返回响应。API网关服务可以在API层处理诸如路由、身份验证、节流、缓存和数据验证等逻辑,从而提供一致的接口并简化应用程序。

亚马逊云科技(亚马逊云科技)于2015年推出了API网关,这是一项完全托管的服务,使开发人员能够轻松创建、发布、维护、监控和保护任何规模的API。多年来,亚马逊云科技一直在努力使API网关更好地满足客户需求,如核心管理、Swagger导入、二进制数据支持、自定义错误响应、区域端点等。2018年,亚马逊云科技发布了WebSocket API,允许开发人员在API网关中使用WebSocket。2019年12月4日的re:re:Invent上,亚马逊云科技推出了HTTP API的测试版本,并于2020年3月12日正式发布。

在推出HTTP API之前,亚马逊云科技团队反思了过去构建REST API和WebSocket API的经验教训,评估了哪些做法行之有效,哪些需要改进,并认真倾听了客户反馈。最终,他们从头开始构建了HTTP API,目标是提供更快、更便宜和更好的API构建体验。

更快 作为开发人员,客户总是希望应用程序运行得更快、响应更迅速。在当今时代,如果网站没有立即响应,人们就会认为它已经失效并转向其他选择。HTTP API正是基于这一考虑而构建的,结果是在P99(99%的请求)情况下,延迟降低了60%。具体来说,99%的请求在经过HTTP API网关时,添加的总延迟(请求和响应的组合延迟)不会超过10毫秒。这使得HTTP API非常适合需要低延迟的应用场景,如实时数据处理、在线游戏等。

更便宜 在亚马逊云科技,节俭是一个重要原则。我们坚信要高效利用资源,保持低成本,并将这些成本节省传递给客户。让我们比较一下API网关的定价。在us-east-1区域,REST API的前3.33亿次请求收费为每百万次请求3.5美元,之后的费用逐步降低,直到200亿次请求时降至每百万次请求1.51美元。而HTTP API的前3亿次请求收费为每百万次请求1美元,超过3亿次请求后,费用进一步降低到每百万次请求0.9美元,显然更加经济实惠。

我们来看一些实际案例。如果每月有1亿次请求,使用REST API将花费350美元,而使用HTTP API只需100美元。如果是5亿次请求,使用REST API将花费1,750美元,而HTTP API只需500美元。如果是10亿次请求,使用REST API将花费3,500美元,而HTTP API只需1,000美元。因此,使用HTTP API可以节省高达71%的成本。对于需要处理大量API请求流量的应用程序,如电子商务网站、在线视频流媒体等,使用HTTP API可以带来显著的成本节省。

更好 除了更快和更便宜之外,HTTP API还提供了更好的体验。首先,它有一个更简单的用户界面,各种设置如路由、授权、集成等都很容易访问和理解。以CORS(跨源资源共享)设置为例,这是一个常见的安全挑战。由于配置CORS的复杂性,许多开发人员往往会将Access-Control-Allow-Origin设置为*,允许任何服务访问,并依赖自身的安全措施来防范入侵者。但是,每当有安全层可用时,最好就利用它。HTTP API通过简化CORS集成和配置,鼓励开发人员正确设置和使用CORS作为一层安全防护。

HTTP API在测试版本中就提供了与Amazon Lambda函数和HTTP URL的集成、自定义域名、JWT授权器、CORS配置、多阶段与自动部署选项、CloudWatch指标(可选详细指标)以及访问日志记录等功能。在正式发布时,HTTP API又增加了多项新功能。

私有集成 在非无服务器架构中,当使用EC2实例、Elastic Container Service(ECS)、Elastic Kubernetes Service、数据库等资源时,它们需要驻留在虚拟私有云(VPC)中,这是一层安全防护。过去,要使这些私有资源公开可访问,需要使用网络负载均衡器(NLB)或应用程序负载均衡器(ALB)。现在,HTTP API支持通过NLB或ALB与私有资源集成,这是客户高度期待的功能。

更进一步,HTTP API还支持通过Amazon Cloud Map与私有资源集成。Cloud Map是一项发现服务,允许注册实例。开发人员首先创建一个命名空间,作为逻辑上对应用程序资源的分组。然后,在命名空间下创建服务,代表为应用程序提供特定服务的资源逻辑组。最后,服务实例可以注册到相应的服务下。

在构建私有集成时,HTTP API可以使用Cloud Map中的服务实例。例如,有三个ECS集群资源注册为服务实例,两个是v2版本,一个是v1版本。如果直接将HTTP API指向这些实例,则客户端请求将通过循环方式转发到不同版本的集群。但如果只希望路由到v2版本,可以使用Cloud Map的服务属性进行过滤。每个实例都有一些自动传递的属性,开发人员也可以添加自定义属性,比如”version”属性值为”v2”或”v1”。然后在HTTP API的集成设置中,使用Cloud Map参数对”version”属性进行过滤,只路由到符合条件的实例。这种灵活的路由和版本控制对于需要进行蓝绿部署或渐进式发布的应用程序很有帮助。

无论使用NLB、ALB还是Cloud Map进行私有集成,都可以在高级设置中指定一个安全服务器名称,HTTP API将使用HTTPS与该服务器通信,提供额外的安全层。

自定义域名 在测试版中,HTTP API便支持自定义域名。但在正式版本中,亚马逊云科技进一步增强了这一功能,允许在同一自定义域名下混合使用REST API和HTTP API的端点。这一功能对于逐步迁移到HTTP API的应用程序而言,实属重要。举例来说,如果应用程序有90%的部分可以使用HTTP API,而剩余10%需要REST API的更复杂功能,那么可以在同一域名下将90%的端点指向HTTP API,将10%的端点指向REST API,从而实现成本优化。对于需要保持现有域名不变的传统应用程序,这一功能可以实现无缝迁移。

适当的请求节流对于维护API的健康状态至关重要。默认情况下,所有API在每个亚马逊云科技区域和账户中都有10,000次/秒的请求上限和5,000次/秒的burst上限,这是一个共享的请求池,账户中的所有API都在使用这个池。如果需要更高的限制,可以与亚马逊云科技协商进行自动提升。

HTTP API在请求节流方面提供了更多控制能力。首先,可以为每个阶段(stage)设置不同的节流限制。例如,可以将生产阶段的限制设置为8,000次/秒,而开发阶段设置为2,000次/秒,而无需在两者之间进行权衡。其次,HTTP API支持每个路由(路径和方法的组合)级别的节流限制。比如,对于一个URL缩短服务,可以将GET方法的限制设置得更高,因为这是最关键的客户端请求,而将POST方法的限制设置得更低,因为它主要用于管理员操作。根据应用程序的实际需求合理设置节流限制很重要,这可以防止突发流量对API造成过载,同时也能最大限度地利用资源。

在API网关中,开发人员可以为不同的阶段(如开发、生产等)设置阶段变量。这些变量不应该存储密码等敏感信息,而是用于存储一些简单的键值对数据,如API密钥或Lambda函数名称等。

阶段变量主要有两种用途。首先,它们会作为事件数据传递给后端集成(如Lambda函数)。其次,阶段变量可用于动态配置集成目标。例如,可以使用一个阶段变量来存储Lambda函数的ARN,而不是直接硬编码为”arn:亚马逊云科技:lambda:us-east-2:123456789012:function:my-function”。这样,当客户端请求进入不同的阶段时,就会调用对应阶段的Lambda函数。如果使用这种方式,需要在高阶设置中关闭”授权API网关调用Lambda函数”的选项,并提供一个具有相应权限的IAM角色,因为亚马逊云科技无法确定需要调用多少个Lambda函数。对于需要在不同环境中复用相同代码但调用不同资源的应用程序,阶段变量可以提供很大的灵活性。

为了优化有效载荷格式,HTTP API引入了V2事件格式。相比V1格式,V2格式更加简洁,减少了数据冗余,将头信息等数据进行了合并。亚马逊云科技提供了一个链接http://bit.ly/payloads,可以查看V1和V2格式的完整对比。

同时,HTTP API还简化了Lambda函数的响应格式。在V1格式中,Lambda函数需要返回状态码、响应体和头信息。而在V2格式中,只需返回响应体,HTTP API将根据Lambda函数的响应和核心设置自动构建适当的HTTP响应。但是,事件格式的版本必须在请求和响应中保持一致。对于希望简化Lambda函数代码的开发人员来说,V2格式可以带来更好的开发体验。

在测试阶段,HTTP API的区域支持受到限制。但在正式发布后,HTTP API已在支持API网关的所有亚马逊云科技区域开放,为全球范围内的客户提供服务。

对于是否使用HTTP API,亚马逊云科技提供了一些指导原则。如果应用程序需要WebSocket,则应使用WebSocket API。如果不需要WebSocket,则检查HTTP API是否满足功能需求。如果满足,就使用HTTP API;如果不满足,则使用REST API。

总的来说,如果HTTP API能够满足需求,那么它就是更好的选择,因为它更快、更便宜、更易于使用。但如果某些高阶功能暂时无法满足,可以先使用REST API。亚马逊云科技计划在未来实现两者的功能对等,并提供了从REST API迁移到HTTP API的工具,可以导入Swagger/OpenAPI文档。

HTTP API代表了亚马逊云科技在API网关领域的最新进展,通过全新设计和优化,为客户带来了显著的性能、成本和体验提升。它将为更多应用程序提供构建API的更佳选择,同时也反映了亚马逊云科技一如既往地倾听客户反馈、不断创新和改进的决心。

总结

亚马逊云科技最近推出了HTTP APIs,这是一种比现有REST APIs更快、更低成本、更好的构建API的方式。HTTP APIs在P99时延迟降低了60%,99%的请求的额外延迟不到10毫秒。与REST APIs相比,它们的成本也低达71%,前3亿次请求每百万次收费1美元,超过3亿次则每百万次收费0.9美元。HTTP APIs提供了更简单的用户界面、更易于配置CORS,以及通过网络负载均衡器、应用程序负载均衡器或亚马逊云科技Cloud Map访问VPC中资源的新功能,即私有集成。

其他关键特性包括支持自定义域名、与REST和HTTP APIs之间的交叉兼容性、每个阶段和每条路由的请求限流、用于动态配置的阶段变量,以及具有更简洁事件结构的新负载格式。虽然HTTP APIs目前可能无法满足所有功能需求,但亚马逊云科技计划与REST APIs实现功能相同,从而通过Swagger/OpenAPI导入功能实现无缝迁移。总的来说,HTTP APIs为构建API提供了一种可靠的替代方案,提供了更快的性能、更低的成本和更好的开发者体验。

随着亚马逊云科技不断增强HTTP APIs,它鼓励开发者评估HTTP APIs是否适合新项目,并考虑将现有应用程序迁移以利用它们提供的优势。凭借亚马逊云科技对客户反馈和持续改进的承诺,HTTP APIs代表了亚马逊云科技平台上API开发的一个重大进步。

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。亚马逊云科技致力于成为企业构建和应用生成式AI的首选,通过生成式AI技术栈,提供用于模型训练和推理的基础设施服务、构建生成式AI应用的大模型等工具、以及开箱即用的生成式AI应用。深耕本地、链接全球 – 在中国,亚马逊云科技通过安全、稳定、可信赖的云服务,助力中国企业加速数字化转型和创新,并深度参与全球化市场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值