연습 - 자동 스케일링 규칙

완료됨

이 연습에서는 샘플 애플리케이션의 자동 스케일링을 설정하고 트리거하는 연습을 살펴보겠습니다.

규칙 연습

샘플 Azure Spring Apps 애플리케이션에서 애플리케이션을 만들 때 이미 고객 서비스 마이크로 서비스에 대한 스케일 아웃 작업을 트리거했습니다.

tomcat 요청 수가 평균적으로 분당 10개 세션을 초과하면 고객 서비스 앱이 스케일 아웃됩니다. 자동 스케일링이 트리거된 후 요청 수가 평균적으로 분당 10개 세션보다 적거나 같으면 스케일 됩니다.

Azure Portal에서 자동 스케일링 설정 보기

  1. 새 웹 브라우저 탭에서 Azure Portal을 엽니다.
  2. 상단 검색 상자에서 Azure Spring Apps를 검색합니다.
  3. Azure Spring Apps 개요 페이지의 결과에서 Azure Spring Apps 인스턴스를 선택합니다.
  4. 왼쪽 탐색 창에 있는 메뉴에서 설정 아래의 탭을 선택합니다.
  5. 고객 서비스 애플리케이션을 선택합니다. 그러면 애플리케이션의 개요 페이지가 표시됩니다.
  6. 페이지 왼쪽에 있는 메뉴의 설정 아래에서 스케일 아웃 탭으로 이동합니다.

Screenshot of the scale out setting in the Azure portal.

자동 스케일링 수요를 관리하는 다음 두 가지 옵션이 있습니다.

  1. 수동 스케일링: 고정된 인스턴스 수를 유지합니다. 표준 계층에서는 최대 500개 인스턴스까지 스케일 아웃할 수 있습니다. 이 값은 마이크로서비스 애플리케이션의 개별 실행 인스턴스 수를 변경합니다.
  2. 사용자 지정 자동 스케일링: 메트릭을 기반으로 일정에 따라 스케일링

Azure Portal에서 애플리케이션의 사전 설정 구성을 확인합니다. 다음 그림에서는 tomcat 요청 수에 맞게 스케일링하는 사용자 지정 자동 스케일링 설정을 보여 줍니다.

Screenshot of the Custom autoscale setup in the Azure portal.

완료된 자동 스케일링 이벤트 보기

스케일 아웃 설정 화면에서 실행 기록 탭으로 이동하여 가장 최근 스케일링 작업을 확인합니다. 탭에는 시간에 따른 관찰된 용량의 변화가 그래픽으로 표시되고 모든 자동 스케일링 작업의 로그가 표시됩니다.

Screenshot of the autoscale run history in the Azure portal.

스크립트를 사용하여 스케일 아웃 작업 트리거

웹 브라우저 또는 셸 스크립트를 통해 수동으로 자동 스케일링을 트리거할 수도 있습니다.

자동 스케일링 규칙을 테스트하기 위해 인스턴스에서 일부 부하를 생성합니다. 이 시뮬레이션된 부하로 인해 자동 스케일링 규칙이 스케일 아웃되고 인스턴스 수를 늘립니다. 시뮬레이션된 부하가 중지되면 자동 스케일링 규칙이 스케일 인되고 인스턴스 수를 줄입니다.

자동 스케일링을 트리거할 수 있도록 Azure Spring Apps 애플리케이션을 만드는 데 사용한 것과 동일한 GIT 리포지토리에서 셸 스크립트를 제공했습니다.

  1. https://shell.azure.com bash 창에서 다음 명령을 실행하여 Spring Apps 인스턴스 이름(이전 연습에서 사용한 것과 동일한 Azure Spring Apps 서비스 이름)을 설정합니다.

    export SPRING_APPS_SERVICE=<spring-apps-instance-name>
    
  2. 다음으로, bash 창에서 다음 명령을 실행하여 Spring Apps 고객 서비스 마이크로 서비스에 대해 트랜잭션을 실행합니다.

    cd mslearn-autoscale-java
    sh loadTest.sh
    
  3. 인스턴스에 요청을 100개 보내는 고객 서비스 부하 테스트의 출력이 표시됩니다.

웹 브라우저를 통해 수동으로 스케일 아웃 작업 트리거(선택 사항)

생성된 자동 스케일링 설정에서 스케일 아웃 조건을 수동으로 트리거하려면 고객 서비스 마이크로 서비스에는 1분 이내에 10개를 초과하는 요청이 있어야 합니다.

  1. 새 브라우저 창을 열고 고객 서비스 마이크로 서비스로 이동합니다.

    https://<your-spring-apps-service>-api-gateway.azuremicroservices.io/api/customer/owners
    
  2. 연속으로 빠르게 페이지를 10번 이상 다시 로드합니다.

스케일 아웃 작업 보기

  1. 원래 브라우저 창으로 돌아가서 자동 스케일링 설정에서 실행 기록 탭을 선택합니다.

  2. 인스턴스 수를 반영하는 차트가 표시됩니다.

  3. 잠시 후에 인스턴스 수가 1에서 2로 증가해야 합니다.

  4. 차트 아래에 이 자동 스케일링 설정에 따라 수행된 각 스케일링 작업의 활동 로그 항목이 표시됩니다.

Screenshot of the autoscale scale-out history in the Azure portal.

스케일 인 작업

자동 스케일링 설정의 스케일 인 조건은 1분 동안 고객 서비스 마이크로 서비스에 대한 요청이 10개 이하로 있는 경우 트리거됩니다.

  1. 고객 서비스 마이크로 서비스로 전송되는 요청이 없고 앱/서비스에 대한 브라우저 창이 닫혀 있는지 확인합니다.

  2. 몇 분 안에 인스턴스 수가 2에서 1로 떨어질 수 있습니다(아래 중요한 점 참조).

Screenshot of the autoscale scale-in action in the Azure portal.

Important

자동 스케일링이 스케일링 후 최종 상태를 예측하려고 시도하기 때문에 Azure Spring Apps가 스케일링되지 않을 수 있습니다. 즉, 평균 tomcat 요청 수가 동일하게 유지되거나 작은 양만 떨어지면 자동 스케일링은 즉시 다시 스케일링되어야 합니다.