반응형
Azure Resource Manager 사용
학습 목표
1. Azure Resource Manager의 기능 및 사용 사례를 식별합니다.
2. 리소스 그룹을 통해 Azure 리소스를 구성합니다.
3. Azure Resource Manager 잠금을 적용합니다.
4. 그룹, 구독 및 지역 간에 Azure 리소스를 이동합니다.
5. 리소스 및 리소스 그룹을 제거합니다.
6. 리소스 제한을 적용하고 추적합니다.
* 본문의 내용은 Microsoft Docs > Learn > AZ-104: Azure 관리자 필수 조건 > Azure Resource Manager 사용 문서를 요약한 것입니다.
1. Azure Resource Manager란?
- 애플리케이션에 대한 인프라는 일반적으로 가상 머신, 스토리지 계정 및 가상 네트워크 또는 웹앱, 데이터베이스, 데이터베이스 서버 및 타사 서비스 등의 많은 구성 요소를 만듭니다. 이러한 구성 요소는 별도의 엔터티가 아니며, 상호 관련이 있으며 단일 엔터티의 상호 종속적입니다. 그룹으로 배포, 관리 및 모니터링하려고 합니다.
- Azure 리소스 관리자를 사용하면 솔루션에서 리소스를 그룹으로 사용할 수 있습니다. 조정된 단일 작업에서 솔루션에 대한 모든 리소스를 배포, 업데이트 또는 삭제할 수 있습니다. 배포용 템플릿을 사용하고 이 템플릿을 테스트, 스테이징 및 프로덕션과 같은 여러 환경에서 사용할 수 있습니다. Azure Resource Manager는 보안, 감사 및 태그 기능을 제공하여 배포 후에 리소스를 관리할 수 있습니다.
- 일관적인 관리 계층
- Azure Resource Manager는 Azure PowerShell, Azure CLI, Azure Portal, REST API 및 클라이언트 SDK를 통해 작업을 수행하는 일관적인 관리 계층을 제공합니다.
- Azure Portal에서 사용할 수 있는 기능은 Azure PowerShell, Azure CLI, Azure REST API 및 클라이언트 SDK를 통해서만 사용 가능합니다.
- API를 통해 처음 릴리스된 기능은 처음 릴리스된 지 180일 이내에 포털에 표시됩니다. API는 요청을 인증하고 권한을 부여하는 Azure Resource Manager 서비스에 요청을 전달합니다.
- 그 다음, Azure Resource Manager는 적절한 리소스 공급자로 요청을 라우팅합니다.
- Azure Resource Manager는 Azure PowerShell, Azure CLI, Azure Portal, REST API 및 클라이언트 SDK를 통해 작업을 수행하는 일관적인 관리 계층을 제공합니다.
- Azure Resource Manager의 장점
- 이 리소스를 개별적으로 처리하는 것이 아니라 솔루션에 대한 모든 리소스를 그룹으로 배포, 관리 및 모니터링할 수 있습니다.
- 개발 수명 주기 내내 솔루션을 반복적으로 배포하며 안심하고 일관된 상태로 리소스를 배포할 수 있습니다.
- 스크립트가 아닌 선언적 템플릿을 통해 인프라를 관리할 수 있습니다.
- 리소스 간의 종속성을 정의할 수 있으므로 올바른 순서로 배포됩니다.
- 역할 기반 Access Control(RBAC)가 관리 플랫폼으로 통합되기 때문에 리소스 그룹의 모든 서비스에 대해 Access Control를 적용할 수 있습니다.
- 리소스에 태그를 적용하여 구독에서 모든 리소스를 논리적으로 구성할 수 있습니다.
- 같은 태그를 공유하는 리소스 그룹에 대한 비용을 확인하여 조직의 청구를 명확히 할 수 있습니다.
- 이 리소스를 개별적으로 처리하는 것이 아니라 솔루션에 대한 모든 리소스를 그룹으로 배포, 관리 및 모니터링할 수 있습니다.
2. Azure Resource 용어
- 리소스(Resource)
- Azure를 통해 사용할 수 있는 관리 가능한 항목입니다. 몇 가지 일반적인 리소스는 가상 머신, 스토리지 계정, 웹앱, 데이터베이스 및 가상 네트워크이지만 더 많은 종류가 있습니다. - 리소스 그룹(Resource Group)
- Azure 솔루션과 관련된 리소스를 보관하는 컨테이너입니다. 리소스 그룹에는 솔루션에 대한 모든 리소스 또는 그룹으로 관리하려는 해당 리소스만 포함될 수 있습니다. 사용자의 조직에 가장 적합한 내용에 따라 리소스 그룹에 리소스를 어떻게 할당할지 결정합니다. - 리소스 공급자(Resource Provider)
- Resource Manager를 통해 배포 및 관리할 수 있는 리소스를 제공하는 서비스입니다. 각 리소스 공급자는 배포된 리소스로 작업하기 위한 작업을 제공합니다. 몇 가지 일반 리소스 공급자는 가상 머신 리소스를 제공하는 Microsoft.Compute, 스토리지 계정 리소스를 제공하는 Microsoft.Storage 및 웹앱에 관련된 리소스를 제공하는 Microsoft.Web입니다.
- 각 리소스 공급자는 Azure 서비스를 사용하는 일련의 리소스 및 작업을 제공합니다. 예를 들어 키와 암호를 저장하려는 경우 Microsoft.KeyVault 리소스 공급자로 작업합니다. 이 리소스 공급자는 키 자격 증명 모음을 만드는 데 자격 증명 모음이라는 리소스 유형을 제공합니다.
- 리소스 종류의 이름은 {resource-provider}/{resource-type} 형식입니다. 예를 들어 Key Vault 형식은 Microsoft.KeyVault/vaults 입니다.
- 템플릿(Template)
- 리소스 그룹에 배포할 하나 이상의 리소스를 정의하는 JSON(JavaScript Object Notation) 파일입니다. 또한 배포된 리소스 간의 종속성을 정의합니다. 템플릿은 리소스를 일관되고 반복적으로 배포하는 데 사용할 수 있습니다. - 선언적 구문(Declarative Syntax)
- 프로그래밍 명령 시퀀스를 작성할 필요 없이, "Here is what I intend to create"로 지정할 수 있는 구문입니다. Resource Manager 템플릿은 선언적 구문의 예입니다. 파일에서 Azure에 배포하는 인프라에 대한 속성을 정의합니다.
3. Azure Resource 그룹
- 모든 신규 또는 기존 리소스 그룹에 리소스를 배포할 수 있습니다. 리소스 그룹에 리소스를 배포하면 템플릿 실행을 추적할 수 있는 작업이 됩니다. 배포가 실패하면 작업의 출력에 배포가 실패한 이유가 설명됩니다. 배포가 그룹 또는 그룹에 대한 단일 리소스인지 또는 템플릿인지에 관계 없이 해당 정보를 사용하여 오류를 수정하고 다시 배포할 수 있습니다. 배포는 증분 방식을 따릅니다. 즉, 리소스 그룹에 두 개의 웹앱이 포함되어 있고 세 번째 웹앱을 배포하기로 결정한 경우 기존 웹앱은 제거되지 않습니다. 현재, 변경할 수 없는 배포는 리소스 그룹에서 지원되지 않습니다. 변경할 수 없는 배포를 구현하려면 새 리소스 그룹을 만들어야 합니다.
- 고려 사항
- 리소스는 하나의 리소스 그룹에만 존재할 수 있습니다.
- 리소스 그룹의 이름을 바꿀 수 없습니다.
- 리소스 그룹에는 다양한 유형(서비스)의 리소스 및 여러 지역의 리소스가 있을 수 있습니다.
- 그룹에서 모든 리소스는 동일한 수명 주기를 공유해야 합니다. 리소스를 함께 배포, 업데이트, 삭제합니다. 데이터베이스 서버와 같은 하나의 리소스에 다양한 배포 주기가 존재하는 경우 다른 리소스 그룹에 있어야 합니다.
- 언제든지 리소스 그룹에 리소스를 추가하거나 제거할 수 있습니다.
- 특정 리소스 그룹에서 다른 그룹에 리소스를 이동할 수 있습니다. 가령, Azure Virtual Networks는 리소스 그룹 간에 이동이 가능합니다.
- 관리 작업에 대한 Access Control 범위를 지정하는 데 리소스 그룹을 사용할 수 있습니다.
- 리소스는 다른 리소스 그룹의 리소스와 상호 작용할 수 있습니다. 이 상호 작용은 두 개의 리소스가 관련되어 있지만 동일한 수명 주기를 공유하지 않는 경우에 일반적입니다(예: 데이터베이스에 연결된 웹앱).
- 리소스는 하나의 리소스 그룹에만 존재할 수 있습니다.
4. Azure Resource Manager 잠금
- Azure에서 프로비저닝되는 리소스와 관련해서 일반적으로 발생하는 문제는 쉽게 삭제할 수 있다는 것입니다. 부주의한 관리자는 몇 단계만으로 수개월의 작업을 지우는 실수를 저지를 수 있습니다. 조직에서는 Resource Manager 잠금을 사용하여 Azure에서 실수로 리소스를 삭제하지 못하도록 하는 구조를 적용할 수 있습니다. 예를 들어, On-Premise 환경의 네트워크에 연결하는 ExpressRoute 회로는 Resource 잠금하는 것이 좋습니다.
- 잠금 유형
- 읽기 전용 잠금: 이 유형의 잠금은 리소스, 리소스 그룹 또는 구독을 변경하지 못하게 합니다.
- 잠금 삭제: 이 유형의 잠금은 리소스, 리소스 그룹 또는 구독이 삭제되지 않게 합니다.
- 읽기 전용 잠금: 이 유형의 잠금은 리소스, 리소스 그룹 또는 구독을 변경하지 못하게 합니다.
- 소유자 및 사용자 액세스 관리자 역할만이 Resource Manager 잠금을 만들고 편집하거나 삭제할 수 있습니다.
5. Azure Resource 재구성 / (그룹) 제거
- Resource 재구성
- 리소스를 이동할 때 원본 그룹과 대상 그룹은 모두 작업 중에 잠겨 있습니다. 쓰기 및 삭제 작업은 이동이 완료될 때까지 리소스 그룹에서 차단됩니다. 이 잠금은 리소스 그룹에서 리소스를 추가, 업데이트 또는 삭제할 수 없음을 의미합니다. 잠근다고 해서 리소스를 사용할 수 없는 것은 아닙니다. 예를 들어, 가상 머신을 새 리소스 그룹으로 이동하는 경우 애플리케이션은 여전히 가상 머신에 액세스할 수 있습니다.
- 리소스를 이동하려면 해당 리소스가 포함된 리소스 그룹을 선택한 후 이동 단추를 선택합니다. 이동할 리소스와 대상 리소스 그룹을 선택합니다. 스크립트를 업데이트해야 함을 승인합니다.
- 단지 서비스를 이동할 수 있다고 해서 제한 사항이 없는 것은 아닙니다. 예를 들어 가상 네트워크를 이동할 수 있지만 게이트웨이와 같은 종속 리소스도 이동해야 합니다.
- 리소스를 이동할 때 원본 그룹과 대상 그룹은 모두 작업 중에 잠겨 있습니다. 쓰기 및 삭제 작업은 이동이 완료될 때까지 리소스 그룹에서 차단됩니다. 이 잠금은 리소스 그룹에서 리소스를 추가, 업데이트 또는 삭제할 수 없음을 의미합니다. 잠근다고 해서 리소스를 사용할 수 없는 것은 아닙니다. 예를 들어, 가상 머신을 새 리소스 그룹으로 이동하는 경우 애플리케이션은 여전히 가상 머신에 액세스할 수 있습니다.
- Resource (그룹) 삭제
- 리소스 그룹을 제거하려면 Remove-AzResourceGroup 을 사용합니다. 이 예제에서는 구독에서 ContosoRG01 리소스 그룹을 제거합니다. 이 cmdlet은 확인하라는 메시지를 표시하며 출력은 반환하지 않습니다.
Remove-AzResourceGroup -Name "ContosoRG01"
- 리소스 그룹 내부의 개별 리소스를 삭제할 수도 있습니다. 리소스 그룹을 변경할 수 있습니다.
- 리소스 그룹을 제거하려면 Remove-AzResourceGroup 을 사용합니다. 이 예제에서는 구독에서 ContosoRG01 리소스 그룹을 제거합니다. 이 cmdlet은 확인하라는 메시지를 표시하며 출력은 반환하지 않습니다.
반응형
댓글