기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
테스트 시나리오 생성
테스트 시나리오 생성에는 일반 설정 구성, 시나리오 정의, 트래픽 패턴 구성, 구성 검토의 네 가지 주요 단계가 포함됩니다.
1단계: 일반 설정
테스트 이름, 설명 및 일반 구성 옵션을 포함하여 로드 테스트의 기본 파라미터를 구성합니다.
테스트 식별
-
테스트 이름(필수) - 테스트 시나리오를 설명하는 이름입니다.
-
테스트 설명(필수) - 테스트 목적 및 구성에 대한 추가 세부 정보
-
태그(선택 사항) - 최대 5개의 태그를 추가하여 테스트 시나리오를 분류하고 구성합니다.
예약 옵션
테스트를 실행해야 하는 시기를 구성합니다.
-
지금 실행 - 생성 직후 테스트를 실행합니다.
-
한 번 실행 - 특정 날짜 및 시간에 실행되도록 테스트를 예약합니다.
-
일정에 따라 실행 - cron 기반 예약을 사용하여 정기적으로 테스트를 자동으로 실행합니다. 일반적인 패턴(매시간, 매일, 매주) 중에서 선택하거나 사용자 지정 cron 표현식을 정의할 수 있습니다. 허용되는 cron 형식, 지원되는 패턴 및 제약 조건에 대한 자세한 내용은 개발자 안내서의 Cron 표현식 참조를 참조하세요.
워크플로 예약
테스트를 예약하면 다음 워크플로가 발생합니다.
-
일정 파라미터는 Amazon API Gateway로 전송됩니다.
-
API는 지정된 날짜에 실행되도록 구성된 Amazon EventBridge 스케줄러 일정을 생성하는 Lambda 함수에 파라미터를 전달합니다.
-
일회성 테스트(한 번 실행)의 경우 EventBridge 스케줄러 일정은 지정된 날짜 및 시간에
api-servicesLambda 함수를 호출하여 테스트를 실행합니다. -
반복 테스트(일정에 따라 실행)의 경우 EventBridge 스케줄러 일정은 만료 날짜까지 cron 또는 rate 표현식으로 정의된 주기에 따라
api-servicesLambda 함수를 즉시 호출합니다.
라이브 데이터
테스트가 실행되는 동안 실시간 지표를 보려면 라이브 데이터 포함 확인란을 선택합니다. 활성화되면 다음을 모니터링할 수 있습니다.
-
평균 응답 시간입니다.
-
가상 사용자 수입니다.
-
성공적인 요청 수입니다.
-
실패한 요청 수입니다.
라이브 데이터 기능은 1초 간격으로 집계된 데이터를 사용하여 실시간 차트를 제공합니다. 자세한 내용은 라이브 데이터로 모니터링을 참조하세요.
2단계: 시나리오 구성
특정 테스트 시나리오를 정의하고 원하는 테스트 프레임워크를 선택합니다.
테스트 유형 선택
수행할 로드 테스트 유형을 선택합니다.
-
단일 HTTP 엔드포인트 - 간단한 구성으로 단일 API 엔드포인트 또는 웹 페이지를 테스트합니다.
-
JMeter - JMeter 테스트 스크립트(.jmx 파일 또는 .zip 아카이브)를 업로드합니다.
-
K6 - K6 테스트 스크립트(.js 파일 또는 .zip 아카이브)를 업로드합니다.
-
Locust - Locust 테스트 스크립트(.py 파일 또는 .zip 아카이브)를 업로드합니다.
참고
네 가지 테스트 유형 모두 타사 구성 요소에 의존합니다. 솔루션은 테스트 유형에 따라 JMeter, K6 또는 Locust를 실행하는 Taurus 테스트 자동화 프레임워크를 통해 테스트를 실행합니다. 단일 HTTP 엔드포인트 테스트는 JMeter 테스트 계획으로 변환되고 번들 Apache JMeter에서 실행됩니다. 테스트를 생성하기 전에 타사 테스트 프레임워크에서 보안 고려 사항, 라이선스 정보 및 패치 옵션을 검토하세요.
HTTP 엔드포인트 구성
"단일 HTTP 엔드포인트"를 선택하면 솔루션은 구성에서 JMeter 테스트 계획을 생성하고 번들 Apache JMeter 바이너리로 실행합니다. 다음 설정을 구성합니다.
- HTTP 엔드포인트(필수)
-
테스트하려는 엔드포인트의 전체 URL을 입력합니다. 예를 들어
https://api.example.com/users입니다. AWS 인프라에서 엔드포인트에 액세스할 수 있는지 확인합니다. - HTTP 메서드(필수)
-
요청에 대한 HTTP 메서드를 선택합니다. 기본값은
GET입니다. 기타 옵션에는POST,PUT,DELETE,PATCH, 및HEAD가 포함됩니다OPTIONS. - 요청 헤더(선택 사항)
-
요청에 사용자 지정 HTTP 헤더를 추가합니다. 일반적인 예는 다음과 같습니다.
-
Content-Type: application/json -
Authorization: Bearer <token> -
User-Agent: LoadTest/1.0헤더 추가를 선택하여 여러 헤더를 포함합니다.
-
- 본문 페이로드(선택 사항)
-
POST 또는 PUT 요청에 대한 요청 본문 콘텐츠를 추가합니다. JSON, XML 또는 일반 텍스트 형식을 지원합니다. 예를 들어
{"userId": 123, "action": "test"}입니다.
프레임워크 스크립트 테스트
JMeter, K6 또는 Locust를 사용하는 경우 테스트 스크립트 파일 또는 테스트 스크립트와 지원 파일이 포함된.zip 아카이브를 업로드합니다. JMeter의 경우 .zip 아카이브 내의 /plugins 폴더에 사용자 지정 플러그인을 포함할 수 있습니다.
중요
테스트 스크립트(JMeter, K6 또는 Locust)가 동시성(가상 사용자), 트랜잭션 속도(TPS), 증가 시간 및 기타 로드 파라미터를 정의할 수 있지만 솔루션은 테스트 생성 중에 트래픽 셰이프 화면에서 지정한 값으로 이러한 구성을 재정의합니다. 트래픽 셰이프 구성은 테스트 실행의 작업 수, 동시성(작업당 가상 사용자 수), 증가 기간 및 대기 기간을 제어합니다.
3단계: 트래픽 셰이프
다중 리전 지원을 포함하여 테스트 중에 트래픽이 분산되는 방식을 구성합니다.
다중 리전 트래픽 구성
하나 이상의 AWS 리전을 선택하여 로드 테스트를 지리적으로 배포합니다. 선택한 각 리전에 대해 다음을 구성합니다.
- 작업 수
-
테스트 시나리오를 위해 Fargate 클러스터에서 시작될 컨테이너(작업) 수입니다. 계정이 "Fargate 리소스에 도달" 한도에 도달하면 추가 작업이 생성되지 않습니다.
- 동시성
-
작업당 생성된 동시 가상 사용자 수입니다. 권장 제한은 작업당 vCPUs 2개의 기본 설정을 기반으로 합니다. 동시성은 CPU 및 메모리 리소스에 의해 제한됩니다.
사용자 수 결정
컨테이너가 테스트에 지원할 수 있는 사용자 수는 Amazon CloudWatch에서 사용자 수를 점진적으로 늘리고 성능을 모니터링하여 확인할 수 있습니다. CPU 및 메모리 성능이 제한에 도달하는 것을 관찰하면 컨테이너가 기본 구성(vCPU 2개 및 메모리 4GB)에서 해당 테스트에 지원할 수 있는 최대 사용자 수에 도달한 것입니다.
보정 프로세스
다음 예제를 사용하여 테스트에 대한 동시 사용자 제한을 확인할 수 있습니다.
-
사용자가 200명 이하인 테스트를 생성합니다.
-
테스트가 실행되는 동안 CloudWatch 콘솔
을 사용하여 CPU 및 메모리를 모니터링합니다. -
탐색 창의 Container Insights에서 성능 모니터링을 선택합니다.
-
성능 모니터링 페이지의 왼쪽 드롭다운 메뉴에서 ECS 클러스터를 선택합니다.
-
오른쪽 드롭다운 메뉴에서 Amazon Elastic Container Service(Amazon ECS) 클러스터를 선택합니다.
-
-
모니터링하는 동안 CPU와 메모리를 관찰합니다. CPU가 75%를 초과하지 않거나 메모리가 85%를 초과하지 않는 경우(일회성 피크 무시) 사용자 수가 많은 다른 테스트를 실행할 수 있습니다.
테스트가 리소스 제한을 초과하지 않은 경우 1~3단계를 반복합니다. 선택적으로 컨테이너 리소스를 늘려 동시 사용자 수를 늘릴 수 있습니다. 그러나 이로 인해 비용이 더 많이 듭니다. 자세한 내용은 개발자 안내서를 참조하세요.
참고
정확한 결과를 얻으려면 동시 사용자 제한을 결정할 때 한 번에 하나의 테스트만 실행합니다. 모든 테스트는 동일한 클러스터를 사용하며 CloudWatch 컨테이너 인사이트는 클러스터를 기반으로 성능 데이터를 집계합니다. 이로 인해 두 테스트가 CloudWatch Container Insights에 동시에 보고되어 단일 테스트에 대한 리소스 사용률 지표가 부정확해집니다.
엔진당 사용자 보정에 대한 자세한 내용은 BlazeMeter 설명서의 타우루스 테스트 보정
참고
솔루션은 각 리전에 사용 가능한 용량 정보를 표시하므로 사용 가능한 한도 내에서 테스트 구성을 계획하는 데 도움이 됩니다.
사용 가능한 작업 테이블
사용 가능한 작업 테이블에는 선택한 각 리전의 리소스 가용성이 표시됩니다.
-
리전 - AWS 리전 이름입니다.
-
작업당 vCPUs - 각 작업에 할당된 가상 CPUs 수(기본값: 2).
-
DLT 작업 제한 - 계정의 Fargate 온디맨드 vCPU 할당량을 기반으로 생성할 수 있는 최대 작업 수입니다. 새 계정의 할당량은 일반적으로 더 낮습니다. Service Quotas 콘솔에서 현재 한도를 확인하고 필요한 경우 증가를 요청합니다.
-
사용 가능한 DLT 작업 - 리전에서 사용 가능한 현재 작업 수로, DLT 작업 한도에서 Fargate 작업을 실행하여 이미 사용 중인 vCPUs를 뺀 값으로 계산됩니다.
작업당 사용 가능한 작업 또는 vCPUs 수를 늘리려면 개발자 안내서를 참조하세요.
테스트 기간
로드 테스트가 실행되는 기간을 정의합니다.
- 램프 업
-
대상 동시성에 도달하는 시간입니다. 이 기간 동안 로드가 0에서 구성된 동시성 수준으로 점진적으로 증가합니다.
- 에 대해 보류
-
대상 로드를 유지하는 기간입니다. 테스트는이 기간 동안 완전한 동시성으로 계속됩니다.
4단계: 검토 및 생성
테스트 시나리오를 생성하기 전에 모든 구성을 검토합니다. 다음을 확인합니다.
-
일반 설정(이름, 설명, 일정).
-
시나리오 구성(테스트 유형, 엔드포인트 또는 스크립트).
-
트래픽 셰이프(작업, 사용자, 기간, 리전).
검토 후 생성을 선택하여 테스트 시나리오를 저장합니다.
테스트 시나리오 관리
테스트 시나리오를 생성한 후 다음을 수행할 수 있습니다.
-
편집 - 테스트 구성을 수정합니다. 일반적인 사용 사례는 다음과 같습니다.
-
원하는 트랜잭션 속도를 달성하기 위해 트래픽 셰이프를 구체화합니다.
-
-
복사 - 기존 테스트 시나리오를 복제하여 변형을 생성합니다. 일반적인 사용 사례는 다음과 같습니다.
-
엔드포인트 업데이트 또는 헤더/본문 파라미터 추가.
-
테스트 스크립트 추가 또는 수정.
-
-
삭제 - 더 이상 필요하지 않은 테스트 시나리오를 제거합니다.