기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS의 분산 로드 테스트 작동 방식
다음 세부 분석에는 테스트 시나리오 실행과 관련된 단계가 나와 있습니다.
테스트 워크플로
-
웹 콘솔을 사용하여 구성 세부 정보가 포함된 테스트 시나리오를 솔루션의 API에 제출합니다.
-
테스트 시나리오 구성은 Amazon Simple Storage Service(Amazon S3)에 JSON 파일()로 업로드됩니다
s3://<bucket-name>/test-scenarios/<$TEST_ID>/<$TEST_ID>.json
. -
AWS Step Functions 상태 시스템은 테스트 ID, 작업 수, 테스트 유형 및 파일 유형을 AWS Step Functions 상태 시스템 입력으로 사용하여 실행됩니다. 테스트가 예약된 경우 먼저 지정된 날짜에 AWS Step Functions를 트리거하는 CloudWatch Events 규칙을 생성합니다. 일정 워크플로에 대한 자세한 내용은이 가이드의 일정 워크플로 테스트 섹션을 참조하세요.
-
구성 세부 정보는 Amazon DynamoDB 테이블 시나리오에 저장됩니다.
-
AWS Step Functions 작업 실행기 워크플로에서 task-status-checker AWS Lambda 함수는 Amazon Elastic Container Service(Amazon ECS) 작업이 동일한 테스트 ID에 대해 이미 실행 중인지 확인합니다. 동일한 테스트 ID를 가진 작업이 실행 중인 것으로 확인되면 오류가 발생합니다. AWS Fargate 클러스터에서 실행 중인 Amazon ECS 작업이 없는 경우 함수는 테스트 ID, 작업 수 및 테스트 유형을 반환합니다.
-
작업 실행기 AWS Lambda 함수는 이전 단계에서 작업 세부 정보를 가져오고 AWS Fargate 클러스터에서 Amazon ECS 작업자 작업을 실행합니다. Amazon ECS API는 RunTask 작업을 사용하여 작업자 작업을 실행합니다. 이러한 작업자 작업이 시작된 다음 테스트를 시작하기 위해 리더 작업의 시작 메시지를 기다립니다. RunTask 작업은 정의당 10개의 작업으로 제한됩니다. 작업 수가 10개를 초과하는 경우 모든 작업자 작업이 시작될 때까지 작업 정의가 여러 번 실행됩니다. 또한 함수는 결과 구문 분석 AWS Lambda 함수에서 현재 테스트를 구분하는 접두사를 생성합니다.
-
task-status-checker AWS Lambda 함수는 모든 Amazon ECS 작업자 작업이 동일한 테스트 ID로 실행 중인지 확인합니다. 태스크가 여전히 프로비저닝 중인 경우 1분 동안 기다렸다가 다시 확인합니다. 모든 Amazon ECS 작업이 실행되면 테스트 ID, 작업 수, 테스트 유형, 모든 작업 IDs 및 접두사를 반환하고 이를 작업 실행기 함수에 전달합니다.
-
Task-runner AWS Lambda 함수가 다시 실행되며, 이번에는 리더 노드 역할을 하는 단일 Amazon ECS 작업을 시작합니다. 이 ECS 태스크는 테스트를 동시에 시작하기 위해 각 작업자 태스크에 테스트 시작 메시지를 보냅니다.
-
task-status-checker AWS Lambda 함수는 Amazon ECS 작업이 동일한 테스트 ID로 실행 중인지 다시 확인합니다. 태스크가 계속 실행 중인 경우 1분 동안 기다렸다가 다시 확인합니다. 실행 중인 Amazon ECS 작업이 없으면 테스트 ID, 작업 수, 테스트 유형 및 접두사를 반환합니다.
-
작업 실행기 AWS Lambda 함수가 AWS Fargate 클러스터에서 Amazon ECS 작업을 실행하면 각 작업은 Amazon S3에서 테스트 구성을 다운로드하고 테스트를 시작합니다.
-
테스트가 실행되면 각 작업에 대한 평균 응답 시간, 동시 사용자 수, 성공한 요청 수, 실패한 요청 수가 Amazon CloudWatch에 로깅되고 CloudWatch 대시보드에서 볼 수 있습니다.
-
테스트에 라이브 데이터를 포함시킨 경우 솔루션은 구독 필터를 사용하여 CloudWatch에서 실시간 테스트 결과를 필터링합니다. 그런 다음 솔루션은 Lambda 함수에 데이터를 전달합니다.
-
그런 다음 Lambda 함수는 수신된 데이터를 구조화하여 AWS IoT Core 주제에 게시합니다.
-
웹 콘솔은 테스트를 위해 AWS IoT Core 주제를 구독하고 주제에 게시된 데이터를 수신하여 테스트가 실행되는 동안 실시간 데이터를 그래프로 표시합니다.
-
테스트가 완료되면 컨테이너 이미지는 세부 보고서를 XML 파일로 Amazon S3로 내보냅니다. 각 파일에는 파일 이름에 대한 UUID가 부여됩니다. 예: s3://dlte-bucket/test-scenarios/<$TEST_ID>/results/<$UUID>.json.
-
XML 파일이 Amazon S3에 업로드되면 결과 구문 분석기 AWS Lambda 함수는 접두사로 시작하는 XML 파일의 결과를 읽고 모든 결과를 구문 분석하여 하나의 요약된 결과로 집계합니다.
-
결과 구문 분석기 AWS Lambda 함수는 집계 결과를 Amazon DynamoDB 테이블에 기록합니다.