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

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

架构概述

架构图

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

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

image2
注意

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

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

  1. 一种分布式负载测试器 API,它利用 Amazon API Gateway 来调用解决方案的微服务(AWS Lambda 函数)。

  2. 微服务提供了用于管理测试数据和运行测试的业务逻辑。

  3. 这些微服务与亚马逊简单存储服务 (Amazon S3)、Amazon DynamoD B 和 AWS Step Fun ctions 交互,为测试场景的详细信息和结果提供存储空间并运行测试场景。

  4. 部署了亚马逊虚拟私有云(亚马逊 VPC)网络拓扑,其中包含在 A WS Fargate 上运行的该解决方案的亚马逊弹性容器服务 (Amazon ECS) 容器。

  5. 这些容器包括 AmazonLinux(安装了 blazemeter 负载测试框架的)符合开放容器倡议 (OCI) 的容器镜像,该镜像用于生成用于测试应用程序性能的负载。 Taurus/Blazemeter 是一个开源测试自动化框架。容器镜像由 AWS 托管在亚马逊弹性容器注册表 (Amazon ECR) 公共存储库中。有关 ECR 镜像存储库的更多信息,请参阅容器镜像自定义

  6. AWS Amplify 提供支持的网络控制台部署到为静态虚拟主机配置的 Amazon S3 存储桶中。

  7. Amazon CloudFront 提供对解决方案网站存储桶内容的安全公开访问权限。

  8. 在初始配置期间,此解决方案还会创建默认的解决方案管理员角色(IAM 角色),并向客户指定的用户电子邮件地址发送访问邀请。

  9. A mazon Cognito 用户池管理用户对控制台和分布式负载测试器 API 的访问权限。

  10. 部署此解决方案后,您可以使用 Web 控制台创建定义一系列任务的测试场景。

  11. 微服务使用此测试场景在指定区域的 AWS Fargate 任务上运行 Amazon ECS。

  12. 除了将结果存储在 Amazon S3 和 DynamoDB 中,测试完成后,输出还会记录在亚马逊中。 CloudWatch

  13. 如果您选择实时数据选项,则该解决方案将在测试期间将 AWS Fargate 任务的 Amazon CloudWatch 日志发送到 Lambda 函数,适用于运行测试的每个区域。

  14. 然后,Lambda 函数将数据发布到部署主堆栈所在区域的 AWS IoT Core 中的相应主题。Web 控制台订阅了该主题,当测试在 Web 控制台中运行时,您可以看到数据。