자동 스케일링이란?

완료됨

이 단원에서는 Azure 스케일링 개념을 살펴봅니다.

스케일링에 주의해야 하는 이유

클라우드의 주요 이점은 탄력적 스케일링입니다. 수요 증가에 따라 애플리케이션 인스턴스를 추가하여 스케일링 아웃합니다. 필요한 만큼 용량을 사용하여 부하 증가에 따라 스케일 아웃하고 추가 용량이 필요하지 않은 경우 스케일 할 수 있습니다.

탄력성 요구에 대한 일반적인 예는 조직의 웹 사이트에서 과도한 부하가 발생하는 경우에 나타납니다. 사이트에서 요구 사항을 충족하도록 크기를 조정할 수 없는 경우 요청은 프로세서 시간을 대기하는 큐에 있기 때문에 처리하는 데 더 많은 시간이 걸립니다. 고객에게는 사이트가 속도가 느리고 반응하지 않는 것으로 보입니다. 극단적인 경우에는 사이트가 중단된 것처럼 보일 수도 있습니다.

수동 및 자동 스케일링

수동 또는 자동 모드 중 하나를 사용하여 애플리케이션의 스케일링 설정을 구성할 수 있습니다. 수동에서는 예상할 수 있는 절대 인스턴스 수를 설정합니다. 그러나 자동(자동 스케일링)을 사용하면 스케일링 방법과 스케일링 양을 제어하는 규칙을 설정할 수 있습니다.

자동 크기 조정을 사용하면 애플리케이션의 부하를 처리하기 위해 적절한 양의 리소스가 실행되도록 할 수 있습니다. 자동 스케일링은 시스템 운영자가 리소스 추가 또는 제거나 시스템 성능 확인에 관한 결정을 지속적으로 내려야 할 필요성을 줄여서 관리 오버헤드를 간소화합니다. 최소값을 설정하면 애플리케이션이 항상 부하가 적은 상태에서 실행될 수 있습니다. 최대값을 설정하면 가능한 총 시간 비용이 제한됩니다. 만든 규칙을 사용하여 이러한 두 극한값 사이를 자동으로 조정합니다.

Diagram showing autoscale saving on compute costs.

“아웃” 및 “업”

애플리케이션은 다음 두 가지 주요 방법으로 확장될 수 있습니다.

  • 스케일 다운이라고도 하는 수직 스케일링은 리소스 용량 변경을 의미합니다. 예를 들어, 애플리케이션을 더 큰 컴퓨팅 크기로 이동할 수 있습니다. 수직 스케일링을 수행하려면 시스템을 다시 배포하는 동안 시스템을 일시적으로 사용할 수 없게 해야 하므로 수직 스케일링을 자동화하는 경우는 흔하지 않습니다.

  • 스케일 아웃이라고도 하는 수평 스케일링은 리소스의 인스턴스를 추가 또는 제거하는 것을 의미합니다. 애플리케이션은 새 리소스가 프로비전되는 동안 중단 없이 계속 실행됩니다. 프로비저닝 프로세스가 완료되면 솔루션은 이러한 추가 리소스에 배포됩니다. 수요가 감소하면 추가 리소스를 완전히 종료하고 할당을 취소할 수 있습니다.

자동 스케일링은 애플리케이션 인스턴스 수의 증가(“아웃”) 또는 감소(“”)인 스케일 “아웃”(수평으로)만 수행합니다.

Diagram showing the difference between scale up and scale out.

Azure Spring Apps의 자동 스케일링

Azure Spring Apps의 자동 스케일링은 실행될 때 Spring 애플리케이션의 리소스 메트릭을 모니터링합니다. 증가하는 워크로드를 처리하기 위해 추가 리소스가 필요한 상황을 검색하고, 시스템이 오버로드되기 전에 이러한 리소스를 사용할 수 있도록 합니다. 자동 스케일링은 Azure Spring Apps의 기본 제공 기능으로, 수요가 변경될 때 마이크로 서비스 애플리케이션의 성능을 최대화하도록 도와줍니다.

실제 예제

Raley’s 식품 매장은 Azure에서 호스트되는 Java 기반 전자 상거래 사이트의 코드와 인프라를 현대화해야 했습니다. 이 회사는 네트워크 할당도 최적화하고 자동화해야 했습니다. 모든 것이 강력하고, 항상 사용 가능하고, 가장 중요한 것은 관리하기 쉬워야 했습니다.

Raley’s는 Azure Spring Apps를 선택했습니다. Azure Spring Apps는 실시간 모니터링 및 자동 스케일링과 결합되어 Kubernetes의 기능을 제공하는 Spring Boot용 관리되는 서비스입니다. 또한 Raley’s에서 진정한 PaaS(Platform as a Service) 아키텍처를 채택하여 클라우드를 더욱 완벽하게 활용할 수 있도록 했습니다.

이 서비스는 백그라운드에서 Spring Boot 마이크로 서비스 애플리케이션의 인프라를 관리하므로 개발자는 코드에 집중할 수 있습니다. Java 라이브러리나 코드를 배포할 때 Spring Apps는 Spring 서비스 런타임과 앱을 자동으로 연결합니다.

배포된 후에는 Azure Spring Apps 앱이 Application Insights, Log Analytics와 같은 Azure Monitor 도구와 완벽하게 통합되어 성능과 오류에 대한 쉽고 완전히 구성 가능한 모니터링을 수행할 수 있습니다. 이러한 동일한 모니터링 서비스는 자동 스케일링을 실행할 수 있으므로 현재 부하에 맞게 리소스 크기를 적절하게 조정할 수 있습니다.

Diagram showing autoscale upscaling.