팁 (조언)
이 콘텐츠는 eBook, Architecting Cloud Native .NET Applications for Azure에서 발췌한 것으로, .NET Docs 또는 오프라인에서 읽을 수 있는 다운로드 가능한 무료 PDF로 제공됩니다.
애플리케이션의 크기를 조정하는 방법에는 두 가지가 있습니다. 전자는 단일 리소스에 용량을 추가하는 것을 의미하고, 후자는 용량을 늘리기 위해 더 많은 리소스를 추가하는 것을 의미합니다.
간단한 솔루션: 확장
CPU, 메모리, 디스크 I/O 속도 및 네트워크 I/O 속도가 증가한 기존 호스트 서버를 업그레이드하는 것을 스케일 업이라고 합니다. 클라우드 네이티브 애플리케이션을 확장하려면 클라우드 공급업체에서 더 많은 지원 리소스를 선택해야 합니다. 예를 들어 Kubernetes 클러스터에서 더 큰 VM을 사용하여 새 노드 풀을 만들 수 있습니다. 그런 다음 컨테이너화된 서비스를 새 풀로 마이그레이션합니다.
서버리스 앱이 전용 앱 서비스 계획의 프리미엄 Functions 계획 또는 프리미엄 인스턴스 크기를 선택하여 확장됩니다.
클라우드 네이티브 앱 확장
클라우드 네이티브 애플리케이션은 종종 수요의 큰 변동을 경험하며, 갑작스러운 상황에서도 확장성을 요구합니다. 그들은 스케일 아웃을 선호합니다. 확장은 기존 클러스터에 추가 머신(노드라고 함) 또는 애플리케이션 인스턴스를 추가하여 수평적으로 수행됩니다. Kubernetes에서 앱의 구성 설정(예: 노드 풀 크기 조정)을 조정하거나 자동 크기 조정을 통해 수동으로 크기를 조정할 수 있습니다.
AKS 클러스터는 다음 두 가지 방법 중 하나로 자동 크기 조정이 가능합니다.
먼저 Horizontal Pod Autoscaler 는 리소스 수요를 모니터링하고 POD 복제본의 크기를 자동으로 조정하여 충족합니다. 트래픽이 증가하면 서비스를 확장하기 위해 추가 복제본이 자동으로 프로비전됩니다. 마찬가지로 수요가 감소하면 서비스 규모 감축을 위해 제거됩니다. 크기를 조정할 메트릭(예: CPU 사용량)을 정의합니다. 실행할 복제본의 최소 및 최대 수를 지정할 수도 있습니다. AKS는 해당 메트릭을 모니터링하고 그에 따라 크기를 조정합니다.
다음으로 , AKS 클러스터 자동 크기 조정기 기능을 사용하면 수요를 충족하도록 Kubernetes 클러스터에서 컴퓨팅 노드의 크기를 자동으로 조정할 수 있습니다. 이 기능을 사용하면 더 많은 컴퓨팅 용량이 필요할 때마다 기본 Azure Virtual Machine Scale Set에 새 VM을 자동으로 추가할 수 있습니다. 또한 더 이상 필요하지 않은 경우 노드를 제거합니다.
그림 3-11은 이러한 두 크기 조정 서비스 간의 관계를 보여 줍니다.
그림 3-11. App Service 계획을 확장합니다.
함께 작업하면 변동하는 수요를 지원하기 위해 최적의 수의 컨테이너 인스턴스와 컴퓨팅 노드를 모두 보장합니다. 가로 Pod 자동 크기 조정기는 필요한 Pod 수를 최적화합니다. 클러스터 자동 크기 조정기는 필요한 노드 수를 최적화합니다.
Azure Functions의 확장성 향상
Azure Functions는 요청 시 자동으로 규모 확장됩니다. 서버 리소스는 트리거된 이벤트 수에 따라 동적으로 할당되고 제거됩니다. 함수를 실행할 때 사용되는 컴퓨팅 리소스에 대해서만 요금이 청구됩니다. 청구는 사용된 실행 수, 실행 시간 및 메모리를 기반으로 합니다.
기본 사용 계획은 대부분의 앱에 경제적이고 확장 가능한 솔루션을 제공하지만, 프리미엄 옵션을 사용하면 개발자가 사용자 지정 Azure Functions 요구 사항을 유연하게 사용할 수 있습니다. 프리미엄 플랜으로 업그레이드하면 인스턴스 크기, 미리 준비된 인스턴스(콜드 시작 지연 방지) 및 전용 VM을 제어할 수 있습니다.
.NET