Share via


Azure Virtual Desktop용 Azure Logic Apps 및 Azure Automation을 사용하여 세션 호스트 스케일링

VM(가상 머신)을 크기 조정하여 총 Azure Virtual Desktop 배포 비용을 줄일 수 있습니다. VM을 크기 조정한다는 것은 사용량이 적은 시간에는 세션 호스트 VM을 종료 및 할당 취소하고 사용량이 많은 시간에는 다시 켜서 할당하는 것을 의미합니다.

이 문서에서는 Azure Automation 계정을 사용하여 빌드된 크기 조정 도구와 Azure Virtual Desktop 환경에서 세션 호스트 VM을 자동으로 크기 조정하는 Azure Logic Apps에 대해 알아봅니다. 스케일링 도구를 사용하는 방법을 알아보려면 Azure Automation 및 Azure Logic Apps를 사용하여 세션 호스트 스케일링 설정을 참조하세요.

참고 항목

Azure Virtual Desktop의 네이티브 자동 크기 조정 솔루션은 일반적으로 풀링된 호스트 풀과 개인 호스트 풀에 사용할 수 있으며 크기 조정 일정에 따라 세션 호스트 VM을 자동으로 스케일 인하거나 스케일 아웃합니다. 보다 쉬운 구성을 위해 자동 크기 조정을 사용하는 것이 좋습니다. 자세한 내용은 크기 조정 계획 자동 크기 조정을 참조하세요.

크기 조정 도구의 작동 방식

크기 조정 도구는 세션 호스트 VM 비용을 최적화하려는 고객을 위해 저비용 자동화 옵션을 제공합니다.

크기 조정 도구를 사용하여 다음을 수행할 수 있습니다.

  • 사용량이 많은 시간과 적은 시간을 기준으로 VM이 시작 및 중지되도록 예약합니다.
  • CPU 코어당 세션 수를 기준으로 VM을 스케일 아웃합니다.
  • 사용량이 적은 시간에는 VM을 스케일 인하여 실행 중인 세션 호스트 VM의 수를 최소로 유지합니다.

스케일링 도구는 Azure Automation 계정, PowerShell Runbook, 웹후크 및 논리 앱의 조합을 사용하여 작동합니다. 이 도구를 실행하면 논리 앱은 webhook를 호출하여 runbook을 시작합니다. 그런 다음 Runbook이 작업을 만듭니다.

Peak(사용량이 가장 많은 시간) 및 Off-peak(사용량이 적은 시간)은 다음과 같이 정의됩니다.

  • Peak: 최대 사용자 세션 동시성에 도달할 것으로 예상되는 시간입니다.
  • Off-peak: 최소 사용자 세션 동시성에 도달할 것으로 예상되는 시간입니다.

사용량이 많은 시간에는 이 작업이 각 호스트 풀에 대해 현재 세션 수와 현재 실행 중인 세션 호스트의 VM 용량을 확인합니다. 이 정보를 사용하여 실행 중인 세션 호스트 VM이 CreateOrUpdateAzLogicApp.ps1 파일에 대해 정의된 SessionThresholdPerCPU 매개 변수를 기준으로 기존 세션을 지원할 수 있는지 여부를 계산합니다. 세션 호스트 VM이 기존 세션을 지원할 수 없는 경우 작업은 호스트 풀에서 추가 세션 호스트 VM을 시작합니다.

참고 항목

SessionThresholdPerCPU는 VM의 세션 수를 제한하지 않습니다. 이 매개 변수는 연결의 부하를 분산하기 위해 새 VM을 시작해야 하는 시점만 결정합니다. 세션 수를 제한하려면 Update-AzWvdHostPool 지침에 따라 MaxSessionLimit 매개 변수를 적절하게 구성해야 합니다.

사용량이 적은 시간에는 작업이 MinimumNumberOfRDSH 매개 변수를 기준으로 몇 개의 세션 호스트 VM을 종료해야 하는지 결정합니다. LimitSecondsToForceLogOffUser 매개 변수를 0이 아닌 양수 값으로 설정하는 경우 작업은 세션 호스트 VM을 드레이닝 모드로 설정하여 새 세션이 호스트에 연결되지 않도록 합니다. 그런 다음 작업은 현재 로그인한 모든 사용자에게 작업을 저장하고 구성된 시간 동안 기다린 다음 강제로 사용자가 로그아웃하도록 알립니다. 세션 호스트 VM의 모든 사용자 세션이 로그아웃되면 작업이 VM을 종료합니다. VM이 종료된 후 작업은 세션 호스트 드레이닝 모드를 다시 설정합니다.

참고 항목

세션 호스트 VM을 드레이닝 모드로 수동으로 설정하면 작업에서 세션 호스트 VM을 관리하지 않습니다. 세션 호스트 VM이 실행 중이고 드레이닝 모드로 설정된 경우 사용할 수 없는 것으로 처리됩니다. 그러면 작업에서 부하를 처리하기 위해 추가 VM을 시작하게 됩니다. 수동으로 드레이닝 모드로 설정하기 전에 Azure VM에 태그를 지정하는 것이 좋습니다. 나중에 Azure Logic App Scheduler를 만들 때 MaintenanceTagName 매개 변수를 사용하여 태그의 이름을 지정할 수 있습니다. 태그는 이러한 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 또는 메모리에 따라 크기 조정을 지원하지 않습니다.
  • 크기 조정은 호스트 풀의 기존 호스트로만 작동합니다. 크기 조정 도구는 새로운 세션 호스트의 크기 조정을 지원하지 않습니다.

참고 항목

크기 조정 도구는 도구가 크기를 조정하는 대상 호스트 풀의 부하 분산 모드를 제어합니다. 도구는 사용량이 많은 시간과 적은 시간 모두에 대해 폭 우선 부하 분산 모드를 사용합니다.

다음 단계