[Azure Computing] VMSS(Virtual Machine Scale Set) 이란?
Azure VMSS(Virtual Machine Scale Sets) 이란 Microsoft Azure Cloud 환경에서 대규모 애플리케이션이 배포 되어진 Azure VM 을 손쉽게 확장할 수 있도록 도와주는 솔루션입니다.
ex)
아파트 청약 기간 동안, 청약 신청자들이 몰려 청약 서비스가 올라간 서버에 큰 부하를 주면서 웹사이트가 다운되는 경우가 종종 발생합니다. 평소에는 서버가 안정적으로 운영되다가도, 인기 있는 "로또 청약"이 시작되면 트래픽이 급증하여 서버가 이를 감당하지 못하고 팡팡 터지는 경우가 많습니다.
이런 상황에서 Azure VMSS를 사용하면, 서비스에 대한 수요에 맞춰 자동으로 서버(VM)를 확장할 수 있어 문제를 해결할 수 있습니다. 청약 신청자가 몰리면 VMSS가 자동으로 새로운 VM을 추가하여 트래픽을 분산시키고, 신청자 수가 줄어들면 자동으로 VM 수를 줄여 비용을 절감할 수 있습니다.
이렇게 하면, 청약 기간 동안에도 서비스가 안정적으로 운영되며, 사용자들은 원활하게 청약을 신청할 수 있습니다. 따라서, Azure VMSS를 사용하면 서버 관리가 훨씬 수월해지고, 서비스의 가용성과 성능이 크게 향상됩니다.
* 그냥 집을 사고싶다. ㅡㅡ 걍 집을 늘리면 위 설명도 다른걸로 할텐데....
1. Flexible-VMSS (유연한)
Flexible 모드에서는 서로 다른 구성의 가상 머신들이 존재할 수 있습니다. 다양한 VM들이 각각의 역할을 수행하며, 로드 밸런서를 통해 트래픽이 여러 개의 VM에 분산됩니다.
*이 모드는 서로 다른 크기, 이미지, 설정의 VM들을 유연하게 사용할 수 있으며, 고가용성을 위해 여러 영역에 분산되어 운영될 수 있습니다.
ex)
아파트 청약 시스템에서, 청약 신청 처리 서버, 고객 상담 서버, 실시간 조회 서버가 각각 다른 요구 사항을 가집니다. 이때, Flexible 모드를 사용하면 각 서버가 서로 다른 크기와 설정으로 운영되며, 필요한 자원에 따라 유연하게 확장할 수 있습니다.
2. Uniform-VMSS (균일성)
Uniform 모드에서는 동일한 구성의 가상 머신들이 그룹화되어 동일한 방식으로 확장 및 관리됩니다. 모든 VM이 같은 이미지를 사용하며, 로드 밸런서를 통해 트래픽이 균일하게 분산됩니다.
*이 모드는 동일한 설정과 크기의 VM을 사용하여 일관된 성능을 제공하며, 주로 균일한 작업 부하를 처리하는 데 사용됩니다.
ex)
아파트 청약 시스템에서, 대규모 청약 신청을 처리하기 위해 동일한 설정의 서버 여러 대를 동시에 운영합니다. 이때, Uniform 모드를 사용하면 모든 서버가 동일한 이미지를 사용해 일관된 성능을 유지하며, 트래픽이 균일하게 분산됩니다.
수동 크기 조정은 사용자가 직접 필요한 가상 머신(VM)의 수를 조정하는 방법입니다. 즉, 트래픽이나 워크로드에 따라 자동으로 VM을 늘리거나 줄이는 것이 아니라, 관리자가 상황에 맞게 수동으로 VM 인스턴스를 추가하거나 제거하는 방식입니다.
ex) 아파트 청약 기간 동안 예상되는 트래픽 증가에 대비해, 관리자가 미리 VM 인스턴스를 수동으로 추가하여 서버 용량을 늘립니다. 청약이 끝나면 다시 수동으로 VM 수를 줄여 비용을 절감할 수 있습니다.
장점: 예상되는 트래픽을 기반으로 직접 VM의 수를 조절할 수 있어, 정확하게 필요한 만큼만 리소스를 사용할 수 있습니다.
단점: 워크로드 변화를 실시간으로 반영하지 못하므로, 관리자가 주기적으로 모니터링하고 조정해야 합니다.
사용자 지정 자동 크기 조정은 특정 조건에 따라 가상 머신(VM) 인스턴스의 수를 자동으로 조정하는 기능입니다. 사용자가 직접 설정한 규칙에 따라, VM이 자동으로 확장(증가)되거나 축소(감소)됩니다.
ex)
아파트 청약 서버에서 청약 신청자가 몰릴 때 CPU 사용률이 80%를 넘으면 자동으로 VM 인스턴스를 추가하고, 신청자가 줄어들어 CPU 사용률이 30% 미만으로 떨어지면 자동으로 VM 인스턴스를 줄이도록 설정할 수 있습니다.
장점: 시스템 자원의 사용량이나 트래픽 변화에 따라 VM 수를 자동으로 조절할 수 있어, 성능을 유지하면서도 비용을 효율적으로 관리할 수 있습니다.
*사용자가 특정 조건(예: CPU 사용률, 메모리 사용량, 네트워크 트래픽 등)을 기준으로 확장 또는 축소 규칙을 설정합니다.
스케일 아웃 (Scale Out)
시스템의 처리 능력을 증가시키기 위해 새로운 서버나 인스턴스를 추가하는 방법입니다.
스케일 인 (Scale In)
사용자의 수요가 줄어들거나 필요하지 않은 자원이 있을 때, 불필요한 서버나 인스턴스를 줄이는 방법입니다.
감사합니다.