[SEO 副标题]
本指南演示如何在 AWS 上构建每秒可处理数百万条请求的实时机器学习(ML)推理解决方案。通过在 Amazon Elastic Container Service(Amazon ECS)上托管解决方案的机器学习模型,并使用网络负载均衡器将请求路由到机器学习服务器,您可以实现低延迟并支持实时和程序化广告中常见的高吞吐量推理要求。本指南提供了应用机器学习进行广告请求筛选的示例,并演示了如何构建可以模拟发送到机器学习推理服务器的基于 OpenRTB 的高吞吐量请求的客户端应用程序。
请注意:[免责声明]
架构图
在此架构图中,步骤 A-B 涉及数据科学家。步骤 1-4 涉及发布者
步骤 A
数据科学家使用 Amazon SageMaker 来实验、构建和训练机器学习模型。模型准备就绪后,将保存到 Amazon Simple Storage Service(Amazon S3)中。
步骤 B
经过训练的模型由 Amazon Elastic Container Service(Amazon ECS)模型推理任务读取和加载。该模型以 Thrift 端点的形式托管。采用 OpenRTB 格式(用于实时出价)的传入请求用于推理。
第 1 步
发布者向供应方平台(SSP)竞价服务器发出广告投放请求。
第 2 步
竞价服务器(客户端应用程序)作为 Amazon ECS 应用程序托管在 SSP 的虚拟私有云(VPC)中。竞价请求基于 OpenRTB 格式发出出价请求。
第 3 步
网络负载均衡器将传入的请求分发到基于 Amazon Elastic Compute Cloud(Amazon EC2)的 Amazon ECS 集群,该集群托管广告筛选机器学习服务器。广告筛选机器学习服务器的目的是推断每个出价请求的出价可能性,筛选需要发送到竞价请求的需求合作伙伴,并优化每次出价的费用。
第 4 步
广告筛选机器学习服务器作为容器托管在基于 Amazon EC2 的 Amazon ECS 集群中。Amazon EC2 Auto Scaling 组可维持跨多个可用区(AZ)运行的所需数量的 Amazon EC2 实例,以保持高可用性。
Amazon ECS 部署并维护 Amazon ECS 任务的所需容量,以便托管机器学习容器。每项任务都会从 Amazon S3 存储桶加载广告筛选模型,并将其作为基于 Thrift 协议的端点托管。这有助于实现基于低延迟的通信,并且任务的多个实例支持大量的并发请求。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
Amazon CloudWatch 监控 Amazon ECS 集群的性能(包括 CPU 和内存)以及通过网络负载均衡器发送的传入请求。您的 CloudWatch 控制面板(作为 AWS CloudFormation 脚本的一部分而创建)可全面查看传入请求的数量及其相关的延迟。通过使用 CloudWatch 来可视化和分析性能和延迟,您可以更好地识别应用程序中的任何瓶颈。
-
安全性
通过将所有 AWS Identity and Access Management(IAM)策略的范围缩小到服务正常运行时所需的最低权限,您可以限制对资源进行未经授权的访问。
-
可靠性
Amazon ECS 集群运行维持 EC2 实例所需容量的服务定义。如果其中一个实例不可用,则新实例将自动启动并注册到 Amazon ECS 集群中作为运行状况良好的目标,以接收网络负载均衡器路由的传入请求。
-
性能效率
与 Amazon ECS 通信的网络负载均衡器支持适合此使用案例的低毫秒延迟和高吞吐量。
-
成本优化
Amazon EC2 Auto Scaling 组允许您在所需的容量下运行应用程序,同时为基于负载的扩缩提供动态支持。自动扩缩会根据负载和扩缩策略来增加或减少基础设施。这可以帮助您控制与运行应用程序相关的成本。
-
可持续性
基于 Amazon EC2 的 Amazon ECS 集群允许您为特定工作负载选择适当的硬件类型和配置,以便高效运行。因此,您可以最大限度地提高利用率并避免过度预置资源。本指南专为低延迟和高性能的模型推理工作负载而设计,因此相应的 EC2 实例类型由 AWS Graviton3 提供支持。该服务消耗的能源最多可减少 60%,性能与同类 EC2 实例相同,从而帮助您减少碳足迹。
实施资源
提供了在 AWS 账户中进行实验和使用的详细指南。构建指南的每个阶段(包括部署、使用和清理)都将被检查,以便为部署做好准备。
示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。