설계 고려 사항 - AWS의 분산 로드 테스트

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

설계 고려 사항

이 섹션에서는 지원되는 애플리케이션, 테스트 유형, 예약 옵션 및 배포 고려 사항을 포함하여 AWS의 분산 로드 테스트 솔루션에 대한 중요한 설계 결정 및 구성 옵션에 대해 설명합니다.

지원되는 애플리케이션

이 솔루션은 AWS 계정에서 애플리케이션으로 네트워크 연결이 있는 한 클라우드 기반 애플리케이션 및 온프레미스 애플리케이션 테스트를 지원합니다. 솔루션은 HTTP 또는 HTTPS 프로토콜을 사용하는 APIs 지원합니다.

테스트 유형

AWS의 분산 로드 테스트는 간단한 HTTP 엔드포인트 테스트, JMeter, K6 및 Locust와 같은 여러 테스트 유형을 지원합니다.

간단한 HTTP 엔드포인트 테스트

웹 콘솔은 사용자 지정 스크립트를 작성하지 않고도 HTTP 또는 HTTPS 엔드포인트를 테스트할 수 있는 HTTP 엔드포인트 구성 인터페이스를 제공합니다. 엔드포인트 URL을 정의하고 드롭다운 메뉴에서 HTTP 메서드(GET, POST, PUT, DELETE 등)를 선택한 다음 선택적으로 사용자 지정 요청 헤더와 본문 페이로드를 추가합니다. 이 구성을 사용하면 사용자 지정 권한 부여 토큰, 콘텐츠 유형 또는 애플리케이션에 필요한 기타 HTTP 헤더 및 요청 본문을 사용하여 APIs를 테스트할 수 있습니다.

JMeter 테스트

웹 콘솔을 사용하여 테스트 시나리오를 생성할 때 JMeter 테스트 스크립트를 업로드할 수 있습니다. 솔루션은 스크립트를 시나리오 S3 버킷에 업로드합니다. Amazon ECS 작업이 실행되면 S3에서 JMeter 스크립트를 다운로드하고 테스트를 실행합니다.

중요

JMeter 스크립트는 동시성(가상 사용자), 트랜잭션 속도(TPS), 증가 시간 및 기타 로드 파라미터를 정의할 수 있지만 솔루션은 테스트 생성 중에 트래픽 셰이프 화면에서 지정한 값으로 이러한 구성을 재정의합니다. 트래픽 셰이프 구성은 테스트 실행의 작업 수, 동시성(작업당 가상 사용자 수), 증가 기간 및 대기 기간을 제어합니다.

JMeter 입력 파일이 있는 경우 JMeter 스크립트와 함께 입력 파일을 압축할 수 있습니다. 테스트 시나리오를 생성할 때 zip 파일을 선택할 수 있습니다.

플러그인을 포함하려는 경우 번들 zip 파일의 /plugins 하위 디렉터리에 포함된 모든 .jar 파일이 JMeter 확장 디렉터리에 복사되고 로드 테스트에 사용할 수 있습니다.

참고

JMeter 입력 파일을 JMeter 스크립트 파일에 포함하는 경우 JMeter 스크립트 파일에 입력 파일의 상대 경로를 포함해야 합니다. 또한 입력 파일은 상대 경로에 있어야 합니다. 예를 들어 JMeter 입력 파일과 스크립트 파일이 /home/user 디렉터리에 있고 JMeter 스크립트 파일에서 입력 파일을 참조하는 경우 입력 파일의 경로는 이어야 합니다.INPUT_FILES. 대신 /home/user/INPUT_FILES를 사용하면 입력 파일을 찾을 수 없으므로 테스트가 실패합니다.

JMeter 플러그인을 포함하는 경우 zip 파일의 루트 내에서 .jar 파일을 /plugins라는 하위 디렉터리에 번들링해야 합니다. zip 파일의 루트를 기준으로 jar 파일의 경로는 ./plugins/BUNDLED_PLUGIN.jar여야 합니다.

JMeter 스크립트를 사용하는 방법에 대한 자세한 내용은 JMeter 사용 설명서를 참조하세요.

K6 테스트

이 솔루션은 K6 프레임워크 기반 테스트를 지원합니다. K6는 AGPL-3.0 라이선스에 따라 릴리스됩니다. 솔루션은 새 K6 테스트를 생성할 때 라이선스 승인 메시지를 표시합니다. K6 테스트 파일을 필요한 입력 파일과 함께 아카이브 파일에 업로드할 수 있습니다.

중요

K6 스크립트는 동시성(가상 사용자), 단계, 임계값 및 기타 로드 파라미터를 정의할 수 있지만 솔루션은 테스트 생성 중에 트래픽 셰이프 화면에서 지정한 값으로 이러한 구성을 재정의합니다. 트래픽 셰이프 구성은 테스트 실행의 작업 수, 동시성(작업당 가상 사용자 수), 증가 기간 및 대기 기간을 제어합니다.

Locust 테스트

이 솔루션은 Locust 프레임워크 기반 테스트를 지원합니다. 아카이브 파일에 필요한 입력 파일과 함께 Locust 테스트 파일을 업로드할 수 있습니다.

중요

Locust 스크립트는 동시성(사용자 수), 생성 속도 및 기타 로드 파라미터를 정의할 수 있지만 솔루션은 테스트 생성 중에 트래픽 셰이프 화면에서 지정한 값으로 이러한 구성을 재정의합니다. 트래픽 셰이프 구성은 테스트 실행의 작업 수, 동시성(작업당 가상 사용자 수), 증가 기간 및 대기 기간을 제어합니다.

테스트 예약

이 솔루션은 로드 테스트를 실행하기 위한 세 가지 실행 타이밍 옵션을 제공합니다.

  • 지금 실행 - 생성 직후 로드 테스트 실행

  • 번 실행 - 향후 특정 날짜 및 시간에 테스트를 실행합니다.

  • 일정에 따라 실행 - cron 표현식을 사용하여 반복 테스트를 생성하여 일정을 정의합니다.

번 실행을 선택하면 실행 시간을 24시간 형식으로 지정하고 로드 테스트 실행을 시작해야 하는 실행 날짜를 지정합니다.

일정에 따라 실행을 선택하면 cron 표현식을 수동으로 입력하거나 일반적인 cron 패턴(예: 매시간, 매일 특정 시간, 평일 또는 매월) 중에서 선택할 수 있습니다. cron 표현식은 분, 시간, 월, 월, 요일 및 연도에 대한 필드와 함께 세분화된 일정 형식을 사용합니다. 또한 예약된 테스트 실행을 중지해야 하는 시기를 정의하는 만료 날짜도 지정해야 합니다. 예약의 작동 방식에 대한 자세한 내용은이 가이드의 예약 테스트 워크플로 섹션을 참조하세요.

참고
  • 테스트 기간: 예약 시 총 테스트 기간을 고려합니다. 예를 들어, 램프 업 시간이 10분이고 대기 시간이 40분인 테스트는 완료하는 데 약 80분이 걸립니다.

  • 최소 간격: 예약된 테스트 사이의 간격이 예상 테스트 기간보다 긴지 확인합니다. 예를 들어 테스트에 약 80분이 걸리는 경우 3시간마다 실행되도록 예약합니다.

  • 시간당 제한: 예상 테스트 기간이 1시간 미만인 경우에도 시스템에서는 1시간 차이로만 테스트를 예약할 수 없습니다.

동시 테스트

이 솔루션은 Amazon ECS 클러스터에서 실행 중인 모든 작업의 결합된 출력을 실시간으로 표시하는 각 테스트에 대한 Amazon CloudWatch 대시보드를 생성합니다. CloudWatch 대시보드에는 평균 응답 시간, 동시 사용자 수, 성공한 요청 수, 실패한 요청 수가 표시됩니다. 솔루션은 각 지표를 초 단위로 집계하고 1분마다 대시보드를 업데이트합니다.

사용자 관리

초기 구성 중에 Amazon Cognito가 솔루션의 웹 콘솔에 대한 액세스 권한을 부여하는 데 사용하는 사용자 이름과 이메일 주소를 제공합니다. 콘솔은 사용자 관리를 제공하지 않습니다. 사용자를 추가하려면 Amazon Cognito 콘솔을 사용해야 합니다. 자세한 내용은 Amazon Cognito 개발자 안내서사용자 풀에서 사용자 관리를 참조하세요.

기존 사용자를 Amazon Cognito 사용자 풀로 마이그레이션하려면 사용자를 Amazon Cognito 사용자 풀로 마이그레이션하기 위한 AWS 블로그 접근 방식을 참조하세요.

리전 배포

이 솔루션은 특정 AWS 리전에서만 사용할 수 있는 Amazon Cognito를 사용합니다. 따라서 Amazon Cognito를 사용할 수 있는 리전에이 솔루션을 배포해야 합니다. 리전별 최신 서비스 가용성은 AWS 리전 서비스 목록을 참조하세요.