개요
Distributed Load Testing on AWS는 로드가 있는 상태에서 소프트웨어 애플리케이션 테스트를 대규모로 자동화하는 솔루션으로, 애플리케이션 릴리스 전에 잠재적 성능 문제를 식별하는 데 도움이 됩니다. 이 AWS 솔루션을 배포하면 서버를 프로비저닝하지 않고도 일관된 속도로 트랜잭션 레코드를 생성하여 수천 명의 연결된 사용자를 구축하고 시뮬레이션할 수 있습니다. 이 솔루션을 사용하여 여러 AWS 리전에서 테스트를 실행할 수도 있습니다.
이점
AWS Fargate 컨테이너에서 독립된 Amazon Elastic Container Service(Amazon ECS)를 사용하여 소프트웨어의 로드 기능을 테스트합니다.
사용자 지정 JMeter 스크립트를 사용하여 애플리케이션 테스트를 사용자 지정합니다.
지정된 날짜 또는 반복 날짜에 자동으로 시작하도록 로드 테스트를 예약합니다.
이 솔루션의 웹 콘솔을 사용하여 실행 중인 테스트의 라이브 데이터를 봅니다.
기술 세부 정보
1단계
Amazon API Gateway API를 사용하여 이 솔루션의 마이크로서비스(AWS Lambda 함수)를 간접적으로 호출합니다.
2단계
마이크로 서비스는 테스트 데이터를 관리하고 테스트를 실행하기 위한 비즈니스 로직을 제공합니다.
3단계
이 마이크로서비스는 Amazon Simple Storage Service(S3), Amazon DynamoDB, AWS Step Functions와 상호작용하면서 테스트 시나리오를 실행하고 테스트 시나리오에 대한 스토리지를 제공합니다.
4단계
Amazon Virtual Private Cloud(VPC) 네트워크 토폴로지에는 AWS Fargate에서 실행되는 솔루션의 Amazon Elastic Container Service(Amazon ECS) 컨테이너가 포함됩니다.
5단계
컨테이너에는 Taurus 로드 테스트 Open Container Initiative(OCI) 호환 컨테이너 이미지가 있으며, 이는 애플리케이션 성능을 테스트하기 위한 부하를 생성하는 데 사용합니다. Taurus는 오픈 소스 테스트 자동화 프레임워크입니다. 컨테이너 이미지는 Amazon Elastic Container Registry(Amazon ECR) 퍼블릭 리포지토리에서 AWS가 호스팅합니다.
6단계
AWS Amplify로 구동되는 웹 콘솔이 고정 웹 호스팅을 위해 구성된 S3 버킷에 배포됩니다.
7단계
Amazon CloudFront는 솔루션의 웹 사이트 버킷 콘텐츠에 대한 안전한 퍼블릭 액세스를 제공합니다.
8단계
이 솔루션은 최초 구성 시 기본 솔루션 관리자 역할도 생성하고 고객이 지정한 사용자 이메일 주소로 액세스 초대를 전송합니다.
9단계
Amazon Cognito 사용자 풀은 콘솔 및 API Gateway API에 대한 사용자 액세스를 관리합니다.
10단계
솔루션을 배포하고 나면 웹 콘솔을 사용하여 일련의 태스크를 정의하는 테스트 시나리오를 생성할 수 있습니다.
11단계
마이크로서비스는 이 테스트 시나리오를 사용하여 지정된 AWS 리전의 Fargate 태스크에서 Amazon ECS를 실행합니다.
12단계
결과를 Amazon S3 및 DynamoDB에 저장하는 것 외에도 테스트가 완료되면 Amazon CloudWatch에 출력이 기록됩니다.
13단계
라이브 데이터 옵션을 선택하면 테스트가 실행되는 각 리전에서 테스트 중에 Fargate 태스크에 대한 CloudWatch 로그가 Lambda 함수로 전송됩니다.
14단계
이 Lambda 함수는 기본 스택이 배포된 리전에 있는 AWS IoT Core의 해당하는 주제에 데이터를 게시합니다. 웹 콘솔이 해당 주제를 구독하여 테스트가 실행되는 동안 웹 콘솔에 데이터가 표시됩니다.
“Calabrio의 사명은 고객 센터가 더 스마트하고 더 빠르고 더 효율적으로 일할 수 있도록 돕는 것입니다. 우리는 주요 고객을 위해 새로운 고성능 기능을 신속하게 설계해야 했습니다. 비용이 많이 드는 엔터프라이즈 테스트 라이선스를 사용하거나 오픈 소스 도구용 사용자 지정 오케스트레이션 코드를 작성할 필요 없이 Distributed Load Testing on AWS를 사용하여 시스템 성능을 대규모로 테스트했습니다. 이 AWS 솔루션을 사용하여 예상 트래픽 볼륨의 6배에 달하는 테스트를 설계하고 실행했으며 새 기능을 예정보다 빨리 성공적으로 출시했습니다.”
관련 콘텐츠
민간 기업이든 공공 부문 서비스든 사용자 로드 증가에 따라 애플리케이션을 확장할 수 있어야 합니다. Distributed Load Testing on AWS를 사용하면 애플리케이션 테스트를 자동화하고, 대규모에서 성능을 확인하며, 애플리케이션 릴리스 전에 병목 현상을 해결할 수 있습니다.