여러 프로필을 사용하여 자동 크기 조정

특정 요일 또는 특정 날짜 및 시간에 대한 리소스 크기를 조정하면 필요할 때 필요한 용량을 제공하면서 비용을 줄일 수 있습니다.

자동 크기 조정에서 여러 프로필을 사용하여 서로 다른 시간에 다양한 방식으로 스케일링할 수 있습니다. 예를 들어 비즈니스가 주말에 한가한 경우 토요일과 일요일에 리소스를 스케일 인하는 되풀이 프로필을 만듭니다. 블랙 프라이데이가 바쁜 날인 경우 블랙 프라이데이에 리소스를 자동으로 스케일 아웃하는 프로필을 만듭니다.

이 문서에서는 자동 크기 조정의 다양한 프로필과 이를 사용하는 방법을 설명합니다.

자동 크기 조정 설정에서 하나 이상의 프로필을 가질 수 있습니다.

세 가지 유형의 규칙이 있습니다.

  • 기본 프로필입니다. 기본 프로필은 자동으로 만들어지고 일정에 종속되지 않습니다. 기본 프로필은 삭제할 수 없습니다. 현재 날짜 및 시간과 일치하는 다른 프로필이 없는 경우 기본 프로필이 사용됩니다.
  • 되풀이 프로필. 되풀이 프로필은 특정 시간 범위에 유효하며 선택한 요일에 대해 반복됩니다.
  • 고정된 날짜 및 시간 프로필. 특정 날짜의 시간 범위에 유효한 프로필입니다.

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

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

프로필의 날짜 및 시간 설정이 현재 시간과 일치하는 경우 자동 크기 조정은 해당 프로필의 규칙 및 용량 제한을 적용합니다. 적용 가능한 첫 번째 프로필만 사용됩니다.

아래 예제에서는 기본 프로필 및 되풀이 프로필이 있는 자동 크기 조정 설정을 보여줍니다.

A screenshot showing an autoscale setting with default and recurring profile or scale condition.

위의 예제에서는 월요일 오전 3시 이후에 되풀이 프로필이 사용되지 않습니다. 인스턴스 수가 3보다 작은 경우 자동 크기 조정은 새 최소 3개로 스케일링됩니다. 자동 크기 조정은 이 프로필을 계속 사용하며 월요일 오후 8시까지 CPU%를 기반으로 확장합니다. 그 외에는 요청 수에 따라 기본 프로필에 따라 크기 조정이 수행됩니다. 월요일 오후 8시 이후에 자동 크기 조정이 기본 프로필로 전환됩니다. 예를 들어, 이때 인스턴스가 12개인 경우 기본 프로필에 허용되는 최댓값인 10으로 자동으로 스케일 인합니다.

여러 개의 연속 프로필

시작 시간에 따라 프로필 간의 전환을 자동으로 조정합니다. 지정된 프로필의 종료 시간은 다음 프로필의 시작 시간에 따라 결정됩니다.

포털에서 종료 시간 필드는 기본 프로필의 다음 시작 시간이 됩니다. 한 프로필의 끝과 다음 프로필의 시작 부분에 대해 동일한 시간을 지정할 수 없습니다. 포털은 종료 시간이 다음 프로필의 시작 시간 1분 전에 강제로 적용됩니다. 이 분 동안 기본 프로필이 활성화됩니다. 되풀이 프로필 간에 기본 프로필을 활성화하지 않으려면 종료 시간 필드를 비워 둡니다.

포털을 사용하여 여러 개의 연속 프로필을 설정하려면 종료 시간을 비워 둡니다. 현재 프로필은 다음 프로필이 활성화될 때 사용되지 않습니다. 기본 프로필로 되돌리려는 경우에만 종료 시간을 지정합니다. 종료 시간 없이 되풀이 프로필을 만드는 것은 포털 및 ARM 템플릿을 통해서만 지원됩니다.

템플릿, CLI 및 PowerShell을 사용하는 여러 프로필

템플릿, CLI 및 PowerShell을 사용하여 여러 프로필을 만들 때 아래 지침을 따릅니다.

전체 템플릿 참조는 ARM 템플릿 리소스 정의 의 자동 크기 조정 섹션을 참조하세요.

템플릿에는 종료 시간에 대한 사양이 없습니다. 프로필은 다음 프로필의 시작 시간까지 활성 상태로 유지됩니다.

ARM 템플릿을 사용하여 되풀이 프로필 추가

아래 예제에서는 두 개의 되풀이 프로필을 만드는 방법을 보여줍니다. 토요일 아침 00:01부터 주말 프로필 1개와 월요일 04:00부터 시작하는 두 번째 평일 프로필. 즉, 주말 프로필은 토요일 오전 자정을 1분 넘긴 시간에 시작하여 월요일 오전 4시에 끝납니다. 평일 프로필은 월요일 오전 4시에 시작하여 토요일 오전 자정 직후에 끝납니다.

템플릿을 배포하려면 다음 명령을 사용합니다. az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json, 여기서 VMSS1-autoscale.json은 아래 JSON 개체를 포함하는 파일입니다.

{
    "$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": "Weekday profile",
                        "capacity": {
                            "minimum": "3",
                            "maximum": "20",
                            "default": "3"
                        },
                        "rules": [
                            {
                                "scaleAction": {
                                    "direction": "Increase",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "GreaterThan",
                                    "statistic": "Average",
                                    "threshold": 100,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            },
                            {
                                "scaleAction": {
                                    "direction": "Decrease",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "LessThan",
                                    "statistic": "Average",
                                    "threshold": 60,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            }
                        ],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Monday"
                                ],
                                "hours": [
                                    4
                                ],
                                "minutes": [
                                    0
                                ]
                            }
                        }
                    },
                    {
                        "name": "Weekend profile",
                        "capacity": {
                            "minimum": "1",
                            "maximum": "3",
                            "default": "1"
                        },
                        "rules": [],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Saturday"                                    
                                ],
                                "hours": [
                                    0
                                ],
                                "minutes": [
                                    1
                                ]
                            }
                        }
                    }
                ],
                "notifications": [],
                "targetResourceLocation": "eastus"
            }

        }
    ]
}    

다음 단계