Backend - AWS의 분산 로드 테스트

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Backend

백엔드는 테스트에 대한 로드를 생성하는 데 사용하는 컨테이너 이미지 파이프라인과 로드 테스트 엔진으로 구성됩니다. 프런트 엔드를 통해 백엔드와 상호 작용합니다. 또한 각 테스트에 대해 시작된 AWS Fargate의 Amazon ECS 태스크에는 고유한 테스트 식별자(ID)로 태그가 지정됩니다. 이러한 테스트 ID 태그를 사용하여이 솔루션의 비용을 모니터링할 수 있습니다. 자세한 내용은 AWS Billing and Cost Management 사용 설명서사용자 정의 비용 할당 태그를 참조하세요.

컨테이너 이미지 파이프라인

이 솔루션은 Amazon Linux 2023으로 빌드된 컨테이너 이미지를 Taurus 로드 테스트 프레임워크가 설치된 기본 이미지로 사용합니다. Taurus는 JMeter, K6, Locust 및 기타 테스트 도구를 지원하는 오픈 소스 테스트 자동화 프레임워크입니다. AWS는 Amazon Elastic Container Registry(Amazon ECR) 퍼블릭 리포지토리에서이 이미지를 호스팅합니다. 이 솔루션은이 이미지를 사용하여 AWS Fargate 클러스터의 Amazon ECS에서 작업을 실행합니다.

자세한 내용은이 가이드의 컨테이너 이미지 사용자 지정 섹션을 참조하세요.

인프라 테스트

이 솔루션은 기본 CloudFormation 템플릿 외에도 여러 리전에서 테스트를 실행하는 데 필요한 리소스를 시작하는 리전 템플릿을 제공합니다. 솔루션은이 템플릿을 Amazon S3에 저장하고 웹 콘솔에 해당 템플릿에 대한 링크를 제공합니다. 각 리전 스택에는 라이브 데이터를 처리하기 위한 VPC, AWS Fargate 클러스터 및 Lambda 함수가 포함되어 있습니다.

추가 리전에 테스트 인프라를 배포하는 방법에 대한 자세한 내용은이 가이드의 다중 리전 배포 섹션을 참조하세요.

로드 테스트 엔진

Distributed Load Testing 솔루션은 Amazon Elastic Container Service(Amazon ECS) 및 AWS Fargate를 사용하여 여러 리전에서 수천 명의 동시 사용자를 시뮬레이션하여 지속적인 속도로 HTTP 요청을 생성합니다.

포함된 웹 콘솔을 사용하여 테스트 파라미터를 정의합니다. 이 솔루션은 이러한 파라미터를 사용하여 JSON 테스트 시나리오를 생성하고 Amazon S3에 저장합니다. 테스트 스크립트 및 테스트 파라미터에 대한 자세한 내용은이 섹션의 테스트 유형을 참조하세요.

AWS Step Functions 상태 시스템은 AWS Fargate 클러스터에서 Amazon ECS 작업을 실행하고 모니터링합니다. AWS Step Functions 상태 시스템에는 ecr-checker AWS Lambda 함수, task-status-checker AWS Lambda 함수, task-runner AWS Lambda 함수, task-canceler AWS Lambda 함수 및 결과 구문 분석기 AWS Lambda 함수가 포함되어 있습니다. 워크플로에 대한 자세한 내용은이 가이드의 워크플로 테스트 섹션을 참조하세요. 테스트 결과에 대한 자세한 내용은이 가이드의 테스트 결과 섹션을 참조하세요. 테스트 취소 워크플로에 대한 자세한 내용은이 가이드의 테스트 취소 워크플로 섹션을 참조하세요.

라이브 데이터를 선택하면 솔루션은 해당 리전의 Fargate 작업에 해당하는 CloudWatch 로그를 통해 각 리전에서 real-time-data-publisher Lambda 함수를 시작합니다. 그런 다음 솔루션은 기본 스택을 시작한 리전 내의 AWS IoT Core에서 데이터를 처리하고 주제에 게시합니다. 자세한 내용은이 가이드의 라이브 데이터 섹션을 참조하세요.