자동 크기 조정 설정 이해

자동 크기 조정 설정은 애플리케이션의 변화하는 부하를 처리할 수 있는 적절한 양의 리소스가 실행되도록 하는 데 도움이 됩니다. 부하 또는 성능을 나타내는 메트릭을 기준으로 트리거되거나 예약된 날짜 및 시간에 트리거되도록 자동 크기 조정 설정을 구성할 수 있습니다.

이 문서에서는 자동 크기 조정 설정에 대해 설명합니다.

자동 크기 조정 설정 스키마

다음 예제에서는 이러한 특성이 있는 자동 크기 조정 설정을 보여줍니다.

  • 단일 기본 프로필입니다.
  • 이 프로필에는 2개의 메트릭 규칙이 있습니다. 하나는 스케일 아웃용이고 다른 하나는 스케일 인용입니다.
    • 스케일 아웃 규칙은 가상 머신 확장 집합의 평균 CPU 비율 메트릭이 지난 10분 동안 85%보다 높은 경우에 트리거됩니다.
    • 스케일 인 규칙은 가상 머신 확장 집합의 평균이 이전 분 동안 60%보다 낮은 경우에 트리거됩니다.

참고 항목

하나의 설정에 여러 프로필이 있을 수 있습니다. 자세한 내용은 프로필 섹션을 참조하세요. 하나의 프로필에 여러 스케일 아웃 규칙 및 스케일 인 규칙이 정의될 수도 있습니다. 평가되는 방식을 알아보려면 평가 섹션을 참조하세요.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Insights/autoscaleSettings",
            "apiVersion": "2015-04-01",
            "name": "VMSS1-Autoscale-607",
            "location": "eastus",
            "properties": {

                "name": "VMSS1-Autoscale-607",
                "enabled": true,
                "targetResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
    "profiles": [
      {
        "name": "Auto created default scale condition",
        "capacity": {
          "minimum": "1",
          "maximum": "4",
          "default": "1"
        },
        "rules": [
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT10M",
              "timeAggregation": "Average",
              "operator": "GreaterThan",
              "threshold": 85
            },
            "scaleAction": {
              "direction": "Increase",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          },
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT10M",
              "timeAggregation": "Average",
              "operator": "LessThan",
              "threshold": 60
            },
            "scaleAction": {
              "direction": "Decrease",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          }
        ]
      }
    ]
  }
}

다음 표에서는 앞의 자동 크기 조정 설정의 JSON에 있는 요소를 설명합니다.

섹션 요소 이름 포털 이름 설명
설정 ID 자동 크기 조정 설정의 리소스 ID입니다. 자동 크기 조정 설정은 Azure Resource Manager 리소스입니다.
설정 name 자동 크기 조정 설정 이름입니다.
설정 location 자동 크기 조정 설정의 위치입니다. 이 위치는 크기가 조정되는 리소스의 위치와 다를 수 있습니다.
속성 targetResourceUri 크기가 조정되는 리소스의 리소스 ID입니다. 리소스당 하나의 자동 크기 조정 설정만 있을 수 있습니다.
속성 profiles 크기 조정 조건 자동 크기 조정 설정은 하나 이상의 프로필로 구성됩니다. 자동 크기 조정 엔진이 실행될 때마다 1개의 프로필이 실행됩니다. 자동 크기 조정 설정당 최대 20개의 프로필을 구성합니다.
profiles name 프로필의 이름입니다. 프로필을 식별하는 데 도움이 되는 어떤 이름도 선택할 수 있습니다.
profiles capacity.maximum 인스턴스 한도 - 최대 허용되는 최대 용량입니다. 프로필을 실행할 때 자동 크기 조정이 리소스를 이 수치보다 높게 조정하지 않도록 합니다.
profiles capacity.minimum 인스턴스 한도 - 최소 허용되는 최소 용량입니다. 프로필을 실행할 때 자동 크기 조정이 리소스를 이 수치보다 낮게 조정하지 않도록 합니다.
profiles capacity.default 인스턴스 한도 - 기본 리소스 메트릭을 읽는 데 문제가 있고 현재 용량이 기본 용량보다 적으면, 자동 크기 조정 기능은 기본값으로 스케일 아웃합니다. 이렇게 하면 리소스의 가용성이 보장됩니다. 이미 현재 용량이 기본 용량보다 높아도 자동 크기 조정 기능이 스케일 인하지 않습니다.
profiles rules 규칙 자동 크기 조정 기능은 프로필의 규칙을 사용하여 최대 및 최소 용량 간을 자동으로 조정합니다. 프로필에서 최대 10개 개별 규칙을 정의합니다. 일반적으로 규칙을 한 쌍으로 정의되며, 즉 스케일 아웃할 때를 결정하는 규칙과 스케일 인할 때를 결정하는 규칙이 있습니다.
rule metricTrigger 크기 조정 규칙 규칙의 메트릭 조건을 정의합니다.
metricTrigger metricName 메트릭 이름 메트릭의 이름입니다.
metricTrigger metricResourceUri 메트릭을 내보내는 리소스의 리소스 ID입니다. 대부분의 경우, 크기가 조정되는 리소스와 같습니다. 경우에 따라 메트릭을 내보내는 리소스와 크기가 조정되는 리소스가 서로 다를 수 있습니다. 예를 들어 스토리지 큐에 있는 메시지의 수에 따라 가상 머신 확장 집합의 크기를 조정할 수 있습니다.
metricTrigger timeGrain 시간 단위(분) 메트릭 샘플링 기간입니다. 예를 들어 TimeGrain = “PT1M”은 statistic 요소에 지정된 집계 방법을 사용하여 매 1분마다 집계한다는 것을 의미합니다.
metricTrigger statistic 시간 조직 통계 timeGrain 기간 내 집계 방법입니다. 예를 들어 statistic = “Average”timeGrain = “PT1M”은, 평균을 구하여 메트릭이 1분마다 집계되어야 함을 의미합니다. 이 속성은 메트릭이 샘플링되는 방식을 나타냅니다.
metricTrigger TimeWindow 기간 메트릭을 다시 확인할 기간입니다. 예를 들어 timeWindow = “PT10M”은 자동 크기 조정 기능이 실행될 때마다 지난 10분 동안의 메트릭을 쿼리하는 것을 의미합니다. 이 시간 창은 메트릭을 정규화할 수 있도록 하며 일시적인 스파이크에 대응하지 않도록 합니다.
metricTrigger timeAggregation 시간 집계 샘플링된 메트릭을 집계하는 데 사용되는 집계 방법입니다. 예를 들어 TimeAggregation = “Average”는 평균을 구하여 샘플링된 메트릭을 집계합니다. 앞의 경우에서 1분짜리 샘플을 10개 가져와서 평균을 구합니다.
rule scaleAction 작업 규칙의 metricTrigger가 트리거될 때 수행할 작업입니다.
scaleAction direction 연산 스케일 아웃하려는 경우 "Increase"이고, 스케일 인하려는 경우 "Decrease"입니다.
scaleAction value 인스턴트 수 늘리거나 줄일 리소스 용량 크기입니다.
scaleAction cooldown 정지 시간(분) 크기 조정 작업 후, 다시 크기를 조정하기 전에 대기하는 시간입니다. 스케일 인 또는 스케일 아웃 이벤트 후에는 휴지 기간이 나옵니다. 예를 들어, cooldown = “PT10M”인 경우 자동 크기 조정 기능은 추가로 10분 동안 다시 크기 조정을 시도하지 않습니다. cooldown은 인스턴스의 추가 또는 제거 후에 메트릭이 안정화될 수 있도록 합니다.

자동 크기 조정 프로필

자동 크기 조정 설정당 최대 20개의 서로 다른 프로필을 정의합니다.
다음 세 가지 유형의 자동 크기 조정 프로필이 있습니다.

  • 기본 프로필: 특정 날짜 및 시간 또는 요일에 따라 리소스 크기를 조정할 필요가 없는 경우 기본 프로필을 사용합니다. 기본 프로필은 현재 날짜 및 시간에 적용 가능한 다른 프로필이 없는 경우 실행됩니다. 사용자는 하나의 기본 프로필만 가질 수 있습니다.

  • 고정 날짜 프로필: 고정 날짜 프로필은 단일 날짜 및 시간과 관련이 있습니다. 고정 날짜 프로필을 사용하여 특정 이벤트에 대한 크기 조정 규칙을 설정합니다. 프로필은 이벤트의 날짜 및 시간에 한 번만 실행됩니다. 그 외 모든 경우 자동 크기 조정은 기본 프로필을 사용합니다.

        ...
        "profiles": [
            {
                "name": " regularProfile",
                "capacity": {
                    ...
                },
                "rules": [
                    ...
                ]
            },
            {
                "name": "eventProfile",
                "capacity": {
                ...
                },
                "rules": [
                    ...
                ],
                "fixedDate": {
                    "timeZone": "Pacific Standard Time",
                    "start": "2017-12-26T00:00:00",
                    "end": "2017-12-26T23:59:00"
                }
            }
        ]
    
  • 되풀이 프로필: 되풀이 프로필은 요일 또는 요일 집합에 사용됩니다. 되풀이 프로필의 스키마에는 종료 날짜가 포함되지 않습니다. 되풀이 프로필의 종료 날짜 및 시간은 다음 프로필의 시작 시간으로 설정됩니다. 포털을 사용하여 되풀이 프로필을 구성할 때 기본 프로필은 되풀이 프로필에 대해 지정한 종료 시간에 시작되도록 자동으로 업데이트됩니다. 여러 프로필을 구성하는 방법에 대한 자세한 내용은 여러 프로필로 자동 크기 조정을 참조하세요.

    여기에 있는 부분 스키마 예제는 되풀이 프로필을 보여줍니다. 토요일과 일요일 06:00에 시작하여 19:00에 끝납니다. 기본 프로필은 토요일과 일요일 오후 7시에 시작하도록 수정되었습니다.

        {
            "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
            "contentVersion": "1.0.0.0",
            "resources": [
                {
                    "type": "Microsoft.Insights/    autoscaleSettings",
                    "apiVersion": "2015-04-01",
                    "name": "VMSS1-Autoscale-607",
                    "location": "eastus",
                    "properties": {
    
                        "name": "VMSS1-Autoscale-607",
                        "enabled": true,
                        "targetResourceUri": "/subscriptions/    abc123456-987-f6e5-d43c-9a8d8e7f6541/    resourceGroups/rg-vmss1/providers/    Microsoft.Compute/    virtualMachineScaleSets/VMSS1",
                        "profiles": [
                            {
                                "name": "Weekend profile",
                                "capacity": {
                                    ...
                                },
                                "rules": [
                                    ...
                                ],
                                "recurrence": {
                                    "frequency": "Week",
                                    "schedule": {
                                        "timeZone": "E. Europe     Standard Time",
                                        "days": [
                                            "Saturday",
                                            "Sunday"
                                        ],
                                        "hours": [
                                            6
                                        ],
                                        "minutes": [
                                            0
                                        ]
                                    }
                                }
                            },
                            {
                                "name": "{\"name\":\"Auto created default scale condition\",\"for\":\"Weekend profile\"}",
                                "capacity": {
                                   ...
                                },
                                "recurrence": {
                                    "frequency": "Week",
                                    "schedule": {
                                        "timeZone": "E. Europe     Standard Time",
                                        "days": [
                                            "Saturday",
                                            "Sunday"
                                        ],
                                        "hours": [
                                            19
                                        ],
                                        "minutes": [
                                            0
                                        ]
                                    }
                                },
                                "rules": [   
                                  ...
                                ]
                            }
                        ],
                        "notifications": [],
                        "targetResourceLocation": "eastus"
                    }
    
                }
            ]
                }
    
    

자동 크기 조정 평가

자동 크기 조정 설정에는 여러 프로필이 있을 수 있습니다. 각 프로필에 여러 규칙이 있을 수 있습니다. 자동 크기 조정 작업이 실행될 때마다 해당 시간에 적용 가능한 프로필을 선택하여 작업을 시작합니다. 그런 다음, 자동 크기 조정 기능은 최소값 및 최대값을 평가하고, 프로필의 메트릭 규칙을 파악한 후 크기 조정 작업이 필요한지 결정합니다. 자동 크기 조정 작업은 리소스 종류에 따라 30~60초마다 실행됩니다. 스케일링 작업이 발생한 후 자동 스케일링 작업은 다시 스케일링하기 전에 휴지 기간 동안 대기합니다. 휴지 기간은 스케일 아웃 및 스케일 인 작업 둘 다에 적용됩니다.

자동 크기 조정에 사용할 프로필은 무엇인가요?

자동 크기 조정 서비스가 실행될 때마다 프로필은 다음 순서로 평가됩니다.

  1. 고정된 날짜 프로필
  2. 되풀이 프로필
  3. 기본 프로필

찾은 첫 번째 적합한 프로필이 사용됩니다.

자동 크기 조정 기능은 여러 규칙을 어떻게 평가하나요?

자동 크기 조정 기능이 실행할 프로필을 결정하면 프로필의 스케일 아웃 규칙(direction = “Increase”인 규칙)을 먼저 실행합니다. 하나 이상의 스케일 아웃 규칙이 트리거되면 자동 크기 조정 기능은 해당하는 각 규칙에 지정된 scaleAction에 따라 결정되는 새 용량을 계산합니다. 둘 이상의 스케일 아웃 규칙이 트리거되면 자동 크기 조정이 지정된 가장 높은 용량으로 확장되어 서비스 가용성을 보장합니다.

예를 들어 규칙 1은 인스턴스 3개 확장을 지정하고 규칙 2는 인스턴스 5개 확장을 지정하는 두 가지 규칙이 있다고 가정합니다. 두 규칙이 모두 트리거되면 자동 크기 조정은 5개의 인스턴스로 확장됩니다. 마찬가지로 한 규칙이 3개의 인스턴스로 스케일 아웃을 지정하고 다른 규칙을 15% 스케일 아웃하는 경우, 두 인스턴스 개수 중 더 높은 값이 사용됩니다.

스케일 아웃 규칙이 트리거되지 않는 경우 자동 크기 조정 기능은 스케일 인 규칙(direction = “Decrease”인 규칙)을 평가합니다. 자동 크기 조정 기능은 모든 스케일 인 규칙이 트리거될 경우에만 스케일 인 작업을 수행합니다.

자동 크기 조정 기능은 해당하는 각 규칙의 scaleAction에 따라 결정되는 새 용량을 계산합니다. 서비스 가용성을 보장하기 위해 자동 크기 조정은 지정된 최대 용량을 달성하도록 가능한 한 적게 스케일 인합니다. 예를 들어 2개의 스케일 인 규칙, 즉 용량이 50%씩 감소하는 규칙과 용량이 3개의 인스턴스씩 감소하는 규칙이 있습니다. 첫 번째 규칙으로 인해 5개의 인스턴스가 생성되고 두 번째 규칙이 7이 되면 자동 크기 조정이 7개의 인스턴스로 확장됩니다.

자동 크기 조정이 스케일 인 작업의 결과를 계산할 때마다 해당 작업이 스케일 아웃 작업을 트리거할지 여부를 평가합니다. 크기 조정 작업이 반대 크기 조정 작업을 트리거하는 시나리오를 플래핑이라고 합니다. 자동 크기 조정은 플래핑을 방지하기 위해 스케일 인 작업을 연기하거나 규칙에 지정된 것보다 작은 숫자로 크기를 조정할 수 있습니다. 플래핑에 대한 자세한 내용은 자동 크기 조정의 플래핑을 참조하세요.

다음 단계

자동 크기 조정에 대한 자세한 정보: