Azure Monitor 자동 크기 조정 일반 메트릭

Azure Monitor 자동 크기 조정을 사용하면 원격 분석 데이터 또는 메트릭에 따라 실행 중인 인스턴스 수를 확장하거나 축소할 수 있습니다. 크기 조정은 다른 리소스의 메트릭을 비롯하여 모든 메트릭을 기반으로 할 수 있습니다. 예를 들어 방화벽의 트래픽 양에 따라 Virtual Machine Scale Set의 크기를 조정합니다.

이 문서에서는 크기 조정 이벤트를 트리거하는 데 일반적으로 사용되는 메트릭에 대해 설명합니다.

Azure 자동 크기 조정은 다양한 리소스 종류를 지원합니다. 지원되는 리소스에 대한 자세한 내용은 지원되는 리소스 자동 크기 조정을 참조하세요.

모든 리소스에 대해 PowerShell 또는 Azure CLI를 사용하여 사용 가능한 메트릭 목록을 가져올 수 있습니다.

Get-AzMetricDefinition -ResourceId <resource_id> 
az monitor metrics list-definitions --resource <resource_id>

Resource Manager 기반 VM에 대한 컴퓨팅 메트릭

기본적으로 Azure Resource Manager 기반 가상 머신 및 Virtual Machine Scale Sets는 기본(호스트 수준) 메트릭을 내보낸다. 또한 Azure VM 및 Virtual Machine Scale Sets에 대한 진단 데이터 수집을 구성하는 경우 Azure Diagnostics 확장은 게스트 OS 성능 카운터도 내보낸다. 이러한 카운터는 일반적으로 ‘게스트 OS 메트릭’이라고 합니다. 자동 크기 조정 규칙에서 이러한 메트릭을 모두 사용합니다.

Virtual Machine Scale Sets를 사용하고 있고 나열된 특정 메트릭이 표시되지 않는 경우 진단 확장에서 사용하지 않도록 설정되었을 수 있습니다.

특정 메트릭이 원하는 빈도로 샘플링 또는 전송되고 있지 않은 경우 진단 구성을 업데이트할 수 있습니다.

위 경우 중 하나가 해당되면 PowerShell을 사용하여 Windows를 실행하는 가상 머신에서 Azure Diagnostics를 사용하도록 설정을 참조하여 메트릭을 사용하도록 Azure VM Diagnostics 확장을 구성 및 업데이트합니다. 이 문서에는 샘플 진단 구성 파일도 포함되어 있습니다.

Resource Manager 기반 Windows 및 Linux VM용 호스트 메트릭

다음 호스트 수준 메트릭은 Windows 및 Linux 인스턴스 모두에서 Azure VM 및 Virtual Machine Scale Sets에 대해 기본적으로 내보내집니다. 이러한 메트릭은 Azure VM을 설명하지만, 게스트 VM에 설치된 에이전트를 통하는 대신 Azure VM 호스트에서 수집됩니다. 자동 크기 조정 규칙에서 이러한 메트릭을 사용할 수 있습니다.

Resource Manager 기반 Windows VM에 대한 게스트 OS 메트릭

Azure에서 VM을 만들 때 진단 확장을 사용하여 진단 사용하도록 설정됩니다. 진단 확장에서는 VM 내에서 가져온 메트릭 집합을 내보냅니다. 즉, 기본적으로 내보내지 않는 메트릭을 사용하여 자동 크기 조정을 수행할 수 있습니다.

다음 메트릭에 대한 경고를 만들 수 있습니다.

메트릭 이름 단위
\Processor(_Total)% 프로세서 시간 퍼센트
\Processor(_Total)% 시스템 시간 퍼센트
\Processor(_Total)% 사용자 시간 퍼센트
\Processor Information(_Total)\Processor Frequency Count
\System\Processes Count
\Process(_Total)\Thread Count Count
\Process(_Total)\Handle Count Count
\Memory% Committed Bytes in Use 퍼센트
\Memory\Available Bytes 바이트
\Memory\Committed Bytes 바이트
\Memory\Commit Limit 바이트
\Memory\Pool Paged Bytes 바이트
\Memory\Pool Nonpaged Bytes 바이트
\PhysicalDisk(_Total)% 디스크 시간 퍼센트
\PhysicalDisk(_Total)% 디스크 읽기 시간 퍼센트
\PhysicalDisk(_Total)% 디스크 쓰기 시간 퍼센트
\PhysicalDisk(_Total)\디스크 전송/초 초당 개수
\PhysicalDisk(_Total)\Disk Reads/sec 초당 개수
\PhysicalDisk(_Total)\Disk Writes/sec 초당 개수
\PhysicalDisk(_Total)\Disk Bytes/sec BytesPerSecond
\PhysicalDisk(_Total)\Disk Read Bytes/sec BytesPerSecond
\PhysicalDisk(_Total)\Disk Write Bytes/sec BytesPerSecond
\PhysicalDisk(_Total)\Avg. 디스크 큐 길이 Count
\PhysicalDisk(_Total)\Avg. Disk Read Queue Length Count
\PhysicalDisk(_Total)\Avg. 디스크 쓰기 큐 길이 Count
\LogicalDisk(_Total)% 사용 가능한 공간 퍼센트
\LogicalDisk(_Total)\Free 메가바이트 Count

게스트 OS 메트릭 Linux VM

Azure에서 VM을 만드는 경우 기본적으로 진단 확장을 이용해 진단을 사용할 수 있습니다.

다음 메트릭에 대한 경고를 만들 수 있습니다.

메트릭 이름 단위
\Memory\AvailableMemory 바이트
\Memory\PercentAvailableMemory 퍼센트
\Memory\UsedMemory 바이트
\Memory\PercentUsedMemory 퍼센트
\Memory\PercentUsedByCache 퍼센트
\Memory\PagesPerSec 초당 개수
\Memory\PagesReadPerSec 초당 개수
\Memory\PagesWrittenPerSec 초당 개수
\Memory\AvailableSwap 바이트
\Memory\PercentAvailableSwap 퍼센트
\Memory\UsedSwap 바이트
\Memory\PercentUsedSwap 퍼센트
\Processor\PercentIdleTime 퍼센트
\Processor\PercentUserTime 퍼센트
\Processor\PercentNiceTime 퍼센트
\Processor\PercentPrivilegedTime 퍼센트
\Processor\PercentInterruptTime 퍼센트
\Processor\PercentDPCTime 퍼센트
\Processor\PercentProcessorTime 퍼센트
\Processor\PercentIOWaitTime 퍼센트
\PhysicalDisk\BytesPerSecond BytesPerSecond
\PhysicalDisk\ReadBytesPerSecond BytesPerSecond
\PhysicalDisk\WriteBytesPerSecond BytesPerSecond
\PhysicalDisk\TransfersPerSecond 초당 개수
\PhysicalDisk\ReadsPerSecond 초당 개수
\PhysicalDisk\WritesPerSecond 초당 개수
\PhysicalDisk\AverageReadTime
\PhysicalDisk\AverageWriteTime
\PhysicalDisk\AverageTransferTime
\PhysicalDisk\AverageDiskQueueLength Count
\NetworkInterface\BytesTransmitted 바이트
\NetworkInterface\BytesReceived 바이트
\NetworkInterface\PacketsTransmitted Count
\NetworkInterface\PacketsReceived Count
\NetworkInterface\BytesTotal 바이트
\NetworkInterface\TotalRxErrors Count
\NetworkInterface\TotalTxErrors Count
\NetworkInterface\TotalCollisions Count

일반적으로 사용되는 App Service(서버 팜) 메트릭

HTTP 큐 길이와 같은 공용 웹 서버 메트릭에 따라 자동 크기 조정을 수행할 수도 있습니다. 메트릭 이름은 HttpQueueLength입니다. 다음 섹션에서는 사용 가능한 서버 팜(App Service) 메트릭을 나열합니다.

Web Apps 메트릭

Web Apps의 경우 이러한 메트릭에 따라 경고하거나 크기를 조정할 수 있습니다.

메트릭 이름 단위
CpuPercentage 퍼센트
MemoryPercentage 퍼센트
DiskQueueLength Count
HttpQueueLength Count
BytesReceived 바이트
BytesSent 바이트

일반적으로 사용되는 스토리지 메트릭

Storage 큐의 메시지 수인 Azure Storage 큐 길이에 따라 크기를 조정할 수 있습니다. Storage 큐 길이는 특수 메트릭이고, 임계값은 인스턴스당 메시지 수입니다. 예를 들어 두 개의 인스턴스가 있고 임계값이 100으로 설정된 경우 큐의 총 메시지 수가 200이면 크기 조정이 발생합니다. 인스턴스당 메시지는 100개, 120개 + 80개 또는 최대 200개 이상 추가하는 임의의 기타 조합이 될 수 있습니다.

Azure Portal의 설정 창에서 이 설정을 구성합니다. Virtual Machine Scale Sets의 경우 Resource Manager 템플릿에서 자동 크기 조정 설정을 업데이트하여 스토리지 metricName 큐의 ID를 다음과 같이 ApproximateMessageCountmetricResourceUri전달할 수 있습니다.

예를 들어 클래식 스토리지 계정을 사용하면 자동 크기 조정 설정 metricTrigger에는 다음이 포함됩니다.

"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ClassicStorage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"

(클래식이 아닌) 스토리지 계정의 경우 metricTrigger 설정에는 다음이 포함됩니다.

"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"

일반적으로 사용되는 Service Bus 메트릭

Service Bus 큐의 메시지 수인 Azure Service Bus 큐 길이에 따라 크기를 조정할 수 있습니다. Service Bus 큐 길이는 특수 메트릭이고, 임계값은 인스턴스당 메시지 수입니다. 예를 들어 두 개의 인스턴스가 있고 임계값이 100으로 설정된 경우 큐의 총 메시지 수가 200이면 크기 조정이 발생합니다. 인스턴스당 메시지는 100개, 120개 + 80개 또는 최대 200개 이상 추가하는 임의의 기타 조합이 될 수 있습니다.

Virtual Machine Scale Sets의 경우 Resource Manager 템플릿에서 자동 크기 조정 설정을 업데이트하여 Service metricName Bus 큐의 ID를 다음과 같이 ActiveMessageCountmetricResourceUri전달할 수 있습니다.

"metricName": "ActiveMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ServiceBus/namespaces/SB_NAMESPACE/queues/QUEUE_NAME"

참고 항목

Service Bus의 경우 리소스 그룹 개념이 없습니다. Azure Resource Manager는 지역당 기본 리소스 그룹을 만듭니다. 리소스 그룹은 일반적으로 Default-ServiceBus-[region] 형식입니다. 예로 Default-ServiceBus-EastUS, Default-ServiceBus-WestUS, Default-ServiceBus-AustraliaEast가 있습니다.