本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
架构概述
架构图
使用默认参数部署此解决方案将在您的 AWS 账户中部署以下组件。
在 AWS 架构上进行分布式负载测试
注意
AWS CloudFormation 资源是基于 AWS Cloud Development Kit (AWS CDK) 结构创建的。
使用 AWS CloudFormation 模板部署的解决方案组件的高级流程如下:
-
(CloudFront + S3 托管部署选项)控制台用户通过亚马逊访问 Web 控制台 CloudFront,亚马逊为托管在亚马逊
简单存储服务 (Amazon S3) 存储 桶中的 AWS A mplify 应用程序提供服务。 -
(ALB + ECS Fargate 托管部署选项)控制台用户通过应用程序负载均衡器访问 Web 控制台,该负载均衡器
将流量路由到亚马逊虚拟私有云 (亚马逊 VPC)内在 AWS Fargate 上的亚马逊弹性容器 服务(亚马逊 EC S )上运行的 AWS Amplify 应用程序。 -
(Headless 部署选项)未部署任何公共前端。该解决方案将 Web 控制台作为可下载的 ZIP 文件提供到私有 Amazon S3 存储桶中。控制台用户可以从自托管 Web 服务器访问控制台。
-
在初始配置期间,该解决方案会在 Amazon Cognito
用户池中创建默认管理员用户,并向您提供的电子邮件地址发送一封账户创建电子邮件。Cognito 用户池管理用户对 Web 控制台、REST API、CLI 和 MCP 服务器的访问权限。 -
Amazon API Gateway
调用 AWS Lambda 微服务,这些微服务提供管理测试数据和运行测试的业务逻辑。 -
微服务与 Amazon S3、Ama z
on DynamoDB EventBridge 和亚马逊交互, 以存储测试场景详细信息并管理测试计划。当您将测试安排在将来的某个时间或重复运行的时间间隔运行时,微服务会创建一个 EventBridge 调度程序计划,在计划的时间调用微服务。 -
要运行测试,微服务会调用 AWS Step Function
s,后者负责协调测试的执行。 -
EventBridge 规则将 Amazon ECS 任务和 Step Functions 失败事件路由到故障处理程序 Lambda 函数。
-
Step Functions 在你选择的每个 AWS 区域的 AWS Fargate
上启动亚马逊弹性容器服务 (Amazon ECS) 任务。 -
每项任务都在所选区域的亚马逊虚拟私有云
(Amazon VPC)中运行。 -
负载测试容器使用安装了 Ta ur
us 测试自动化框架的 Amazon Linux 2023 基础映像。Taurus 会执行你的 jMeter、K6、Locust 或单个 HTTP 端点测试。有关如何配置每个测试框架的详细信息,请参阅测试框架配置。ALB + ECS 选项将使用虚拟主机容器。容器镜像由 AWS 托管在亚马逊弹性容器注册表 (Amazon ECR) 公共存储库中。 -
每个 Fargate 任务都会将其每个区域的测试结果写入 Amazon S3,并向亚马逊发送日志。 CloudWatch
当所有区域都完成后,微服务将结果汇总到 DynamoDB 中。 -
如果您启用实时数据选项,Lambda 函数将在测试期间接收来自 Far CloudWatch gate 任务的日志。
-
Lambda 函数将日志发布到部署主堆栈的区域 AWS IoT Core
中的一个主题。Web 控制台订阅主题以在测试运行时显示实时指标。 -
(可选 CLI 访问权限)用户可以在本地安装 DLT 命令行界面 (CLI),以便从其终端与解决方案进行交互。CLI 通过 Cognito 进行身份验证并直接调用 REST API,从而实现脚本化自动化和集成。 CI/CD
注意
以下步骤描述了用于 AI-assisted 负载测试分析的可选 MCP 服务器集成。只有在解决方案部署期间选择 MCP 服务器选项,才会部署此组件。
-
MCP 客户端(AI 开发工具)连接到 A mazon Bedrock AgentCore Gateway
终端节点,通过模型上下文协议访问分布式负载测试解决方案的数据。 AgentCore Gateway 会验证用户的 Cognito 身份验证令牌,以确保对 MCP 服务器的授权访问。 -
成功进行身份验证后, AgentCore Gateway 会将 MCP 工具请求转发给 DLT MCP 服务器 Lambda 函数。Lambda 函数将结构化数据返回给 Gatewa AgentCore y,网关将其发送回 MCP 客户端进行 AI-assisted 分析和见解。
-
Lambda 函数处理请求并查询相应的 AWS 资源(DynamoDB 表、S3 存储桶或 CloudWatch 日志),以检索请求的负载测试数据。