다음을 통해 공유


Azure 구독에 VM 시작/중지 v2 배포

VM v2 시작/중지 기능을 설치하려면 이 문서의 단계를 순서대로 수행합니다. 설치 프로세스를 완료한 후 요구 사항에 맞게 사용자 지정하도록 일정을 구성합니다.

사용 권한 및 정책 고려 사항

배포 전과 배포 중에 다음 고려 사항에 유의하세요.

  • 이 솔루션을 사용하면 V2 시작/중지 배포에 대한 적절한 RBAC(역할 기반 액세스 제어) 권한이 있는 사용자가 VM 시작/중지 v2 인스턴스의 범위에서 가상 머신에 대한 일정을 추가, 제거 및 관리할 수 있습니다. 이 동작은 의도된 것입니다. 실제로 가상 머신에 대한 명시적 권한이 없는 사용자는 가상 머신을 관리하는 시작/중지 v2 솔루션을 수정할 수 있는 권한이 있는 경우 해당 가상 머신에서 시작, 중지 및 자동 중지 작업을 계속 만들 수 있습니다.

  • 시작/중지 v2 솔루션에 액세스할 수 있는 사용자는 비용, 절감, 작업 기록 및 시작/중지 v2 애플리케이션에서 사용하는 Application Insights 인스턴스에 저장된 기타 데이터를 발견할 수 있습니다.

  • 시작/중지 v2 솔루션을 관리할 때는 특히 whey가 대상 가상 머신을 직접 수정할 수 있는 권한이 없는 경우 시작/중지 v2 솔루션에 대한 사용자의 권한을 고려해야 합니다.

  • 시작/중지 v2 솔루션을 새 리소스 그룹 또는 기존 리소스 그룹에 배포하는 경우 StartStopV2 값이 있는 SolutionName이라는 태그가 리소스 그룹 및 Start/Stop v2에서 배포된 리소스에 추가됩니다. 이러한 리소스의 다른 태그는 제거됩니다. 리소스 태그에 따라 관리 작업을 거부하는 Azure 정책이 있는 경우 이 태그만 포함된 리소스에 대한 관리 작업을 허용해야 합니다.

배포 기능

배포는 VM 시작/중지 v2 GitHub 조직에서 시작됩니다. 이 기능은 구독 내의 단일 배포에서 모든 리소스 그룹에서 구독의 모든 VM을 관리하기 위한 것이지만 조직의 운영 모델 또는 요구 사항에 따라 다른 인스턴스를 설치할 수 있습니다. 또한 여러 구독에서 VM을 중앙에서 관리하도록 구성할 수도 있습니다.

관리 및 제거를 간소화하려면 전용 리소스 그룹에 VM 시작/중지 v2를 배포하는 것이 좋습니다.

비고

현재 이 솔루션은 기존 Storage 계정 또는 Application Insights 리소스 지정을 지원하지 않습니다.

비고

함수 앱 및 스토리지 계정의 명명 형식이 변경되었습니다. 전역 고유성을 보장하기 위해 이제 임의 및 고유 문자열이 이러한 리소스의 이름에 추가됩니다.

  1. 브라우저를 열고 VM 시작/중지 v2 GitHub 조직으로 이동합니다.

  2. Azure VM이 만들어지는 Azure 클라우드 환경에 따라 배포 옵션을 선택합니다.

  3. 메시지가 표시되면 Azure Portal에 로그인합니다.

  4. 드롭다운 상자에서 적절한 계획을 선택합니다. 영역 중복 계획(Start/StopV2-AZ)을 선택할 때 다음 지역 중 하나에서 배포를 만들어야 합니다.

    • 오스트레일리아 동부
    • 브라질 남부
    • 캐나다 중부
    • 미국 중부
    • 미국 동부
    • 미국 동부 2
    • 프랑스 중부
    • 독일 중서부
    • 일본 동부
    • 북유럽
    • 동남아시아
    • 영국 남부
    • 서유럽
    • 미국 서부 2
    • 미국 서부 3
  5. 만들기를 선택하면 Azure Portal에서 사용자 지정 Azure Resource Manager 배포 페이지가 열립니다.

  6. 다음 값을 입력합니다.

    이름 가치
    지역 새 리소스에 가까운 지역을 선택합니다.
    리소스 그룹 이름 VM 시작/중지에 대한 개별 리소스를 포함할 리소스 그룹 이름을 지정합니다.
    리소스 그룹 지역 리소스 그룹의 지역을 지정합니다. 예: 미국 중부
    Azure 함수 앱 이름 URL 경로에 유효한 이름을 입력합니다. 입력한 이름이 Azure Functions에서 고유한지 확인하기 위해 유효성을 검사합니다.
    Application Insights 이름 VM 시작/중지에 대한 분석을 보유할 Application Insights 인스턴스의 이름을 지정합니다.
    Application Insights 지역 Application Insights 인스턴스의 지역을 지정합니다.
    Storage 계정 이름 VM 실행 시작/중지 원격 분석을 저장할 Azure Storage 계정의 이름을 지정합니다.
    이메일 주소 상태 알림을 받을 하나 이상의 전자 메일 주소를 쉼표(,)로 구분하여 지정합니다.

    VM 템플릿 배포 구성 시작/중지

  7. 페이지 아래쪽에서 검토 + 만들기 를 선택합니다.

  8. 만들기를 선택하여 배포를 시작합니다.

  9. 화면 위쪽에서 벨 아이콘(알림)을 선택하여 배포 상태를 확인합니다. 배포 진행 중이 표시됩니다. 배포가 완료될 때까지 기다립니다.

  10. 알림 창에서 리소스 그룹으로 이동을 선택합니다. 다음과 유사한 화면이 표시됩니다.

    VM 템플릿 배포 리소스 목록 시작/중지

비고

문제 해결을 위해 지원 팀에 문의하실 경우 더 나은 도움을 드리기 위해 운영 및 하트비트 원격 분석을 수집하고 있습니다. 또한 가상 머신 이벤트 기록을 수집하여 서비스가 가상 머신에 액션을 취한 시점과 가상 머신이 얼마나 오래 휴면 상태였는지를 확인하여 서비스의 효능을 평가합니다.

여러 구독 활성화

시작/중지 배포가 완료되면 다음 단계를 수행하여 VM v2 시작/중지가 여러 구독에서 작업을 수행할 수 있도록 합니다.

  1. 배포 중에 지정한 Azure Function App 이름의 값을 복사합니다.

  2. Azure Portal에서 보조 구독으로 이동합니다.

  3. 액세스 제어(IAM) 를 선택합니다.

  4. 추가>역할 할당 추가를 선택하여 역할 할당 추가 페이지를 엽니다.

  5. 다음 역할을 할당합니다. 세부 단계에 대해서는 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

    설정 가치
    역할 기여자
    액세스 권한 지정 사용자, 그룹 또는 서비스 주체
    구성원 <Azure 함수 앱 이름>

    Azure Portal에서 역할 할당 페이지 추가를 보여주는 스크린샷입니다.

일정 구성 개요

VM의 시작 및 중지를 제어하는 자동화 방법을 관리하려면 요구 사항에 따라 포함된 논리 앱 중 하나 이상을 구성합니다.

  • 예약됨 - 시작 및 중지 작업은 Azure Resource Manager 및 클래식 VM에 대해 지정한 일정을 기반으로 합니다. ststv2_vms_Scheduled_startststv2_vms_Scheduled_stop은 예약된 시작 및 중지를 구성합니다.

  • 시퀀스 - 시작 및 중지 작업은 미리 정의된 시퀀싱 태그가 있는 VM을 대상으로 하는 일정을 기반으로 합니다. sequencestartsequencestop이라는 두 개의 명명된 태그만 지원됩니다. ststv2_vms_Sequenced_startststv2_vms_Sequenced_stop은 시퀀싱된 시작 및 중지를 구성합니다.

    비고

    이 시나리오는 Azure Resource Manager VM만 지원합니다.

  • AutoStop - 이 기능은 CPU 사용률에 따라 Azure Resource Manager 및 클래식 VM 모두에 대해 중지 작업을 수행하는 데만 사용됩니다. 또한 VM에 대한 경고를 만들고 조건에 따라 경고가 트리거되어 중지 작업을 수행하는 예약 기반 수행 작업일 수도 있습니다.ststv2_vms_AutoStop 자동 중지 기능을 구성합니다.

추가 일정이 필요한 경우 Azure Portal에서 복제 옵션을 사용하여 제공된 Logic Apps 중 하나를 복제할 수 있습니다.

예약된 시작 및 중지 시나리오

Azure Resource Manager 및 클래식 VM에 대해 예약된 시작 및 중지 작업을 구성하려면 다음 단계를 수행합니다. 예를 들어 ststv2_vms_Scheduled_start 일정을 구성하여 사무실에 있을 때 아침에 해당 일정을 시작하고, ststv2_vms_Scheduled_stop 일정에 따라 저녁에 퇴근할 때 구독 전체에서 모든 VM을 중지할 수 있습니다.

VM을 시작하도록 논리 앱을 구성하는 것이 지원됩니다.

각 시나리오에 대해 하나 이상의 구독, 단일 또는 여러 리소스 그룹에 대해 작업을 대상으로 지정하고 포함 또는 제외 목록에 하나 이상의 VM을 지정할 수 있습니다. 동일한 논리 앱에서 함께 지정할 수 없습니다.

  1. Azure Portal에 로그인한 다음 논리 앱으로 이동합니다.

  2. 논리 앱 목록에서 예약된 시작을 구성하려면 ststv2_vms_Scheduled_start 선택합니다. 예약된 중지를 구성하려면 ststv2_vms_Scheduled_stop 선택합니다.

  3. 왼쪽 창에서 논리 앱 디자이너 를 선택합니다.

  4. 논리 앱 디자이너가 나타나면 디자이너 창에서 되풀이 를 선택하여 논리 앱 일정을 구성합니다. 특정 되풀이 옵션에 대한 자세한 내용은 되풀이 작업 예약을 참조하세요.

    논리 앱에 대한 되풀이 빈도 구성

    비고

    첫 번째 되풀이에 대한 시작 날짜 및 시간을 제공하지 않으면 논리 앱을 저장할 때 되풀이가 즉시 실행되므로 예약된 실행 전에 VM이 시작되거나 중지될 수 있습니다.

  5. 디자이너 창에서 Function-Try 를 선택하여 대상 설정을 구성합니다. 요청 본문에서 구독의 모든 리소스 그룹에서 VM을 관리하려면 다음 예제와 같이 요청 본문을 수정합니다.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/"
        ]
     }
    }
    

    다음 예제와 subscriptions 같이 각 값을 쉼표로 구분하여 배열에 여러 구독을 지정합니다.

    "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
        ]
    

    요청 본문에서 특정 리소스 그룹에 대한 VM을 관리하려면 다음 예제와 같이 요청 본문을 수정합니다. 지정된 각 리소스 경로는 쉼표로 구분해야 합니다. 필요한 경우 리소스 그룹을 하나 이상 지정할 수 있습니다.

    이 예제에서는 가상 머신을 제외하는 방법을 보여 줍니다. VM 리소스 경로를 지정하거나 와일드카드로 VM을 제외할 수 있습니다.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
         ],
        "ResourceGroups": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/"
        ],
        "ExcludedVMLists": [
         "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      }
    }
    

    여기서 작업은 두 구독에서 Az와 Bz로 시작하는 VM을 제외한 모든 VM에 수행됩니다.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [“Az*”,“Bz*”],
       "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
    
        ]
      }
    }
    

    요청 본문에서 구독 내의 특정 VM 집합을 관리하려면 다음 예제와 같이 요청 본문을 수정합니다. 지정된 각 리소스 경로는 쉼표로 구분해야 합니다. 필요한 경우 하나의 VM을 지정할 수 있습니다.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1",
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg3/providers/Microsoft.Compute/virtualMachines/vm2",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30"
    
        ]
      }
    }
    
  6. 논리 앱의 개요 창에서 [사용]을 선택합니다.

시퀀스된 시작 및 중지 시나리오

분산 애플리케이션 아키텍처의 여러 Azure Resource Manager VM에 두 개 이상의 구성 요소가 포함된 환경에서는 구성 요소가 순서대로 시작 및 중지되는 순서를 지원하는 것이 중요합니다. 이 시나리오를 구성하기 전에 개요 페이지에 설명된 대로 시퀀스 시작sequencestop 태그를 대상 VM에 적용했는지 확인합니다.

  1. 논리 앱 목록에서 시퀀스된 시작을 구성하려면 ststv2_vms_Sequenced_start 선택합니다. 시퀀스 중지를 구성하려면 ststv2_vms_Sequenced_stop 선택합니다.

  2. 왼쪽 창에서 논리 앱 디자이너 를 선택합니다.

  3. 논리 앱 디자이너가 나타나면 디자이너 창에서 되풀이 를 선택하여 논리 앱 일정을 구성합니다. 특정 되풀이 옵션에 대한 자세한 내용은 되풀이 작업 예약을 참조하세요.

    논리 앱에 대한 되풀이 빈도 구성

    비고

    첫 번째 되풀이에 대한 시작 날짜 및 시간을 제공하지 않으면 논리 앱을 저장할 때 되풀이가 즉시 실행되므로 예약된 실행 전에 VM이 시작되거나 중지될 수 있습니다.

  4. 디자이너 창에서 Function-Try를 선택하여 대상 설정을 구성한 다음 상단 메뉴에서 />Code 보기 단추를 선택하여<Function-Try 요소의 코드를 편집합니다. 요청 본문에서 구독의 모든 리소스 그룹에서 VM을 관리하려면 다음 예제와 같이 요청 본문을 수정합니다.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/"
        ]
     },
       "Sequenced": true
    }
    

    다음 예제와 subscriptions 같이 각 값을 쉼표로 구분하여 배열에 여러 구독을 지정합니다.

    "Subscriptions": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
        ]
    

    요청 본문에서 특정 리소스 그룹에 대한 VM을 관리하려면 다음 예제와 같이 요청 본문을 수정합니다. 지정된 각 리소스 경로는 쉼표로 구분해야 합니다. 필요한 경우 하나의 리소스 그룹을 지정할 수 있습니다.

    또한 이 예제에서는 와일드카드를 사용한 예약된 시작/중지 예제와 비교하여 리소스 경로로 가상 머신을 제외하는 방법을 보여 줍니다.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "Subscriptions":[
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/"
        ],
        "ResourceGroups": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/"
        ],
        "ExcludedVMLists": [
         "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      },
       "Sequenced": true
    }
    

    요청 본문에서 구독 내에서 특정 VM 집합을 관리하려면 다음 예제와 같이 요청 본문을 수정합니다. 지정된 각 리소스 경로는 쉼표로 구분해야 합니다. 필요한 경우 하나의 VM을 지정할 수 있습니다.

    {
      "Action": "start",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1",
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm2",
          "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30"
        ]
      },
       "Sequenced": true
    }
    

자동 중지 시나리오

VM 시작/중지 v2는 사용량이 많지 않은 기간(예: 시간 후)에 사용되지 않는 컴퓨터를 평가하고 프로세서 사용률이 지정된 비율보다 작은 경우 자동으로 종료하여 구독에서 Azure Resource Manager 및 클래식 VM을 실행하는 비용을 관리하는 데 도움이 될 수 있습니다.

요청 본문의 다음 메트릭 경고 속성은 사용자 지정을 지원합니다.

  • AutoStop_MetricName
  • 자동정지_조건
  • AutoStop_Threshold
  • 자동정지_설명
  • 자동정지_빈도
  • AutoStop_Severity
  • AutoStop_Threshold
  • AutoStop_TimeAggregationOperator
  • 자동정지_시간창

Azure Monitor 메트릭 경고의 작동 방식과 이를 구성하는 방법에 대한 자세한 내용은 Azure Monitor의 메트릭 경고를 참조하세요.

  1. 논리 앱 목록에서 자동 중지를 구성하려면 ststv2_vms_AutoStop 선택합니다.

  2. 왼쪽 창에서 논리 앱 디자이너 를 선택합니다.

  3. 논리 앱 디자이너가 나타나면 디자이너 창에서 되풀이 를 선택하여 논리 앱 일정을 구성합니다. 특정 되풀이 옵션에 대한 자세한 내용은 되풀이 작업 예약을 참조하세요.

    논리 앱에 대한 되풀이 빈도 구성

  4. 디자이너 창에서 Function-Try 를 선택하여 대상 설정을 구성합니다. 요청 본문에서 구독의 모든 리소스 그룹에서 VM을 관리하려면 다음 예제와 같이 요청 본문을 수정합니다.

    {
      "Action": "stop",
      "EnableClassic": false,    
      "AutoStop_MetricName": "Percentage CPU",
      "AutoStop_Condition": "LessThan",
      "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold",
      "AutoStop_Frequency": "00:05:00",
      "AutoStop_Severity": "2",
      "AutoStop_Threshold": "5",
      "AutoStop_TimeAggregationOperator": "Average",
      "AutoStop_TimeWindow": "06:00:00",
      "RequestScopes":{        
        "Subscriptions":[
            "/subscriptions/12345678-1111-2222-3333-1234567891234/",
            "/subscriptions/12345678-2222-4444-5555-1234567891234/"
        ],
        "ExcludedVMLists":[]
      }        
    }
    

    요청 본문에서 특정 리소스 그룹에 대한 VM을 관리하려면 다음 예제와 같이 요청 본문을 수정합니다. 지정된 각 리소스 경로는 쉼표로 구분해야 합니다. 필요한 경우 하나의 리소스 그룹을 지정할 수 있습니다.

    {
      "Action": "stop",
      "AutoStop_Condition": "LessThan",
      "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold",
      "AutoStop_Frequency": "00:05:00",
      "AutoStop_MetricName": "Percentage CPU",
      "AutoStop_Severity": "2",
      "AutoStop_Threshold": "5",
      "AutoStop_TimeAggregationOperator": "Average",
      "AutoStop_TimeWindow": "06:00:00",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "ResourceGroups": [
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/",
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroupsvmrg2/",
          "/subscriptions/12345678-2222-4444-5555-1234567891234/resourceGroups/VMHostingRG/"
          ]
      }
    }
    

    요청 본문에서 구독 내의 특정 VM 집합을 관리하려면 다음 예제와 같이 요청 본문을 수정합니다. 지정된 각 리소스 경로는 쉼표로 구분해야 합니다. 필요한 경우 하나의 VM을 지정할 수 있습니다.

    {
      "Action": "stop",
      "AutoStop_Condition": "LessThan",
      "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold",
      "AutoStop_Frequency": "00:05:00",
      "AutoStop_MetricName": "Percentage CPU",
      "AutoStop_Severity": "2",
      "AutoStop_Threshold": "5",
      "AutoStop_TimeAggregationOperator": "Average",
      "AutoStop_TimeWindow": "06:00:00",
      "EnableClassic": false,
      "RequestScopes": {
        "ExcludedVMLists": [],
        "VMLists": [
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/rg3/providers/Microsoft.ClassicCompute/virtualMachines/Clasyvm11",
          "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1"
        ]
      }
    }
    

VM 태그

VM 자체의 설정 태그를 통해 시작 및 중지 작업에서 특정 VM을 포함하거나 제외할 수도 있습니다. 태그를 추가하려면 특정 VM으로 이동하고, 왼쪽 메뉴에서 태그 를 선택하고, 명명 ssv2excludevm된 태그를 추가합니다. 시작 또는 중지 작업에서 이 VM을 제외하려면 이 새 태그 true의 값을 .로 설정합니다. 작업에 VM을 포함하려면 값을 false.로 설정합니다. 이렇게 하면 페이로드 구성에서 업데이트 ExcludedVMLists 하지 않고도 특정 VM을 제외할 수 있습니다.

다음 단계

VM 시작/중지 v2 기능으로 관리되는 Azure VM의 상태를 모니터링하고 다른 관리 작업을 수행하는 방법을 알아보려면 VM 관리/중지 문서를 참조하세요.