AWS推出Kinesis数据流AI成本优化Agent
译文 AI 逐段翻译
基于人工智能的Amazon Kinesis Data Streams成本优化代理
运行多个Amazon Kinesis Data Streams的客户常常难以估计在容量模式之间切换的成本影响。随着账户增长到数十或数百个流,手动审查每个流的Amazon CloudWatch指标,并比较预置、按需标准和按需优势之间的定价变得不切实际。团队通常停留在当前模式,不确定切换是否会节省或增加成本,导致潜在的节省未被量化。按需优势是一项账户级设置,可为某个AWS区域中的按需流解锁额外的功能和不同的定价结构。然而,如果没有清晰、数据驱动的比较,启用它的决定仍然难以证明其合理性。
在本文中,我们向您展示如何部署基于Amazon Bedrock构建的人工智能代理。该代理自动分析您账户中的每个Kinesis数据流,并比较所有三种容量模式之间的成本。它会准确告诉您哪些流应切换到按需模式,以及您的账户是否有资格获得按需优势定价,所有这些都按每日或每周计划进行,无需人工干预。正如我们在Kinesis按需优势节省60%以上的流式处理成本中所展示的,选择正确的模式可以节省超过60%的流式处理成本。该代理自动为您执行该分析。
什么是Kinesis模式优化器代理?
该Kinesis模式优化器代理是一个开源的、无服务器的解决方案,使用Amazon Bedrock AgentCore(一个可大规模构建、连接和优化代理的平台,支持任何框架或模型)。该代理自主分析您的Kinesis数据流使用情况。它收集区域内每个流7天的Amazon CloudWatch指标,并发现增强扇出(EFO)消费者。然后,它计算三向成本比较(按需标准、按需优势、预置),并生成每流建议以及账户级按需优势评估。
该代理强烈倾向于按需模式,因其操作简单(自动扩展、无需容量规划、无限制风险)。
结果以可视HTML报告和机器可读的JSON格式存储在Amazon Simple Storage Service(Amazon S3)中。
架构
该解决方案使用以下架构:

图1:Kinesis模式优化器代理的架构
架构流程包括以下步骤:
- Amazon EventBridge Schedule按您配置的节奏(每日、每周或自定义cron)触发调度程序Lambda(一个AWS Lambda函数)。
- 调度程序Lambda调用Amazon Bedrock AgentCore框架,指示其分析流并生成报告。
- Amazon Bedrock AgentCore Gateway(由Claude Sonnet驱动的Amazon Bedrock AgentCore的一项功能)解释请求,并将其路由到工具Lambda公开的适当模型上下文协议(MCP)工具。
- Kinesis数据流– 列出区域中的流,描述每个流(分片数量、模式、保留期),并发现每个流的增强扇出消费者。
- CloudWatch– 拉取每个流7天的指标(IncomingBytes、OutgoingBytes、限制事件),并计算三向成本比较。
- Amazon S3– 生成每流建议和账户级优势评估,然后存储最终的HTML和JSON报告。
Amazon Bedrock AgentCore框架总结发现并将其返回给调用者。整个堆栈使用AWS Cloud Development Kit(AWS CDK)部署,只需一个cdk deploy命令。
前提条件
开始之前,请确保您具备以下条件:
- AWS CDK –
npm install -g aws-cdk。 - Python 3.12+。
- aws-cdk-lib >= 2.251.0 – 用于AgentCore L2构造。
- AWS命令行界面(AWS CLI)配置了用于部署所需资源的凭据。
- Amazon Bedrock模型访问 – 确认您能访问目标区域中的Claude Sonnet 4.5(或您选择的模型)。在Amazon Bedrock控制台的模型访问下检查。
演练
在以下部分中,您将部署Kinesis数据流模式优化器代理,并针对您的Kinesis流进行测试。
步骤1:克隆仓库
git clone https://github.com/aws-samples/sample-kinesis-optimizer-agent.git
cd sample-kinesis-optimizer-agent步骤2:安装CDK依赖项
cd infra
pip install -r requirements.txt步骤3:设置目标区域
堆栈部署到AWS_DEFAULT_REGION中设置的任何区域。在运行任何CDK命令之前设置它:
# Linux/macOS
export AWS_DEFAULT_REGION=us-east-1
# Windows PowerShell
$env:AWS_DEFAULT_REGION="us-east-1"步骤4:引导CDK(每个账户/区域首次)
cdk bootstrap aws://<ACCOUNT_ID>/<REGION>步骤5:部署
cdk deploy可选地自定义计划存储桶名称:
# Weekly instead of daily
cdk deploy --parameters ReportSchedule="rate(7 days)"
# Custom bucket name
cdk deploy --parameters ReportBucketName=amzn-s3-demo-bucket步骤6:测试代理
您可以使用AWS CLI测试代理:
aws bedrock-agentcore invoke-harness \
--harness-arn <HARNESS_ARN> \
--runtime-session-id $(uuidgen) \
--messages '[{"role":"user","content":[{"text":"Generate an optimization report"}]}]' \
--region us-east-1步骤7:查看报告
报告存储在Amazon S3中,位置为:
s3:// amzn-s3-demo-bucket/kinesis-optimization-reports/YYYY/MM/DD/HHMMSS-<report-id>.html
s3:// amzn-s3-demo-bucket/kinesis-optimization-reports/YYYY/MM/DD/HHMMSS-<report-id>.jsonHTML报告包括一个带有优先级指示器的每流操作表、详细的成本明细以及账户级优势建议。

图2:带有每流操作表的示例HTML报告

图3:示例报告输出中的账户级按需优势建议
多区域部署
该代理是区域特定的。部署到某个区域时,仅分析该区域中的流。要覆盖多个区域,请更改环境变量并重复部署:
export AWS_DEFAULT_REGION=eu-west-1
cdk bootstrap aws://<ACCOUNT_ID>/eu-west-1
cdk deploy每个部署都是独立的,具有自己的代理、Amazon S3存储桶和计划。
清理
要从区域中移除堆栈:
cd infra
cdk destroy注意: Amazon S3存储桶具有RemovalPolicy.RETAIN设置,不会随堆栈删除。如果您不再需要报告,请手动删除它。
结论
在这篇文章中,您部署了一个由AI驱动的代理,该代理自主分析您的Amazon Kinesis数据流,并为每个流推荐最佳容量模式。该代理减轻了跨数十或数百个流审查CloudWatch指标的人工工作量,并按定期计划生成可行的、成本意识的建议。
通过从手动容量审查转向自主、定期优化,您获得三个关键好处。首先,通过识别应该切换模式的流,您可以降低流处理成本。其次,通过捕捉供应不足的流在其影响性能之前,您减轻了节流风险。第三,您将团队从重复性运维工作中解放出来。所有这些都可以通过一次cdk deploy实现。
要开始使用,请克隆sample-kinesis-optimizer-agent仓库并立即部署到您的账户中。