Azure 상식

Azure VMSS의 특징과 Ochestration 모드 분석

ktzzang0601 2025. 8. 4. 18:03

1. VMSS란?

  • Virtual Machine Scale Set(이하 확장 집합) 의 약자로, 부하 분산된 여러 VM의 그룹을 만들고 관리할 수 있는 구성 세트입니다.(AWS Auto Scaling Group)

2. VMSS의 장점

  • 손쉬운 여러 VM 만들기 및 관리
    • 애플리케이션을 실행하는 VM을 많이 사용하는 경우 환경 전체에서 일관된 구성을 유지해야 합니다. 신뢰할 수 있는 애플리케이션 성능을 위해 VM 크기, 디스크 구성, 기본 OS 이미지, 애플리케이션 설치가 모든 VM에서 일치해야 합니다.
    • 기본 4계층 트래픽 분산에는 Azure 부하 분산 장치를 사용하고, 고급 7계층 트래픽 분산 및 TLS 종료에는 Azure Application Gateway를 사용하도록 지원합니다.
  • 고가용성 및 애플리케이션 복원력 제공
    • 여러 인스턴스를 실행 중 VM 인스턴스 중 하나에 문제가 있는 경우, 고객은 중단을 최소화하면서 다른 VM 인스턴스 중 하나를 통해 애플리케이션에 계속 액세스합니다.
    • 추가 가용성을 위해 가용성 영역을 사용하여 단일 데이터 센터 또는 여러 데이터 센터 내에서 VM 인스턴스를 확장 집합에 자동으로 배포할 수 있습니다. 가용성 영역 VM을 배포하면 데이터 센터 오류로부터 보호할 수 있습니다. 확장 집합은 데이터 센터 오류로부터 보호할 수 없습니다.
  • 리소스 수요 변화에 따라 자동으로 애플리케이션 크기 조정
    • 자동 크기 조정 옵션은 수요가 낮을 때 애플리케이션을 실행하는 불필요한 VM 인스턴스의 수를 최소화하는 한편, 수요가 증가하고 추가 VM 인스턴스가 자동으로 추가될 때 고객이 허용 가능한 수준의 성능을 계속 확보할 수 있습니다. 
  • 대규모 작업
    • 확장 집합은 Azure Compute Gallery(이전의 Shared Image Gallery)를 통해 표준 마켓플레이스 이미지 및 사용자 지정 이미지에 대해 최대 1,000개의 VM 인스턴스를 지원합니다. 관리되는 이미지를 사용하여 확장 집합을 만드는 경우에는 VM 인스턴스가 600개로 제한됩니다.
  • 비용 효율적인 서비스
    • 확장 집합을 사용하는 데 추가 비용은 없습니다. 확장 집합에서 사용하는 컴퓨팅, 네트워크 및 스토리지 리소스에 따라 요금이 청구됩니다.

3. 가용성 집합(Availability Sets)과의 비교

  • 가용성 집합은 관련 VM을 동시에 중단하는 상관 관계 오류가 발생할 가능성을 줄이는 VM의 논리적 그룹화입니다. 가용성 집합은 안정성을 높이기 위해 다른 장애 도메인에 VM을 배치하는데, 특히 가용성 영역을 지원하지 않는 경우에 특히 유용합니다.
  • 가용성 집합은 여러 장애 도메인에 영향을 줄 수 있는 데이터 센터 네트워크 오류와 같은 특정 공유 인프라 오류에 여전히 취약하여, VMSS를 권장

4. 오케스트레이션 모드

  • 해당 옵션은 VMSS 오케스트레이션 섹션에서 설정하며, 유연한 모드(Flexible)와 균일한(Uniform) 모드를 선택할 수 있으며, 확장에서 용량 수동 업데이트, 자동 크기 조정, 크기 조정 프로필 없음(균일한 모드에선 비활성화)을 선택할 수 있다.
  • 유연한 오케스트레이션은 동일하거나 혼합된 가상 머신 유형을 사용하여 고가용성 및 확장성을 위해 최적화된 모드로 기본적인 권장 모드이다. 이 모드의 주요 장점 중 하나는 확장 집합 자식 가상 머신 대신 표준 Azure IaaS VM을 통해 오케스트레이션 기능을 제공한다는 것입니다. 즉, 균일 오케스트레이션에서 사용하는 Virtual Machine Scale Set VM API 대신 유연 오케스트레이션 인스턴스를 관리할 때 모든 표준 VM API를 사용할 수 있습니다
  • 균일한 오케스트레이션은 동일한 가상 머신 인스턴스를 사용하는 대규모 워크로드에 최적화되었습니다. 미리 정의된 가상 머신 프로필을 사용하여 확장 집합 내에서 동일한 인스턴스를 배포하여 일관성을 보장한다는 장점이 있지만, 표준 Azure IaaS VM API 명령, Azure Resource Manager 태그 지정, RBAC, Azure Backup 또는 Azure Site Recovery와의 호환성이 부족하다는 단점이 있다.

5. Flexible Ochestration, Uniform Ochestration, Availability Sets 간 비교표 (참고) 

카테고리 기능 확장 집합에 대한 Flexible 오케스트레이션에서 지원 확장 집합에 대한 Uniform 오케스트레이션에서 지원 가용성 집합에서 지원
기본 설정 가상 머신 유형 표준 Azure IaaS VM(Microsoft.compute/virtualmachines) 확장 집합 특정 VM(Microsoft.compute/virtualmachinescalesets/virtualmachines) 표준 Azure IaaS VM(Microsoft.compute/virtualmachines)
최대 인스턴스 수(FD 보장 사용) 1000 100 200
지원되는 SKU 모든 SKU 모든 SKU 모든 SKU
VM, NIC, 디스크에 대한 모든 컨트롤 Virtual Machine Scale Sets VM API를 사용한 제한된 제어
RBAC 사용 권한 필요 컴퓨팅 Virtual Machine Scale Sets 쓰기, 컴퓨팅 VM 쓰기, 네트워크 컴퓨팅 Virtual Machine Scale Sets 쓰기 해당 없음
테넌트 간 공유 이미지 갤러리
가속된 네트워킹
스폿 인스턴스 및 가격 책정 예, 스폿 및 일반 우선 순위 인스턴스를 모두 사용할 수 있습니다 예, 인스턴스는 모두 스폿이거나 모두 정상이어야 합니다 아니요, 일반 우선 순위 인스턴스만 해당됩니다.
혼합 운영 체제 예, Linux 및 Windows는 동일한 Flexible 확장 집합에 상주할 수 있습니다. 아니요, 인스턴스는 동일한 운영 체제입니다 예, Linux 및 Windows는 동일한 가용성 집합에 상주할 수 있습니다.
디스크 유형 관리 디스크만, 모든 스토리지 유형 관리형 디스크와 비관리형 디스크 관리형 디스크와 비관리형 디스크. Ultra 디스크는 지원되지 않습니다.
고객 관리 키로 디스크 서버 쪽 암호화
쓰기 가속기
근접 배치 그룹 예, 가용성 영역 하나를 사용하거나 없는 경우. 배포 후에는 변경 불가.  예, 가용성 영역 하나를 사용하거나 없는 경우. 모든 인스턴스를 배포 중지한 후 변경 가능
Azure 전용 호스트
관리 ID 사용자 할당 ID 전용1 시스템 할당 또는 사용자 할당 N/A(개별 인스턴스에서 관리 ID를 지정할 수 있음)
그룹에 기존 VM 추가/제거 아니요 아니요
Service Fabric 아니요 아니요
Azure Kubernetes Service(AKS) / AKE 아니요 아니요
사용자 데이터 개별 VM에 대해 UserData를 지정할 수 있습니다.
VM NIC 및 디스크를 삭제하거나 유지하는 옵션 아니요(항상 삭제)
Ultra Disks 아니요
자동 조정 및 인스턴스 오케스트레이션 집합의 VM 나열 예, AvSet의 VM을 나열
자동 크기 조정(수동, 메트릭 기반, 일정 기반) 아니요
VM 인스턴스를 삭제할 때 NIC 및 디스크 자동 제거 아니요
업그레이드 정책(Virtual Machine Scale Set) 자동, 롤링, 수동 자동, 롤링, 수동 해당 없음
자동 OS 업데이트(Virtual Machine Scale Set) 아니요 해당 없음
게스트 보안 패치 중 아니요
종료 알림(Virtual Machine Scale Set) 해당 없음
애플리케이션 상태 모니터링 애플리케이션 상태 확장 애플리케이션 상태 확장 또는 Azure Load Balancer 프로브 애플리케이션 상태 확장
인스턴스 복구(Virtual Machine Scale Set) 해당 없음
인스턴스 보호 아니요
규모 감축 정책 아니요
VMSS 인스턴스 보기 가져오기 아니요 해당 없음
VM Batch 작업(모두 시작, 모두 중지, 하위 집합 삭제 등) 아니요
고가용성 가용성 SLA 장애 도메인에 분산된 인스턴스의 경우 99.95%; 여러 영역으로 분산된 인스턴스의 경우 99.99% 단일 배치 그룹에서 FD>1을 초과하는 경우 99.95%, 여러 영역에 분산된 인스턴스의 경우 99.99% 99.95%
가용성 영역 1, 2 또는 3개의 가용성 영역에 인스턴스를 지정합니다. 1, 2 또는 3개의 가용성 영역에 인스턴스를 지정합니다. 지원되지 않음
특정 가용성 영역으로 VM 할당 아니요 아니요
장애 도메인 – 최대 분산(Azure는 최대 확산 인스턴스) 아니요
장애 도메인 – 고정 분산 2~3 FD(지역 최대 FD 수에 따라 다름); 영역 배포의 경우 1 2, 3, 5 FD, 영역 배포의 경우 1, 5 2~3 FD(지역 최대 FD 수에 따라 다름)
특정 장애 도메인에 VM 할당 아니요 아니요
업데이트 도메인 사용 중단됨(FD로 FD를 수행한 플랫폼 유지 관리) 5 업데이트 도메인 최대 20개의 업데이트 도메인
유지 보수 수행 VM API를 사용하여 각 인스턴스에 대한 유지 관리 트리거 해당 없음
용량 예약
네트워킹 기본 아웃바운드 연결 아니요, 명시적 아웃바운드 연결이 있어야 합니다.
Azure Load Balancer 표준 SKU
애플리케이션 게이트웨이
InfiniBand 네트워킹 아니요 예, 단일 배치 그룹만 해당
기본 LB 아니요
네트워크 포트 전달 예(개별 인스턴스에 대한 NAT 규칙) 예(NAT 풀) 예(개별 인스턴스에 대한 NAT 규칙)
백업 및 복구 Azure 백업 아니요
Azure 사이트 복구 예(PowerShell을 통해) 아니요
Azure 경고
VM 인사이트 개별 VM에 설치할 수 있습니다.

 

6. 애플리케이션 변경시 VMSS 변경 절차

  • Azure Virtual Machine Scale Set(VMSS)는 애플리케이션이나 인스턴스 구성을 변경할 때 다음과 같은 절차로 VM 인스턴스들이 업데이트됩니다
    1. 새 이미지 템플릿 준비
      먼저 변경된 애플리케이션(새 코드, OS 패치 등)을 포함한 새로운 VM 이미지를 준비합니다.
      • 기존 이미지를 업데이트 하거나 새로운 이미지를 만듭니다.
    2. VMSS 모델 업데이트
      생성한 최신 이미지(또는 앱 변경 사항이 반영된 매개변수)를 VMSS에 등록합니다.
      • Azure Portal, CLI, PowerShell 등에서 새 이미지를 VMSS 모델에 적용합니다.
    3. 업그레이드 정책 적용
      VMSS의 업그레이드 모드(Manual, Automatic, Rolling)를 선택합니다. 
      • Automatic(자동): 새 인스턴스가 자동으로 단계별로 업그레이드됩니다. 스케일 세트는 종료되는 가상 머신의 순서를 보장하지 않습니다. 스케일 세트는 업그레이드를 위해 모든 가상 머신을 동시에 종료할 수 있습니다. 구성 및 설정을 변경하는 동안 인스턴스 가동 시간에 대해 걱정하지 않아도 되는 DevTest 시나리오에 가장 적합합니다.
      • Manual(수동): 관리자가 직접 업그레이드 시작하며, 수동 업그레이드 정책 모드를 사용하면 확장 집합 인스턴스를 언제 업데이트할지 선택할 수 있습니다. 확장 집합 모델이 변경되어도 기존 가상 머신에는 아무런 변화가 자동으로 발생하지 않습니다. 확장 집합에 추가된 새 인스턴스는 사용 가능한 최신 업데이트 모델을 사용합니다. 수동 업그레이드 정책 모드는 인스턴스가 언제, 어떻게 업데이트되는지에 대한 제어력을 높여야 하는 워크로드에 가장 적합합니다.
      • Rolling: 지정한 비율·수에 따라 점진적으로 인스턴스를 재생성합니다.  롤링 업그레이드 정책 모드를 사용하면 확장 세트가 일괄적으로 업데이트를 수행합니다. 또한 일괄 크기, 최대 정상 비율, 비정상 인스턴스 우선순위 지정, 가용 영역 전체에 걸친 업그레이드 활성화 등의 설정을 통해 업그레이드를 더욱 효과적으로 제어할 수 있습니다. 롤링 업그레이드 정책 모드는 일정 수의 인스턴스를 항상 사용할 수 있어야 하는 프로덕션 워크로드에 가장 적합합니다. 롤링 업그레이드는 가용성과 가동 시간을 저해하지 않고 인스턴스를 최신 모델로 업그레이드하는 가장 안전한 방법입니다. Flexible Orchestration을 사용하는 가상 머신 확장 집합에서 롤링 업그레이드 정책 모드를 사용하는 경우 확장 집합은 애플리케이션 상태를 모니터링하기 위해 애플리케이션 상태 확장 기능 도 사용해야 합니다. Uniform Orchestration을 사용하는 가상 머신 확장 집합에서 롤링 업그레이드 정책 모드를 사용하는 경우 확장 집합에도 상태 프로브가 있어야 하거나 애플리케이션 상태 확장을 사용하여 애플리케이션 상태를 모니터링해야 합니다.
    4. 인스턴스 업데이트 실행
      정책에 따라, 기존 VM 인스턴스가 새 이미지 또는 변경 사항으로 교체(재배포, 재부팅, 교체 등)됩니다.
      • 구체적으로, 각 VM 인스턴스가 순차적(혹은 병렬)으로 신규 인스턴스로 교체되며, 서비스 중단 없이 가용성 그룹을 고려하여 롤링 방식으로 진행됩니다.
    5. 상태 확인 및 마감
      모든 인스턴스가 정상적으로 새 이미지/애플리케이션으로 배포된 것을 확인합니다.

7. 참고 문서