배포 스택을 사용하는 이유

완료됨

배포 스택이 리소스 수명 주기 관리에 적합한 기능을 제공할 수 있는지 평가하고 있습니다. 배포 스택의 기능과 이를 사용하여 애플리케이션과 Azure 리소스를 관리하는 방법에 대해 알아보는 데 시간을 투자했습니다. 배포 스택을 고려해야 하는 이유와 전반적인 이점에 대해 자세히 알아보고 싶어합니다.

이 단원에서는 배포 스택의 이점에 대해 알아봅니다.

배포 스택의 이점

배포 스택은 리소스 프로비전 프로세스에 다음을 포함하여 많은 이점을 추가할 수 있습니다.

  • 간소화된 프로비전
  • 허가되지 않은 변경 방지
  • 신뢰할 수 있는 리소스 정리
  • 표준화된 템플릿
  • 기존 프로세스 강화

간소화된 프로비전

여러 구독에 걸쳐 여러 리소스 그룹에 배포해야 하는 애플리케이션을 생각해 보세요. 표준 배포에서는 각 리소스 그룹 범위에서 여러 개의 만들기 작업을 실행해야 합니다. 배포 파이프라인은 리소스 종속성과 배포 시퀀스를 처리하도록 설계되어야 합니다.

배포 스택을 사용하면 단일 명령으로 애플리케이션을 배포할 수 있습니다. 이 예에서 관리 그룹 수준에서 배포 스택의 범위를 지정할 때 모든 리소스는 실행 시점에 적절한 구독 및 리소스 그룹에 배포됩니다. 애플리케이션 업데이트는 단일 배포 명령을 통해 동일한 방식으로 처리됩니다.

이 프로세스를 통해 애플리케이션을 배포하거나 수정하는 데 필요한 작업 수가 크게 줄어듭니다.

허가되지 않은 변경 방지

배포 스택은 Azure 리소스에 대한 무단 변경을 방지하는 데 도움이 되는 추가적인 보안 계층과 가드 레일을 제공합니다.

배포 스택을 만들 때 스택이 관리하는 리소스에 적용되는 권한을 지정할 수 있습니다. 거부 설정이라고 불리는 이러한 권한은 허가되지 않은 사용자가 수정하거나 삭제하는 것을 방지하는 데 사용됩니다.

거부 설정은 Azure RBAC(역할 기반 액세스 제어) 및 Azure 잠금 기능과 개념적으로 유사할 수 있습니다. RBAC는 특정 범위에서 특정 사용자에게 특정 역할을 할당하는 데 사용됩니다. 예를 들어, 리소스 그룹 범위에서 사용자에게 기여자 역할을 할당합니다. 잠금은 사용자가 작업을 수행하는지 여부에 관계없이 특정 범위에서 리소스의 수정이나 삭제를 방지하는 데 사용됩니다. 예를 들어, 구독 범위에 읽기 전용 잠금을 적용하면 사용자에게 RBAC 권한이 있어도 모든 리소스를 수정하거나 삭제할 수 없습니다.

배포 스택 거부 설정을 사용하면 여러 범위에 걸쳐 리소스 컬렉션에 대한 제어를 구현할 수 있으며, 이는 이미 실행 중인 RBAC 할당이나 잠금보다 우선합니다.

신뢰할 수 있는 리소스 정리

구독 내 여러 리소스 그룹에 배포된 애플리케이션에 대한 개발 환경을 고려합니다. 환경을 제거하고 모든 리소스를 삭제하려면 리소스 그룹 및 리소스에 대해 여러 개의 삭제 작업을 실행해야 합니다. 리소스 간에 종속성이 존재하는 경우 삭제 작업이 실패할 수 있습니다. 시퀀스 없이 삭제된 리소스로 인해 삭제 작업이 실패할 수도 있습니다.

배포 스택을 사용하면 종속성을 이해할 필요 없이 단일 API 호출을 통해 스택과 모든 리소스를 삭제할 수 있습니다. 이 단일 작업으로 안정적으로 리소스를 제거하고 제거 속도를 개선합니다.

스택이 관리하는 리소스를 삭제하는 또 다른 이점은 비용 절감의 가능성입니다. 배포 스택에서 관리하지 않는 애플리케이션과 해당 리소스를 삭제하는 것은 많은 경우 오류가 발생하기 쉬운 수동 작업입니다. 특정 리소스를 실수로 삭제하는 것을 잊어버릴 수 있으며, 이로 인해 비용이 계속 발생할 수 있습니다. 배포 스택은 특히 일시적인 환경을 처리할 때 비용 관리 도구 역할을 하여 이러한 문제를 해결합니다.

배포 스택을 삭제할 때 actionOnUnmanage 속성을 사용하여 Azure에서 스택에 포함된 리소스, 리소스 그룹 및 관리 그룹을 처리하는 방법을 결정할 수 있습니다. Azure는 리소스, 리소스 그룹 및 관리 그룹을 삭제할 수도 있고, 이를 분리할 수도 있습니다. 분리란 리소스가 삭제되지는 않지만 더 이상 스택에서 관리되지 않는다는 것을 의미합니다.

표준화된 프로세스 및 템플릿

배포 스택과 해당 리소스를 만들고 배포하는 것은 표준 Azure 배포와 거의 동일합니다. 예시:

Bicep 파일을 리소스 그룹에 배포하는 Azure CLI 명령은 다음과 같습니다.

az deployment group create \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep

리소스 그룹 범위에서 배포 스택을 만드는 Azure CLI 명령은 다음과 같습니다.

az stack group create \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep \
    --action-on-unmanage detachAll \
    --deny-settings-mode none

배포 스택은 스택의 리소스를 정의하기 위해 Bicep 파일, ARM JSON 템플릿 또는 템플릿 사양의 사용을 지원합니다. Azure CLI 또는 Azure PowerShell을 사용하여 배포 스택을 배포할 때 특정 템플릿 파일(Bicep 파일 또는 ARM JSON 템플릿) 또는 템플릿 사양을 가리킬 수 있습니다. 리소스를 정의하는 방법을 변경할 필요는 없습니다.

기존 프로세스 강화

이미 코드 제공 인프라를 사용하여 Azure에 대한 리소스 배포를 관리하고 있는 경우, 배포 스택을 사용하면 프로세스를 보다 효과적으로 제어할 수 있습니다. 이전 섹션에서 설명한 대로 배포 스택을 만드는 프로세스는 리소스 그룹 기반 배포를 만드는 프로세스와 크게 다르지 않습니다. 배포 스택을 사용하면 단일 명령으로 관리 그룹, 구독 및 리소스 그룹 전반에 배포하는 기능이 훨씬 간편해집니다. 이제 스택을 사용하면 리소스 보안이 배포 프로세스의 일부가 되었습니다.