VM(가상 머신)의 크기를 조정하여 총 Azure Virtual Desktop 배포 비용을 줄일 수 있습니다. 즉, 사용량이 많은 시간에 세션 호스트 VM을 종료하고 할당을 취소한 다음, 다시 켜고 사용량이 많은 시간에 다시 할당합니다.
이 문서에서는 Azure Virtual Desktop 환경에서 세션 호스트 VM을 자동으로 스케일링하는 Azure Automation 계정 및 Azure Logic Apps로 빌드된 크기 조정 도구에 대해 알아봅니다. 크기 조정 도구를 사용하는 방법을 알아보려면 Azure Automation 및 Azure Logic Apps를 사용하여 세션 호스트의 크기 조정 설정을 참조하세요.
참고
Azure Virtual Desktop의 네이티브 자동 크기 조정 솔루션은 일반적으로 풀링된 및 개인 호스트 풀에 사용할 수 있으며 크기 조정 일정에 따라 세션 호스트 VM을 자동으로 스케일 인 또는 스케일 아웃합니다. 더 쉬운 구성을 위해 자동 크기 조정을 사용하는 것이 좋습니다. 자세한 내용은 자동 크기 조정 계획을 참조하세요.
크기 조정 도구의 작동 방식
크기 조정 도구는 세션 호스트 VM 비용을 최적화하려는 고객에게 저렴한 자동화 옵션을 제공합니다.
크기 조정 도구를 사용하여 다음을 수행할 수 있습니다.
- 최대 및 사용량이 많은 업무 시간에 따라 VM이 시작 및 중지되도록 예약합니다.
- CPU 코어당 세션 수를 기준으로 VM을 확장합니다.
- 사용량이 적은 시간에 VM의 크기를 조정하여 최소 세션 호스트 VM 수를 실행합니다.
크기 조정 도구는 Azure Automation 계정, PowerShell Runbook, 웹후크 및 논리 앱의 조합을 사용하여 작동합니다. 도구가 실행되면 Logic App은 웹후크를 호출하여 Runbook을 시작합니다. 그런 다음 Runbook에서 작업을 만듭니다.
최대 및 사용량이 적은 시간은 다음과 같이 정의됩니다.
- 피크: 최대 사용자 세션 동시성에 도달할 것으로 예상되는 시간입니다.
- 사용량이 적음: 최소 사용자 세션 동시성에 도달할 것으로 예상되는 시간입니다.
사용량이 가장 많은 시간 동안 작업은 각 호스트 풀에 대해 현재 실행 중인 세션 호스트의 현재 세션 수와 VM 용량을 확인합니다. 이 정보를 사용하여 실행 중인 세션 호스트 VM이 CreateOrUpdateAzLogicApp.ps1 파일에 대해 정의된 SessionThresholdPerCPU 매개 변수를 기반으로 기존 세션을 지원할 수 있는지 계산합니다. 세션 호스트 VM이 기존 세션을 지원할 수 없는 경우 작업은 호스트 풀에서 추가 세션 호스트 VM을 시작합니다.
참고
SessionThresholdPerCPU 는 VM의 세션 수를 제한하지 않습니다. 이 매개 변수는 연결 부하를 분산하기 위해 새 VM을 시작해야 하는 경우에만 결정합니다. 세션 수를 제한하려면 지침에 따라 MaxSessionLimit 매개 변수를 적절하게 구성해야 합니다.
사용량이 많지 않으면 작업에서 MinimumNumberOfRDSH 매개 변수를 기반으로 종료해야 하는 세션 호스트 VM 수를 결정합니다. LimitSecondsToForceLogOffUser 매개 변수를 0이 아닌 양수 값으로 설정하면 작업은 새 세션이 호스트에 연결되지 않도록 세션 호스트 VM을 드레이닝 모드로 설정합니다. 그러면 작업이 현재 로그인한 사용자에게 작업을 저장하고 구성된 시간을 기다린 다음 사용자가 강제로 로그아웃하도록 알립니다. 세션 호스트 VM의 모든 사용자 세션이 로그아웃되면 작업이 VM을 종료합니다. VM이 종료되면 작업은 세션 호스트 드레이닝 모드를 다시 설정합니다.
참고
세션 호스트 VM을 드레이닝 모드로 수동으로 설정하는 경우 작업은 세션 호스트 VM을 관리하지 않습니다. 세션 호스트 VM이 실행 중이고 드레이닝 모드로 설정된 경우 사용할 수 없는 것으로 처리되므로 작업이 부하를 처리하기 위해 추가 VM을 시작하게 됩니다. 드레이닝 모드로 수동으로 설정하기 전에 Azure VM에 태그를 지정하는 것이 좋습니다. 나중에 Azure Logic App Scheduler를 만들 때 MaintenanceTagName 매개 변수를 사용하여 태그의 이름을 지정할 수 있습니다. 태그는 이러한 VM을 크기 조정 도구가 관리하는 VM과 구별하는 데 도움이 됩니다. 유지 관리 태그를 설정하면 태그를 제거할 때까지 크기 조정 도구가 VM을 변경할 수 없습니다.
LimitSecondsToForceLogOffUser 매개 변수를 0으로 설정하면 지정된 그룹 정책의 세션 구성 설정에서 사용자 세션 로그오프를 처리할 수 있습니다. 이러한 그룹 정책을 보려면 컴퓨터 구성>정책>관리 템플릿>Windows 구성 요소>원격 데스크톱 서비스>원격 데스크톱 세션 호스트>세션 시간 제한으로 이동합니다. 세션 호스트 VM에 활성 세션이 있는 경우 작업은 세션 호스트 VM을 실행 상태로 둡니다. 활성 세션이 없는 경우 작업은 세션 호스트 VM을 종료합니다.
언제든지 작업은 호스트 풀의 MaxSessionLimit 을 고려하여 현재 세션 수가 최대 용량의 90%를 초과하는지 확인합니다. 이 경우 작업은 추가 세션 호스트 VM을 시작합니다.
작업은 설정된 되풀이 간격에 따라 주기적으로 실행됩니다. Azure Virtual Desktop 환경의 크기에 따라 이 간격을 변경할 수 있지만 VM을 시작하고 종료하는 데 다소 시간이 걸릴 수 있으므로 지연을 고려해야 합니다. 되풀이 간격을 15분 간격으로 설정하는 것이 좋습니다.
그러나 도구에는 다음과 같은 제한 사항도 있습니다.
- 이 솔루션은 풀된 다중 세션 세션 호스트 VM에만 적용됩니다.
- 이 솔루션은 모든 지역의 VM을 관리하지만 Azure Automation 계정 및 Azure Logic App과 동일한 구독에서만 사용할 수 있습니다.
- Runbook에서 작업의 최대 런타임은 3시간입니다. 호스트 풀에서 VM을 시작하거나 중지하는 데 시간이 오래 걸리면 작업이 실패합니다. 자세한 내용은 공유 리소스를 참조하세요.
- 크기 조정 알고리즘이 제대로 작동하려면 하나 이상의 VM 또는 세션 호스트를 켜야 합니다.
- 크기 조정 도구는 CPU 또는 메모리에 따라 크기 조정을 지원하지 않습니다.
- 크기 조정은 호스트 풀의 기존 호스트에서만 작동합니다. 크기 조정 도구는 새 세션 호스트의 크기 조정을 지원하지 않습니다.
참고
크기 조정 도구는 현재 크기 조정 중인 호스트 풀의 부하 분산 모드를 제어합니다. 이 도구는 사용량이 많은 시간과 사용량이 많은 시간 모두에 대해 폭 우선 부하 분산 모드를 사용합니다.