Azure Load Testing이란?

Azure Load Testing은 대규모 부하를 생성할 수 있는 완전 관리형 부하 테스트 서비스입니다. 이 서비스는 호스팅되는 위치에 관계없이 애플리케이션에 대한 트래픽을 시뮬레이션합니다. 개발자, 테스터 및 QA(품질 보증) 엔지니어는 이를 사용하여 애플리케이션 성능, 확장성 또는 용량을 최적화할 수 있습니다.

테스트 도구에 대한 사전 지식 없이 URL을 사용하여 웹 애플리케이션에 대한 부하 테스트를 신속하게 만듭니다. Azure Load Testing은 부하 테스트를 대규모로 실행하기 위해 복잡성 및 인프라를 추상화합니다.

Azure 기반 애플리케이션의 경우 Azure Load Testing은 Azure 애플리케이션 구성 요소에서 성능 병목 상태를 식별하는 데 도움이 되는 자세한 리소스 메트릭을 수집합니다.

CI/CD(연속 통합 및 지속적인 배포) 워크플로의 일부로 부하 테스트를 실행하여 회귀 테스트를 자동화할 수 있습니다.

Azure Load Testing을 사용하면 온-프레미스에서 호스트하는 프라이빗 애플리케이션 엔드포인트 또는 애플리케이션을 테스트할 수 있습니다. 자세한 내용은 가상 네트워크에서 Azure Load Testing을 배포하는 시나리오를 참조하세요.

고급 부하 테스트 시나리오의 경우 인기 있는 오픈 소스 부하 및 성능 도구 인 기존 Apache JMeter 테스트 스크립트를 다시 사용하여 부하 테스트를 만들 수 있습니다. 예를 들어 테스트 계획은 여러 애플리케이션 요청으로 구성되거나, HTTP가 아닌 엔드포인트를 호출하거나, 입력 데이터 및 매개 변수를 사용하여 테스트를 보다 동적으로 만들 수 있습니다.

Azure Load Testing의 주요 개념에 대해 자세히 알아봅니다.

대규모 부하 테스트를 사용하여 성능 병목 상태 식별

애플리케이션이 로드될 때까지 성능 문제가 검색되지 않은 상태로 유지되는 경우가 많습니다. Azure Portal 대규모 부하 테스트를 시작하여 스트레스 속에서 애플리케이션이 어떻게 동작하는지 더 빨리 알아볼 수 있습니다. 테스트가 실행되는 동안 Azure Load Testing 대시보드는 클라이언트 및 서버 쪽 메트릭의 라이브 업데이트를 제공합니다.

부하 테스트가 완료되면 대시보드를 사용하여 테스트 결과를 분석하고 성능 병목 상태를 식별할 수 있습니다. Azure 호스팅 애플리케이션의 경우 대시보드에는 Azure 애플리케이션 구성 요소의 자세한 리소스 메트릭이 표시됩니다. Azure 호스팅 애플리케이션의 성능 병목 상태를 식별하는 자습서를 시작합니다.

Azure Load Testing은 테스트 실행 기록을 유지하며 여러 실행을 시각적으로 비교하여 성능 회귀를 검색할 수 있습니다.

타사 도구에서 분석을 위해 테스트 결과를 다운로드 할 수도 있습니다.

자동화된 부하 테스트 사용

개발 수명 주기 동안 의미 있는 지점에서 CI/CD 파이프라인에 Azure Load Testing을 통합할 수 있습니다. 예를 들어 각 스프린트의 끝이나 스테이징 환경에서 부하 테스트를 자동으로 실행하여 릴리스 후보 빌드의 유효성을 검사할 수 있습니다.

부하 중인 애플리케이션의 성능 저하를 신속하게 식별 하기 위해 CI/CD 워크플로에 부하 테스트를 추가하는 작업을 시작합니다.

테스트 구성에서 테스트 실패 조건을 지정 하여 개발 주기 초기에 애플리케이션 성능 또는 안정성 회귀를 포착합니다. 예를 들어 평균 응답 시간 또는 오류 수가 특정 임계값을 초과하면 경고를 받습니다.

Azure Load Testing은 특정 오류 조건에 대한 응답으로 자동화된 부하 테스트를 자동으로 중지합니다. Apache JMeter 스크립트에서 AutoStop 수신기를 사용할 수도 있습니다. 자동으로 중지하면 잘못 구성된 엔드포인트 URL로 인해 추가 비용이 발생하는 테스트 실패를 방지할 수 있습니다.

Azure Pipelines 또는 GitHub Actions 워크플로에서 Azure Load Testing을 트리거할 수 있습니다.

Azure Load Testing은 어떻게 작동하나요?

Azure Load Testing 테스트 엔진은 대규모 부하 테스트를 실행하는 데 필요한 인프라를 추상화합니다. 테스트 엔진은 Apache JMeter 스크립트를 실행하여 애플리케이션 엔드포인트에 동시에 액세스하는 많은 수의 가상 사용자를 시뮬레이션합니다. URL을 기반으로 부하 테스트를 만들면 Azure Load Testing에서 자동으로 JMeter 테스트 스크립트를 생성합니다. 부하 테스트를 스케일 아웃하려면 테스트 엔진 수를 구성할 수 있습니다.

Azure Load Testing은 부하 테스트를 실행하기 위해 Apache JMeter 버전 5.5를 사용합니다. 에서 Apache JMeter 플러그 인 https://jmeter-plugins.org 을 사용하거나 자체 플러그 인 코드를 업로드할 수 있습니다. Azure Load Testing은 JMeter에서 지원하는 모든 통신 프로토콜을 지원합니다. 예를 들어 를 로드하려면 데이터베이스 연결 또는 메시지 큐를 테스트합니다.

애플리케이션은 Azure, 온-프레미스 또는 다른 클라우드의 어디서나 호스트할 수 있습니다. 퍼블릭 엔드포인트가 없는 테스트 서비스를 로드하려면 가상 네트워크에 Azure Load Testing을 배포합니다.

부하 테스트 중에 서비스는 다음 리소스 메트릭을 수집하고 대시보드에 표시합니다.

  • 클라이언트 쪽 메트릭은 테스트 엔진에서 보고한 세부 정보를 제공합니다. 이러한 세부 정보에는 가상 사용자 수, 요청 응답 시간 또는 초당 요청 수가 포함됩니다.

  • 서버 쪽 메트릭은 Azure 애플리케이션 구성 요소에 대한 정보를 제공합니다. Azure Load Testing은 Application Insights 및 Container Insights를 포함한 Azure Monitor와 통합되어 Azure 서비스에서 세부 정보를 캡처합니다. 서비스 유형에 따라 다양한 메트릭을 사용할 수 있습니다. 예를 들어 데이터베이스 읽기 수, HTTP 응답 유형 또는 컨테이너 리소스 사용량에 대한 메트릭일 수 있습니다.

Azure Load Testing은 테스트가 안전하고 안정적으로 실행되도록 하기 위해 Azure 네트워킹에 대한 모범 사례를 자동으로 통합합니다. 애플리케이션 엔드포인트 또는 Azure 구성 요소가 요청을 제한하기 시작하면 부하 테스트가 자동으로 중지됩니다.

Azure Load Testing 리소스에 저장된 데이터는 Microsoft에서 관리하는 키(서비스 관리형 키)로 자동으로 암호화됩니다. 이 데이터에는 예를 들어 Apache JMeter 스크립트가 포함됩니다.

Azure Load Testing 아키텍처를 보여 주는 다이어그램

참고

개요 이미지는 Azure Load Testing이 Azure Monitor를 사용하여 앱 구성 요소에 대한 메트릭을 캡처하는 방법을 보여 줍니다. 지원되는 Azure 리소스 종류에 대해 자세히 알아봅니다.

지역 내 데이터 보존

Azure Load Testing은 서비스 인스턴스를 배포하는 지역 외부에 고객 데이터를 저장하거나 처리하지 않습니다.

다음 단계

Azure Load Testing 사용을 시작합니다.