View a markdown version of this page

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

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

架构概述

架构图

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

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

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

AWS CloudFormation 资源是基于 AWS Cloud Development Kit (AWS CDK) 结构创建的。

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

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

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

  3. (Headless 部署选项)未部署任何公共前端。该解决方案将 Web 控制台作为可下载的 ZIP 文件提供到私有 Amazon S3 存储桶中。控制台用户可以从自托管 Web 服务器访问控制台。

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

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

  6. 微服务与 Amazon S3、Ama z on DynamoDB EventBridge 和亚马逊交互以存储测试场景详细信息并管理测试计划。当您将测试安排在将来的某个时间或重复运行的时间间隔运行时,微服务会创建一个 EventBridge 调度程序计划,在计划的时间调用微服务。

  7. 要运行测试,微服务会调用 AWS Step Function s,后者负责协调测试的执行。

  8. EventBridge 规则将 Amazon ECS 任务和 Step Functions 失败事件路由到故障处理程序 Lambda 函数。

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

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

  11. 负载测试容器使用安装了 Ta ur us 测试自动化框架的 Amazon Linux 2023 基础映像。Taurus 会执行你的 jMeter、K6、Locust 或单个 HTTP 端点测试。有关如何配置每个测试框架的详细信息,请参阅测试框架配置。ALB + ECS 选项将使用虚拟主机容器。容器镜像由 AWS 托管在亚马逊弹性容器注册表 (Amazon ECR) 公共存储库中。

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

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

  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 会验证用户的 Cognito 身份验证令牌,以确保对 MCP 服务器的授权访问。

  17. 成功进行身份验证后, AgentCore Gateway 会将 MCP 工具请求转发给 DLT MCP 服务器 Lambda 函数。Lambda 函数将结构化数据返回给 Gatewa AgentCore y,网关将其发送回 MCP 客户端进行 AI-assisted 分析和见解。

  18. Lambda 函数处理请求并查询相应的 AWS 资源(DynamoDB 表、S3 存储桶或 CloudWatch 日志),以检索请求的负载测试数据。