View a markdown version of this page

架构概述 - AWS 上的分布式负载测试

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

架构概述

架构图

使用默认参数部署此解决方案将在您的 AWS 账户中部署以下组件。

在 AWS 架构上进行分布式负载测试

在 AWS 架构上进行分布式负载测试
注意

AWS CloudFormation 资源由 AWS 云开发套件 (AWS CDK) 结构创建。

使用 AWS CloudFormation 模板部署的解决方案组件的高级流程如下:

  1. (CloudFront + S3 托管部署选项)控制台用户通过亚马逊访问网络控制台 CloudFront,亚马逊为托管在亚马逊简单存储服务 (Amazon S3) 存储桶中的 AWS Amplify 应用程序提供服务。

  2. (ALB + ECS Fargate 托管部署选项)控制台用户通过应用程序负载均衡器访问网络控制台,该负载均衡器将流量路由到在亚马逊虚拟私有云(亚马逊 VPC)内 AWS Fargate 上的亚马逊弹性容器服务(亚马逊 ECS)上运行的 AWS Amplify 应用程序。

  3. (无头部署选项)未部署公共前端。该解决方案以私有 Amazon S3 存储桶中可下载的 ZIP 格式提供 Web 控制台。控制台用户可以从自托管的 Web 服务器访问控制台。

  4. 在初始配置期间,该解决方案在 Amazon Cognito 用户池中创建默认管理员用户,并向您提供的电子邮件地址发送账户创建电子邮件。Cognito 用户池管理用户对 Web 控制台、REST API、CLI 和 MCP 服务器的访问权限。

  5. 亚马逊 API Gateway 调用 AWS Lambda 微服务,这些微服务为管理测试数据和运行测试提供业务逻辑。

  6. 微服务与亚马逊 S3、亚马逊 DynamoDB 和亚马逊进行交互, EventBridge以存储测试场景详细信息并管理测试计划。当您计划在将来的某个时间或定期运行测试时,微服务会创建一个 EventBridge Scheduler 计划,在预定时间调用微服务。

  7. 要运行测试,微服务会调用 AWS Step Funct ions 来协调测试的执行。

  8. EventBridge 规则将 Amazon ECS 任务和步骤函数故障事件路由到故障处理器 Lambda 函数。

  9. Step Functions 在您选择的每个 AWS 区域的 AWS Fargate 上启动亚马逊弹性容器服务 (亚马逊 ECS) 任务。

  10. 每项任务都在选定区域的亚马逊虚拟私有云 (亚马逊 VPC) 内运行。

  11. 负载测试容器使用 Amazon Linux 2023 基础镜像,任务使用的镜像取决于测试的流量形态模式。在标准模式下,镜像安装了 Taurus 测试自动化框架。Taurus 使用您在控制台中设置的负载参数执行 JMeter、k6、Locust 或 Simple HTTP Endpoint 测试。在原生模式下,每个框架的专用映像直接针对您的脚本运行该框架,解决方案中没有 Taurus 和负载参数。有关模式的详细信息,请参阅交通形态模式。要查看如何配置每个测试框架,请参阅测试框架配置。ALB + ECS 选项将使用虚拟主机容器。容器镜像由 AWS 托管在亚马逊弹性容器注册表 (Amazon ECR) 公共存储库中。

  12. 每个 Fargate 任务都会将其每个区域的测试结果写入亚马逊 S3,并向亚马逊发送日志。 CloudWatch 所有区域完成后,微服务将结果汇总到 DynamoDB 中。

  13. 如果您启用实时数据选项,Lambda 函数将在测试期间接收来自 Fargate 任务的 CloudWatch 日志。

  14. Lambda 函数将日志发布到部署主堆栈区域的 AWS IoT Core 中的一个主题。Web 控制台订阅该主题以在测试运行时显示实时指标。

  15. (可选 CLI 访问权限)用户可以在本地安装 DLT 命令行界面 (CLI),以便从其终端与解决方案进行交互。CLI 通过 Cognito 进行身份验证并直接调用 REST API,从而实现脚本自动化和集成。 CI/CD

    注意

    以下步骤描述了用于 AI-assisted 负载测试分析的可选 MCP 服务器集成。只有在解决方案部署期间选择 “MCP 服务器” 选项时,才会部署此组件。

  16. MCP 客户端(AI 开发工具)连接到 A mazon Bedrock AgentCore Gateway 终端节点,通过模型上下文协议访问分布式负载测试解决方案的数据。 AgentCore Gateway 会验证用户的 Amazon Cognito 身份验证令牌,以验证对 MCP 服务器的授权访问。

  17. 成功进行身份验证后, AgentCore Gateway 会将 MCP 工具请求转发给 DLT MCP 服务器 Lambda 函数。

  18. Lambda 函数调用现有的 DLT REST API 来检索所请求的负载测试数据。然后,它将结构化数据返回到 AgentCore Gateway,Gateway将其发送回MCP客户端,以进行 AI-assisted 分析和见解。