빠른 시작: Azure Spring Apps Standard 사용량 및 전용 플랜에서 애플리케이션에 대한 자동 크기 조정 설정
참고 항목
Azure Spring Apps는 Azure Spring Cloud 서비스의 새 이름입니다. 서비스에 새 이름이 지정되었지만, 자산을 업데이트하는 동안 스크린샷, 비디오, 다이어그램과 같은 일부 위치에서는 당분간 이전 이름이 표시됩니다.
이 문서의 적용 대상: ✔️ 표준 사용량 및 전용(미리 보기) ❌기본/표준 ❌ 엔터프라이즈
이 문서에서는 Azure Spring Apps Standard 사용량 및 전용 플랜에서 애플리케이션에 대한 자동 크기 조정 규칙을 설정하는 방법을 설명합니다. 이 플랜은 Azure Container Apps 환경을 사용하여 Spring 애플리케이션을 호스트하고 다음과 같은 관리와 지원을 제공합니다.
- 선언적 스케일링 규칙을 통해 자동 수평 스케일링을 관리합니다.
- Azure Container Apps에서 지원하는 모든 스케일링 규칙을 지원합니다.
자세한 내용은 Azure Container Apps 설명서를 참조하세요.
필수 구성 요소
- Azure 구독 Azure를 구독하고 있지 않다면 시작하기 전에 Azure 무료 계정을 참조하세요.
- Azure Spring Apps 표준 사용량 및 전용 플랜 서비스 인스턴스입니다. 자세한 내용은 빠른 시작: Azure Spring Apps Standard 사용량 및 전용 플랜 서비스 인스턴스 프로비전을 참조하세요.
- Azure Spring Apps에 배포된 Spring 앱입니다.
크기 조정 정의
스케일링은 제한과 규칙의 조합으로 정의됩니다.
제한은 Spring에서 허용하는 최소 및 최대 인스턴스 수입니다.
규모 제한 기본값 최솟값 최댓값 배포당 최소 인스턴스 수 1 0 30 배포당 최대 인스턴스 수 10 1 30 기본적으로 Spring 애플리케이션의 최소 인스턴스 수는 배포가 항상 실행되도록 1로 설정됩니다. 0으로 스케일 인하려는 경우 최소 인스턴스 개수를 0으로 설정할 수 있습니다.
규칙은 자동 스케일링이 인스턴스를 추가하거나 제거하기 위해 준수하는 조건입니다. 스케일링 규칙에는 스케일링 규칙의 Azure Container Apps 스케일링 규칙 설정 섹션에 설명된 대로 HTTP, TCP, 사용자 지정 규칙이 포함됩니다.
둘 이상의 스케일링 규칙을 정의하는 경우 규칙의 첫 번째 조건이 충족되면 자동 스케일링이 시작됩니다.
폴링 간격 및 쿨다운 기간은 자동 스케일링 중에 발생하는 두 가지 시간 범위입니다.
- 폴링 간격은 규칙에 정의된 대로 실시간 데이터의 각 폴링 작업 간의 시간 범위를 정의합니다. 폴링 간격은 기본적으로 30초로 설정됩니다.
- 예를 들어 자동 스케일링이 마지막으로 메시지 큐를 확인한 후 5분 동안 기다렸다가 비어 있는 경우와 같이 0으로 스케일링할 때만 쿨다운 기간이 적용됩니다.
자동 스케일링 설정
Azure Portal 또는 Azure CLI를 사용하여 애플리케이션에 대한 자동 스케일링을 설정할 수 있습니다.
다음 단계를 통해 자동 스케일링 설정과 규칙을 정의합니다.
- Azure Portal에 로그인합니다.
- Azure 서비스에서 Azure Spring Apps를 선택합니다.
- 이름 열에서 자동 스케일링하려는 Azure Spring Apps 인스턴스를 선택합니다.
- Azure Spring Apps 인스턴스에 대한 개요 페이지의 탐색 창에서 앱을 선택합니다.
- 자동 스케일링할 애플리케이션을 선택합니다.
- 선택한 앱의 개요 페이지의 탐색 창에서 스케일 아웃 을 선택합니다.
- 스케일 아웃(미리 보기) 페이지에서 자동 스케일링하려는 배포를 선택합니다.
- 배포의 인스턴스 제한을 설정합니다.
- 추가를 선택하여 스케일링 규칙을 추가합니다.
사용자 지정 크기 조정 규칙
사용자 지정 규칙 정의에 대한 자세한 내용은 Keda 배율 조정기를 참조하세요. 다음 섹션에서는 MySQL 및 Cron에서 크기 조정 규칙을 설정하는 두 가지 예를 보여 줍니다.
MySQL 데이터베이스에 자동 크기 조정 규칙 설정
다음 CLI 명령은 Keda MySQL 배율 조정기를 기반으로 Spring 애플리케이션을 자동 크기 조정하는 방법을 보여 줍니다. 먼저 SQL 연결 문자열을 저장할 비밀을 만듭니다. 이 비밀은 크기 조정 규칙 인증에 사용됩니다. 그런 다음 테이블의 행 수를 기준으로 앱 크기를 조정하는 규칙을 설정합니다.
az spring app update \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--name <app-name> \
--secrets mysqlconnectionstring="<username>:<pwd>@tcp(<server name>:3306)/<database name>"
az spring app scale \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--name <app-name> \
--scale-rule-type mysql \
--scale-rule-name <your rule name> \
--scale-rule-auth "connectionString=mysqlconnectionstring" \
--scale-rule-metadata queryValue=4 query="SELECT count(*) FROM mytable" \
--min-replicas 0 \
--max-replicas 3
Linux cron을 기반으로 규칙 만들기
다음 명령은 Keda Cron 배율 조정기를 기반으로 규칙을 설정하는 방법을 보여 줍니다. 복제본은 cron 시간 간격 동안 원하는 수로 크기 조정됩니다.
az spring app scale \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--name <app-name> \
--scale-rule-type cron \
--scale-rule-name testscalerule \
--scale-rule-metadata timezone="Asia/Shanghai" \
start="10 * * * *" \
end="15 * * * *" \
desiredReplicas="3" \
--min-replicas 0 \
--max-replicas 3
크기 조정 이벤트
다음 예와 같이 기본 컨테이너 앱의 시스템 로그에서 크기 조정 이벤트를 찾고 KEDA
를 사용하여 EventSource를 필터링할 수 있습니다.
ContainerAppSystemLogs_CL
| where ContainerAppName_s == 'YourAppName' and EventSource_s == 'KEDA'
리소스 정리
이 문서에서 만든 리소스가 더 이상 필요하지 않으면 삭제해야 합니다. 리소스를 삭제하려면 해당 리소스가 포함된 리소스 그룹을 삭제하면 됩니다. Azure Portal을 사용하여 리소스 그룹을 삭제할 수 있습니다. 또는 Azure CLI를 사용하여 리소스 그룹을 삭제하려면 다음 명령을 사용합니다.
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."