관리형 리소스

완료됨

배포 스택에서 관리하는 Azure 리소스는 관리되는 리소스라고 합니다. 리소스는 스택을 만드는 데 사용되는 템플릿 파일에 정의됩니다.

예금 애플리케이션의 다음 스프린트를 준비하면서 배포 스택이 리소스를 어떻게 관리하는지 자세히 알아보려고 합니다. 개발 과정에서 기능을 테스트하면서 애플리케이션에 빠르고 빈번한 변화가 있을 것으로 예상합니다. 애플리케이션에서 리소스를 추가, 수정 또는 삭제하기 전에 이러한 리소스를 관리하는 방법을 알아야 합니다.

이 단원에서는 관리되는 리소스 및 관리되지 않는 작업 매개 변수에 대해 알아봅니다. 이 매개 변수는 Azure가 배포 스택에서 더 이상 관리하지 않는 리소스를 처리하는 방법을 결정합니다.

관리되는 리소스 이해

배포 스택을 업데이트하기 전에 스택이 리소스를 관리하는 방법을 살펴보겠습니다. 배포 스택을 만드는 경우 스택은 템플릿 파일에 설명된 리소스를 관리하는 역할을 담당하게 됩니다. 이러한 리소스를 관리되는 리소스라고 합니다. 리소스가 배포 스택의 템플릿 파일에 정의되어 있는 한 이 리소스는 관리되는 리소스로 간주됩니다. 배포 스택을 리소스의 배포 위치와 관계없이 애플리케이션의 리소스를 단일 로직 단위로 그룹화하는 일련의 포인터라고 생각해 보세요.

배포 스택은 리소스 그룹, 구독, 관리 그룹 등 다양한 범위에서 만들어질 수 있습니다. 배포 스택에서 관리할 수 있는 리소스는 스택이 만들어진 범위에 따라 달라집니다. 예를 들어 구독 범위에서 스택을 배포하는 경우 스택은 구독 내의 리소스 그룹과 동일한 구독 내에 있는 모든 리소스 그룹의 리소스를 관리할 수 있습니다.

배포 스택 및 관리되는 리소스를 나타내는 그래픽

더 이상 배포 스택에서 관리되지 않는 리소스는 어떻게 되나요? 리소스가 템플릿 파일에 더 이상 정의되어 있지 않고 스택이 업데이트되면 리소스가 분리되거나 삭제될 수 있습니다. 분리된 리소스는 더 이상 스택에서 관리되지 않는 리소스이지만 리소스는 Azure 내에 계속 존재합니다. 삭제된 리소스는 Azure에서 삭제된 리소스이며 모든 데이터가 손실됩니다.

관리되지 않는 작업

관리되지 않는 작업 매개 변수로 알려진 속성을 사용하여 Azure에서 분리된 리소스, 리소스 그룹 및 관리 그룹을 처리하는 방법을 제어할 수 있습니다. 이 매개 변수는 배포 스택을 생성, 수정 또는 삭제할 때 설정할 수 있습니다.

세 작업 모두 관리되지 않는 작업 매개 변수의 동작을 설정할 수 있습니다. 가장 최근에 설정된 값이 우선합니다.

예를 들어 매개 변수가 --action-on-unmanage detachAll로 설정된 배포 스택이 만들어지면 Azure는 스택에서 더 이상 관리되지 않는 리소스를 모두 분리합니다. 후속 업데이트 작업이 실행되고 매개 변수가 --action-on-unmanage deleteAll설정된 경우 동작은 기본적으로 deleteAll로 설정됩니다.

--action-on-unmanage 매개 변수에 사용할 수 있는 세 가지 값은 다음과 같습니다.

  • deleteAll - 리소스, 리소스 그룹 및 관리 그룹을 삭제합니다.
  • deleteResources - 리소스를 삭제하지만 리소스 그룹과 관리 그룹을 분리합니다.
  • detachAll - 모든 리소스, 리소스 그룹 및 관리 그룹을 분리합니다.

참고 항목

이 모듈에서는 리소스 그룹 범위 배포 스택을 사용하여 작업합니다. 이 상황에서는 리소스 그룹이 스택에서 관리되지 않습니다. 관리되지 않는 작업 매개 변수의 값이 '모두 삭제'이더라도 스택이 존재하는 리소스 그룹이 삭제되지 않습니다. 스택과 해당 리소스가 삭제된 후에는 리소스 그룹을 삭제해야 합니다.

--action-on-unmanage 매개 변수에 대해 설정된 값과 함께 Azure CLI az stack group show 명령을 사용할 때의 JSON 출력을 살펴보겠습니다. 리소스, 리소스 그룹 및 관리 그룹의 동작을 확인합니다.

  1. --action-on-unmanage deleteAll

    "actionOnUnmanage": {
        "managementGroups": "delete",
        "resourceGroups": "delete",
        "resources": "delete"
    },
    
  2. --action-on-unmanage deleteResources

    "actionOnUnmanage": {
        "managementGroups": "detach",
        "resourceGroups": "detach",
        "resources": "delete"
    },
    
  3. --action-on-unmanage detachAll

    "actionOnUnmanage": {
        "managementGroups": "detach",
        "resourceGroups": "detach",
        "resources": "detach"
    },
    

예를 들어 매개 변수가 -ActionOnUnmanage DetachAll로 설정된 배포 스택이 만들어지면 Azure는 스택에서 더 이상 관리되지 않는 리소스를 모두 분리합니다. 후속 업데이트 작업이 실행되고 매개 변수가 -ActionOnUnmanage DeleteAll설정된 경우 동작은 기본적으로 DeleteAll로 설정됩니다.

-ActionOnUnmanage 매개 변수에 사용할 수 있는 세 가지 값은 다음과 같습니다.

  • DeleteAll - 리소스, 리소스 그룹 및 관리 그룹을 삭제합니다.
  • DeleteResources - 리소스를 삭제하지만 리소스 그룹과 관리 그룹을 분리합니다.
  • DetachAll - 모든 리소스, 리소스 그룹 및 관리 그룹을 분리합니다.

참고 항목

이 모듈에서는 리소스 그룹 범위 배포 스택을 사용하여 작업합니다. 이 상황에서는 리소스 그룹이 스택에서 관리되지 않습니다. >관리되지 않는 작업 매개 변수의 값이 '모두 삭제'이더라도 스택이 존재하는 리소스 그룹이 삭제되지 않습니다. 스택과 해당 리소스가 삭제된 후에는 리소스 그룹을 삭제해야 합니다.

-ActionOnUnmanage 매개 변수에 대해 설정된 값과 함께 Azure PowerShell Get-AzResourceGroupDeploymentStack 명령을 사용할 때의 json 출력을 살펴보겠습니다. 리소스, 리소스 그룹 및 관리 그룹의 동작을 확인합니다.

  1. -ActionOnUnmanage DeleteAll

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : delete
    managementGroupsCleanupAction : delete
    
  2. -ActionOnUnmanage DeleteResources

    resourcesCleanupAction        : delete
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach
    
  3. -ActionOnUnmanage DetachAll

    resourcesCleanupAction        : detach
    resourceGroupsCleanupAction   : detach
    managementGroupsCleanupAction : detach