Azure App Service 애플리케이션 부하 테스트
이 문서에서는 Azure Load Testing을 사용하여 Azure App Service에서 호스트되는 애플리케이션을 테스트하는 방법에 대해 알아봅니다. Azure App Service는 클라우드에서 웹 애플리케이션 및 API를 빌드, 배포 및 확장할 수 있는 완전 관리형 서비스입니다.
Azure Load Testing을 사용하면 애플리케이션 및 서비스에 대규모 트래픽을 실제처럼 시뮬레이션할 수 있습니다. Azure App Service가 자동으로 스케일링될 수 있지만 Azure Load Testing을 사용하여 부하 테스트를 실행하면 안정성과 성능이 향상되고 및 비용이 최적화되며 다음 작업을 수행할 수 있습니다.
웹 애플리케이션뿐만 아니라 모든 애플리케이션 구성 요소가 예상 부하를 처리할 수 있는지 확인합니다.
애플리케이션이 성능 및 안정성 요구 사항을 충족하는지 확인합니다.
애플리케이션 리소스 메트릭 및 진단을 사용하여 전체 애플리케이션에 걸쳐 성능 병목 상태를 확인합니다.
컴퓨팅 리소스가 과도하게 할당되는 것을 방지하고 불필요한 비용을 줄입니다.
CI/CD 파이프라인에 부하 테스트를 통합하고 테스트 실패 조건을 지정하여 성능 저하를 조기에 감지합니다.
부하 테스트를 사용한 트래픽 시뮬레이션
Azure App Service에서 애플리케이션에 트래픽을 시뮬레이션하는 부하 테스트를 만들 수 있습니다. Azure Load Testing은 부하 테스트를 만드는 두 가지 옵션을 제공합니다.
- URL 기반 빠른 테스트 만들기
- Apache JMeter 스크립트 사용(JMX 파일)
부하 테스트를 만들고 실행한 후 웹 애플리케이션 및 모든 종속 Azure 구성 요소에 대한 리소스 메트릭을 모니터링하여 성능 및 확장성 문제를 식별할 수 있습니다.
URL 기반 부하 테스트 만들기
Azure Portal의 Azure App Service 웹앱에서 직접 URL 기반 부하 테스트를 만들 수 있습니다. 부하 테스트를 만들 때 특정 배포 슬롯을 선택하고 미리 채워진 엔드포인트 URL을 사용할 수 있습니다.
다음 스크린샷은 Azure Portal에서 URL 기반 부하 테스트를 만드는 방법을 보여 줍니다.
Azure App Service에 대한 URL 기반 부하 테스트를 만들어 시작합니다.
JMeter 스크립트를 업로드하여 부하 테스트 만들기
Azure Load Testing은 JMeter를 높은 정확도로 지원합니다. Apache JMeter 스크립트를 업로드하여 새 부하 테스트를 만들 수 있습니다. 다음 시나리오에서 이 접근 방식을 사용할 수 있습니다.
- 단일 테스트에서 여러 페이지 또는 엔드포인트 테스트
- 인증된 엔드포인트 테스트
- 부하 테스트에 환경 변수 또는 비밀과 같은 매개 변수 전달
- 데이터베이스 연결과 같은 비 HTTP 기반 엔드포인트 테스트
- 고급 부하 패턴 구성
- 기존 JMeter 스크립트 다시 사용
JMeter 스크립트를 업로드하여 부하 테스트 만들기를 시작합니다.
이전에 URL 기반 테스트를 만든 경우 Azure Load Testing은 JMeter 테스트 스크립트를 생성합니다. 생성된 이 테스트 스크립트를 다운로드하고, 수정하거나 확장한 다음, 스크립트를 다시 업로드할 수 있습니다.
앱에서 병목 상태 및 프로비저닝 문제 모니터링
부하 테스트 중에 Azure Load Testing은 테스트 실행에 대한 메트릭을 수집합니다.
클라이언트 쪽 메트릭: 엔드투엔드 응답 시간, 초당 요청 수 또는 오류율과 같은 테스트 엔진 메트릭입니다. 이러한 메트릭은 애플리케이션이 시뮬레이션된 사용자 부하를 지원할 수 있는지 여부를 전반적으로 나타냅니다.
서버 쪽 메트릭: App Service 플랜의 CPU 백분율, HTTP 응답 코드 또는 데이터베이스 리소스 사용량과 같은 Azure 애플리케이션 구성 요소의 리소스 메트릭입니다.
Azure Load Testing 대시보드를 사용하여 테스트 실행 메트릭을 분석하고 애플리케이션에서 성능 병목 상태를 식별하거나 일부 컴퓨팅 리소스를 과도하게 프로비전했는지 확인합니다. 예를 들어 서비스 플랜 인스턴스의 크기가 워크로드에 적합한지 평가할 수 있습니다.
Azure Load Testing에서 서버 쪽 메트릭을 모니터하는 방법에 대해 자세히 알아봅니다.
Azure App Service에서 호스트되는 애플리케이션의 경우 App Service 진단을 사용하여 애플리케이션의 성능 및 상태에 대한 추가 인사이트를 얻을 수 있습니다. App Service 애플리케이션 구성 요소를 부하 테스트 구성에 추가하면 부하 테스트 대시보드에서 App Service 리소스에 대한 App Service 진단 대시보드에 대한 직접 링크를 제공합니다.
부하 테스트의 실패 조건 사용자 지정
테스트 실패 기준을 사용하면 부하 테스트 클라이언트 쪽 메트릭에 대한 조건을 구성할 수 있습니다. 부하 테스트 실행이 이러한 조건을 충족하지 않으면 테스트가 실패한 것으로 간주됩니다. 부하 테스트의 실패 조건 구성을 시작합니다.
예를 들어 요청의 평균 응답 시간을 지정하거나 실패한 요청의 백분율을 지정된 임계값 이상으로 지정할 수 있습니다. 빠른 테스트인지 또는 JMeter 스크립트를 업로드했는지에 관계없이 언제든지 부하 테스트에 실패 기준을 추가할 수 있습니다.
CI/CD 파이프라인의 일부로 부하 테스트를 실행할 때 테스트 실패 기준을 사용하여 애플리케이션 빌드의 성능 저하를 식별할 수 있습니다.
매개 변수를 사용하여 여러 배포 슬롯에서 테스트
부하 테스트를 구성할 때 환경 변수 또는 비밀을 부하 테스트 스크립트에 전달하는 매개 변수를 지정할 수 있습니다. 이러한 매개 변수를 사용하면 테스트 스크립트를 재사용하고 다시 구성할 수 있습니다. 매개 변수를 사용하여 환경 변수를 부하 테스트에 전달하는 방법을 알아봅니다.
한 가지 예는 테스트 스크립트에 애플리케이션 엔드포인트 URL을 저장하지 않도록 매개 변수를 환경 변수로 사용하는 것입니다. 환경 변수를 사용하여 다른 구성 설정을 JMeter 테스트 스크립트로 전달할 수도 있습니다. 예를 들어 가상 사용자 수 또는 CSV 입력 파일의 파일 이름을 테스트 스크립트에 전달할 수 있습니다.
또한 여러 Azure App Service 배포 슬롯에서 테스트 스크립트를 다시 사용하려는 경우에도 매개 변수를 사용할 수 있습니다. 배포 슬롯은 자체 호스트 이름 및 별도의 URL을 가진 라이브 앱입니다. 애플리케이션 엔드포인트에 대한 매개 변수를 사용한 다음 애플리케이션에 대한 스테이징 환경을 설정할 수 있습니다.
다음 단계
다음의 방법을 알아보세요.
- Azure App Service에 대한 URL 기반 부하 테스트 만들기.
- 자동 성능 테스트를 구성
- Azure 애플리케이션의 성능 병목 상태를 식별