[SEO 副标题]
本指南展示了如何使用 AWS 完全托管的 Redis 服务 Amazon ElastiCache for Redis 和开源存储框架 Feast 构建超低延迟的在线特征存放区。该在线存储使用机器学习(ML)实现实时数据访问和亚毫秒级延迟。本指南涵盖的示例应用场景基于一个实时贷款审批应用程序,该应用程序可根据客户的信用评分模型进行在线预测。
请注意:[免责声明]
架构图
[架构图描述]
第 1 步
设置数据基础架构,以部署 Amazon Redshift、包含邮政编码和信用记录 parquet 文件的 Amazon Simple Storage Service(Amazon S3)存储桶,以及 AWS Identity and Access Management(IAM)角色。此外,为 Amazon Redshift 设置访问 Amazon S3 的策略,并创建一个可以查询 parquet 文件的 Amazon Redshift 表。
第 2 步
部署 Feast 基础设施。
第 3 步
创建特征存放区存储库,将 Amazon ElastiCache 配置为在线特征存放区,将 Amazon Redshift 配置为离线特征存放区。创建特征定义。
第 4 步
使用 Feast SDK 将特征定义和底层基础设施注册到 Feast 注册表中。
第 5 步
使用来自数据的特征和标签以及来自 Feast 的特征生成训练数据。来自 Feast 的特征将丰富历史数据,并创建一个特征数据框。
第 6 步
使用训练数据集和模型训练器训练机器学习模型。
第 7 步
将批量特征摄取到 ElastiCache 在线特征存放区。这些在线特征用于使用我们经过训练的模型进行在线预测。
第 8 步
从 ElastiCache 中读取特征向量以进行预测。
第 9 步
使用 AWS Key Management Service(AWS KMS)加密 ElastiCache 静态数据。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
Amazon CloudWatch 通过提供全面的监控、日志记录和自动化功能,增强了 ElastiCache 的卓越运营能力。它能够跟踪 ElastiCache 指标,如 CPU 利用率、内存使用率、网络流量、命令统计数据和缓存命中/未命中率,从而实现主动性能管理。CloudWatch 日志集成支持集中式日志分析,简化了故障排除过程。CloudWatch 警报会调用自动化操作,例如在流量高峰期间扩展 ElastiCache 集群以获得最佳性能,同时在空闲期间降低成本。
-
安全性
通过将 IAM 策略限定在所需的最低权限范围内,可以限制对资源进行未经授权的访问。KMS 可控制用于保护数据的加密密钥,消除密钥管理开销。IAM 策略的权限范围仅限于授予 ElastiCache 必要的运营权限。ElastiCache 提供传输中加密和静态加密,而 KMS 允许您创建、管理和控制对用于数据保护的客户管理加密密钥的访问权限。
-
可靠性
ElastiCache 自动扩缩组可根据利用率指标动态调整 Redis 集群容量(分片和副本),从而确保可靠的性能。CloudWatch 可持续监控关键指标并发出警报,以主动发现和缓解问题。自动扩缩功能可通过启动更多节点来处理流量峰值,防止过载并保持性能稳定。节点可分布在不同的可用区,以增强冗余能力,防止中断。
-
性能效率
ElastiCache 自动扩缩功能可根据需求动态预置和调整 Redis 集群的规模,以优化资源利用率。在流量高峰期间,自动扩缩功能会启动更多节点来处理增加的负载,从而防止过载并保持低延迟。
ElastiCache 的内存中架构、数据结构、事务、脚本和集群等功能针对高吞吐量和低延迟运营进行了优化,使其成为性能关键型工作负载的理想选择。水平扩缩和只读副本进一步提高了吞吐量和响应时间。
Redis 集群模式将数据分片到多个节点,并分配内存和工作负载,以改善并行化和线性吞吐量扩展。分片可以克服单节点限制,从而最大限度地提高内存利用率,而在分片上本地执行命令可以最大限度地减少网络跃点数。
-
成本优化
自动扩缩可根据利用率指标自动调整集群容量,从而优化 ElastiCache 成本。在低流量时段,它通过终止不必要的节点进行横向缩减,防止过度预置并减少运营费用。相反,在流量高峰期间,它会启动更多节点,这有助于在不产生过多成本的情况下确保有足够的容量。这种弹性消除了手动管理容量的需要,有助于确保集群的大小适合工作负载的需求,仅运行所需的资源。
-
可持续性
ElastiCache 可根据应用程序需求调整缓存大小,提高基础设施效率,防止资源浪费。
多个 AWS 区域提供了可用性,实现了在离最终用户更近的地方部署 ElastiCache 集群,从而减少了网络延迟和数据传输,并能够通过减少网络使用量来降低能耗和排放。
相关内容
使用 Amazon ElastiCache for Redis 构建超低延迟在线特征存放区以进行实时推理
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。