本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
架构概述
架构图
使用默认参数部署此解决方案将在您的 AWS 账户中部署以下组件。
在 AWS 架构上进行分布式负载测试
注意
AWS CloudFormation 资源由 AWS 云开发套件 (AWS CDK) 结构创建。
使用 AWS CloudFormation 模板部署的解决方案组件的高级流程如下:
-
(CloudFront + S3 托管部署选项)控制台用户通过亚马逊访问网络控制台 CloudFront
,亚马逊为托管在亚马逊简单存储服务 (Amazon S3) 存储桶中的 AWS Amplify 应用程序提供服务。 -
(ALB + ECS Fargate 托管部署选项)控制台用户通过应用程序负载均衡器访问网络控制台,该负载均衡器
将流量路由到在亚马逊虚拟私有云(亚马逊 VPC)内 AWS Fargate 上的亚马逊弹性容器服务 (亚马逊 ECS)上运行 的 AWS Amplify 应用程序。 -
(无头部署选项)未部署公共前端。该解决方案以私有 Amazon S3 存储桶中可下载的 ZIP 格式提供 Web 控制台。控制台用户可以从自托管的 Web 服务器访问控制台。
-
在初始配置期间,该解决方案在 Amazon Cognito
用户池中创建默认管理员用户,并向您提供的电子邮件地址发送账户创建电子邮件。Cognito 用户池管理用户对 Web 控制台、REST API、CLI 和 MCP 服务器的访问权限。 -
亚马逊 API Gateway
调用 AWS Lambda 微服务,这些微服务为管理测试数据和运行测试提供业务逻辑。 -
微服务与亚马逊 S3、亚马逊 DynamoDB 和亚马逊进行交互
, EventBridge 以存储测试场景详细信息并管理测试计划。当您计划在将来的某个时间或定期运行测试时,微服务会创建一个 EventBridge Scheduler 计划,在预定时间调用微服务。 -
要运行测试,微服务会调用 AWS Step Funct
ions 来协调测试的执行。 -
EventBridge 规则将 Amazon ECS 任务和步骤函数故障事件路由到故障处理器 Lambda 函数。
-
Step Functions 在您选择的每个 AWS 区域
的 AWS Fargate 上启动亚马逊弹性容器服务 (亚马逊 ECS) 任务。 -
每项任务都在选定区域的亚马逊虚拟私有云
(亚马逊 VPC) 内运行。 -
负载测试容器使用 Amazon Linux 2023
基础镜像,任务使用的镜像取决于测试的流量形态模式。在标准模式下,镜像安装了 Taurus 测试自动化框架。Taurus 使用您在控制台中设置的负载参数执行 JMeter、k6、Locust 或 Simple HTTP Endpoint 测试。在原生模式下,每个框架的专用映像直接针对您的脚本运行该框架,解决方案中没有 Taurus 和负载参数。有关模式的详细信息,请参阅交通形态模式。要查看如何配置每个测试框架,请参阅测试框架配置。ALB + ECS 选项将使用虚拟主机容器。容器镜像由 AWS 托管在亚马逊弹性容器注册表 (Amazon ECR) 公共存储库中。 -
每个 Fargate 任务都会将其每个区域的测试结果写入亚马逊 S3,并向亚马逊发送日志。 CloudWatch
所有区域完成后,微服务将结果汇总到 DynamoDB 中。 -
如果您启用实时数据选项,Lambda 函数将在测试期间接收来自 Fargate 任务的 CloudWatch 日志。
-
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 会验证用户的 Amazon Cognito 身份验证令牌,以验证对 MCP 服务器的授权访问。 -
成功进行身份验证后, AgentCore Gateway 会将 MCP 工具请求转发给 DLT MCP 服务器 Lambda 函数。
-
Lambda 函数调用现有的 DLT REST API 来检索所请求的负载测试数据。然后,它将结构化数据返回到 AgentCore Gateway,Gateway将其发送回MCP客户端,以进行 AI-assisted 分析和见解。