View a markdown version of this page

架構概觀 - AWS 上的分散式負載測試

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

架構概觀

架構圖

使用預設參數部署此解決方案會在您的 AWS 帳戶中部署下列元件。

AWS 架構上的分散式負載測試

AWS 架構上的分散式負載測試
注意

AWS CloudFormation 資源是從 AWS 雲端開發套件 (AWS CDK) 建構模組建立。

使用 AWS CloudFormation 範本部署之解決方案元件的高階程序流程如下:

  1. (CloudFront + S3 託管部署選項) 主控台使用者透過 Amazon CloudFront 存取 Web 主控台,Amazon CloudFront 為託管在 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的 AWS Amplify 應用程式提供服務。

  2. (ALB + ECS Fargate 託管部署選項) 主控台使用者透過 Application Load Balancer 存取 Web 主控台,它會將流量路由到 Amazon Virtual Private Cloud (Amazon VPC) 內在 AWS Fargate 上的 Amazon Elastic Container Service (Amazon ECS) 上執行的 AWS Amplify 應用程式。 Amazon Virtual Private Cloud

  3. (無頭部署選項) 未部署任何公有前端。解決方案在私有 Amazon S3 儲存貯體中提供可下載 ZIP 的 Web 主控台。主控台使用者可以從自我託管 Web 伺服器存取主控台。

  4. 在初始組態期間,解決方案會在 Amazon Cognito 使用者集區中建立預設管理員使用者,並將帳戶建立電子郵件傳送至您提供的電子郵件地址。Cognito 使用者集區可管理使用者對 Web 主控台、REST API、CLI 和 MCP Server 的存取。

  5. Amazon API Gateway 會叫用 AWS Lambda 微服務,提供商業邏輯來管理測試資料並執行測試。

  6. 微服務會與 Amazon S3、Amazon DynamoDBAmazon EventBridge 互動,以存放測試案例詳細資訊和管理測試排程。當您排程測試在未來的時間或週期性間隔執行時,微服務會建立 EventBridge 排程器排程,在排程時間調用微服務。

  7. 若要執行測試,微服務會叫用 AWS Step Functions,以協調測試執行。

  8. EventBridge 規則會將 Amazon ECS 任務和 Step Functions 失敗事件路由至失敗處理常式 Lambda 函數。

  9. Step Functions 會在您選取的每個 AWS 區域中,於 AWS Fargate 上啟動 Amazon Elastic Container Service (Amazon ECS) 任務。

  10. 每個任務都會在所選區域中的 Amazon Virtual Private Cloud (Amazon VPC) 內執行。

  11. 負載測試容器使用已安裝 Taurus 測試自動化架構的 Amazon Linux 2023 基礎映像。Taurus 會執行您的 JMeter、K6、Locust 或 Single HTTP 端點測試。如需如何佈建每個測試架構的詳細資訊,請參閱測試架構佈建。ALB + ECS 選項將使用 Web 主機容器。容器映像由 AWS 在 Amazon Elastic Container Registry (Amazon ECR) 公有儲存庫中託管。

  12. 每個 Fargate 任務都會將其每個區域測試結果寫入 Amazon S3,並將日誌發送到 Amazon CloudWatch。所有區域完成後,微服務會在 DynamoDB 中彙總結果。

  13. 如果您啟用即時資料選項,Lambda 函數會在測試期間從 Fargate 任務接收 CloudWatch 日誌。

  14. Lambda 函數會將日誌發佈到部署主要堆疊的區域中 AWS IoT Core 中的主題。Web 主控台會訂閱 主題,以在測試執行時顯示即時指標。

  15. (選用 CLI 存取) 使用者可以在本機安裝 DLT 命令列界面 (CLI),以從其終端機與解決方案互動。CLI 透過 Cognito 驗證並直接呼叫 REST API,啟用指令碼化自動化和 CI/CD 整合。

    注意

    下列步驟說明 AI 輔助負載測試分析的選用 MCP 伺服器整合。只有在解決方案部署期間選取 MCP Server 選項時,才會部署此元件。

  16. MCP 用戶端 (AI 開發工具) 會連線至 Amazon Bedrock AgentCore Gateway 端點,以透過模型內容通訊協定存取分散式負載測試解決方案的資料。AgentCore Gateway 驗證使用者的 Cognito 身分驗證字符,以確保授權存取 MCP 伺服器。

  17. 身分驗證成功後,AgentCore Gateway 會將 MCP 工具請求轉送至 DLT MCP Server Lambda 函數。Lambda 函數會將結構化資料傳回 AgentCore Gateway,並將其傳回 MCP 用戶端以進行 AI 輔助分析和洞察。

  18. Lambda 函數會處理請求並查詢適當的 AWS 資源 (DynamoDB 資料表、S3 儲存貯體或 CloudWatch 日誌),以擷取請求的負載測試資料。