리소스 그룹의 원칙

완료됨

여러분은 입사 첫째 주에 회사의 Azure 구독에 있는 기존 리소스를 살펴보았습니다. 다양한 리소스를 포함하고 있는 수많은 리소스 그룹이 있지만, 일관된 구조로 구성되지 않았습니다. 여러분은 이전에 Azure를 사용한 경험이 있지만, 리소스 그룹이 어떻게 작동하고 그 역할이 무엇인지는 정확하게 알지 못합니다. 여러분은 리소스를 정리할 때 리소스 그룹이 중요한 역할을 할 수 있다고 (정확하게) 추측했습니다. 리소스 그룹이 무엇인지, 어떻게 사용할 수 있는지 살펴보겠습니다.

참고 항목

Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.


리소스 그룹이란?

리소스 그룹은 Azure 플랫폼의 기본 요소입니다. 리소스 그룹은 Azure에 배포된 리소스의 논리 컨테이너입니다. 이러한 리소스는 가상 머신, Application Gateway, CosmosDB 인스턴스와 같이 사용자가 Azure 구독에서 만드는 모든 것을 말합니다. 모든 리소스는 리소스 그룹에 있어야 하고 한 리소스는 단일 리소스 그룹의 멤버여야 합니다. 이동에 대한 특정 제한 사항이나 요구 사항이 있는 일부 서비스를 사용하여 리소스 그룹 간에 많은 리소스를 이동할 수 있습니다. 리소스 그룹은 중첩될 수 없습니다. 리소스를 프로비전하려면 리소스 그룹을 배치해야 합니다.

논리적 그룹화

리소스 그룹의 용도는 Azure 리소스를 간편하게 관리하고 구성하는 것입니다. 사용량, 형식 또는 위치가 비슷한 리소스를 리소스 그룹에 배치하면 Azure에서 만드는 리소스에 몇 가지 질서를 부여하고 체계적으로 구성할 수 있습니다. 이 단원에서는 논리적 그룹화에 가장 큰 관심을 가져야 합니다. 회사의 리소스가 너무 무질서하기 때문입니다.

Conceptual image showing a resource group box with a Function, VM, database, and app included.

수명 주기

리소스 그룹을 삭제하면 그 안에 있는 리소스도 모두 삭제됩니다. 수명 주기로 리소스를 구성하는 방법은 실험 후 리소스를 삭제하는 프로덕션 외 환경에서 유용할 수 있습니다. 리소스 그룹을 사용하면 리소스 세트를 한꺼번에 간편하게 제거할 수 있습니다.

권한 부여

리소스 그룹은 RBAC(역할 기반 액세스 제어) 권한을 적용하는 범위이기도 합니다. 리소스 그룹에 RBAC 권한을 적용하면 관리를 줄이고 필요한 리소스만 사용하도록 액세스를 제한할 수 있습니다.

리소스 그룹 만들기

다음 방법을 사용하여 리소스 그룹을 만들 수 있습니다.

  • Azure portal
  • Azure PowerShell
  • Azure CLI
  • 템플릿
  • Azure SDK(예: .NET 또는 Java)

Azure Portal에서 리소스 그룹을 만들기 위해 수행할 단계를 살펴보겠습니다. 원하는 경우, 가지고 있는 구독을 사용하셔도 됩니다.

  1. 웹 브라우저를 열고 Azure Portal에 로그인합니다.

    중요

    고유한 구독을 사용하도록 하세요. 무료 샌드박스 환경에서는 리소스 그룹을 만들 수 없습니다. 화면 왼쪽 위에 있는 프로필 사진에서 테넌트 이름을 확인하여 사용 중인 구독을 확인할 수 있습니다. 자신의 프로필 사진을 선택하고 옵션 메뉴에서 디렉터리 전환을 선택하여 테넌트를 전환할 수 있습니다.

  2. Azure Portal 또는 페이지에서 리소스 만들기를 선택합니다. 리소스 만들기 창이 나타납니다.

  3. ‘서비스 및 마켓플레이스 검색’ 검색 상자에서 ‘리소스 그룹’을 검색하여 선택합니다. 리소스 그룹 창이 나타납니다.

  4. 만들기를 선택합니다. 리소스 그룹 만들기 창이 나타납니다.

  5. 기본 탭에서 각 설정에 다음 값을 입력합니다.

    설정
    프로젝트 세부 정보
    구독 드롭다운 목록에서 이 연습에 사용할 Azure 구독을 선택합니다.
    Resource group msftlearn-core-infrastructure-rg를 입력합니다.
    리소스 세부 정보
    지역 드롭다운 목록에서 가장 가까운 위치를 선택합니다.

    Screenshot of Azure portal showing the resource group creation with subscription, resource group, and region entered.

  6. 검토 + 만들기를 선택하고 유효성 검사를 통과한 후에 만들기를 선택하여 리소스 그룹을 만듭니다.

다 됐습니다. Azure 리소스를 배포할 때 사용할 수 있는 리소스 그룹을 만들었습니다. 이 리소스 그룹을 좀 더 자세히 살펴보고 몇 가지 중요한 고려 사항을 알아보겠습니다.

리소스 그룹을 살펴보고 리소스 추가

  1. Azure Portal 메뉴 또는 페이지의 Azure 서비스에서 리소스 그룹을 선택합니다.

  2. 목록에서 새로 만든 리소스 그룹을 선택합니다. 리소스 그룹 창이 나타납니다.

    참고 항목

    NetworkWatcherRG라는 리소스 그룹이 보일 수도 있습니다. 이 리소스 그룹은 Azure 가상 네트워크에서 Network Watcher를 사용하기 위해 자동으로 생성된 리소스 그룹이므로 무시해도 됩니다.

    Screenshot of Azure portal showing new resource group pane with no resources in it yet.

  3. 개요 페이지에서는 리소스 그룹이 상주하는 구독, 구독 ID, 적용되는 태그, 이 리소스 그룹의 배포 기록 등 리소스 그룹에 대한 기본 정보를 확인할 수 있습니다. 태그는 다음 단원에서 다루겠습니다. 페이지 맨 위에서 Essentials를 확장하면 배포 링크를 찾을 수 있으며, 링크를 따라가면 이 리소스 그룹에 대한 모든 배포 기록이 있는 새 패널로 이동합니다. 리소스를 만들 때마다 배포가 수행되는 것이며, 여기서 각 리소스 그룹의 기록을 볼 수 있습니다.

    리소스 그룹 페이지 상단의 도구 모음을 사용하여 더 많은 리소스를 추가하고, 목록의 열을 변경하고, 리소스 그룹을 다른 구독으로 이동하고, 리소스를 완전히 삭제할 수 있습니다.

    왼쪽 메뉴에는 여러 가지 옵션이 있습니다.

    아직 이 리소스 그룹에 리소스가 없으므로 맨 아래 목록이 비어 있습니다. 리소스 그룹에서 몇 가지 리소스를 만들어 보겠습니다.

  4. 상단 메뉴 모음에서 만들기를 선택하거나 창 하단에서 리소스 만들기 단추를 선택합니다. 둘 다 작동합니다. 리소스 만들기 창이 나타납니다.

  5. ‘서비스 및 마켓플레이스 검색’ 검색 상자에서 ‘가상 네트워크’를 검색하여 선택합니다. 가상 네트워크 창이 나타납니다.

  6. 만들기를 선택합니다. 가상 네트워크 만들기 창이 나타납니다.

  7. 기본 탭에서 각 설정에 다음 값을 입력합니다.

    설정
    프로젝트 세부 정보
    구독 드롭다운 목록에서 이 연습에 사용할 Azure 구독을 선택합니다.
    Resource group msftlearn-core-infrastructure-rg가 나타나는지 확인합니다.
    인스턴스 세부 정보
    Name msftlearn-vnet1을 입력합니다.
    지역 드롭다운 목록에서 가장 가까운 위치를 선택합니다.
  8. 검토 + 만들기를 선택하고 유효성 검사를 통과하면 만들기를 선택하여 리소스 그룹에 가상 네트워크를 추가합니다.

  9. 가상 네트워크 만들기 단계를 다시 반복하여 가상 네트워크를 하나 더 만듭니다. 이전에 만든 리소스 그룹에 가상 네트워크를 배치하고 네트워크의 이름을 msftlearn-vnet2로 지정해야 합니다.

  10. 리소스 그룹으로 돌아갑니다. 만든 두 가상 네트워크가 개요 창에 표시됩니다.

    Screenshot of Azure portal showing resource group overview containing two virtual network resources.

리소스 그룹에는 두 개의 가상 네트워크 리소스가 포함되어 있는데, 이는 리소스를 만들 때 리소스 그룹을 지정했기 때문입니다. 이 리소스 그룹 내부에 추가 리소스를 만들 수도 있고, 구독에서 추가 리소스 그룹을 만들고 해당 리소스 그룹에 리소스를 배포할 수 있습니다.

리소스를 만들 때 일반적으로 기존 리소스 그룹을 사용하는 대신 새 리소스 그룹을 만드는 옵션이 제공됩니다. 이렇게 하면 프로세스는 간소화될 수 있지만, 새 조직에서 볼 수 있듯 리소스를 어떻게 구성할 것인지 생각하지 않으면 리소스가 리소스 그룹 전체에 흩어질 수 있습니다.

구성에 리소스 그룹 사용

그렇다면 새 조직에서 리소스 그룹을 활용하여 이점을 얻으려면 어떻게 해야 할까요? 리소스 구성에 도움이 되는 몇 가지 지침과 모범 사례가 있습니다.

일관적인 명명 규칙

이해하기 쉬운 명명 규칙으로 시작합니다. 앞에서 리소스 그룹 이름을 msftlearn-core-infrastructure-rg로 지정했습니다. 리소스 그룹의 용도(msftlearn), 포함되는 리소스의 종류(core-infrastructure), 리소스의 종류(rg)를 표시했습니다. 이처럼 구체적인 이름을 사용하면 이해하기 쉽습니다. 만약 이름을 my-resource-group 또는 rg1으로 지정한다면 사용처가 무엇인지 한눈에 알 수 없을 것입니다. 이 경우에 지정한 이름을 보면 그 안에 핵심 인프라가 포함되어 있다고 추론할 수 있습니다. 추가 가상 네트워크, 스토리지 계정 또는 회사에서 핵심 인프라로 간주할 수 있는 기타 리소스를 만들었다면, 여기에 배치하여 회사의 리소스 구성을 개선할 수 있습니다. 명명 규칙은 회사마다 그리고 회사 내에서도 크게 달라질 수 있지만 약간의 계획이 필요합니다.

구성 원칙

리소스 그룹을 여러 가지 방법으로 구성할 수 있는데 몇 가지 예제를 살펴보겠습니다. 핵심 인프라인 모든 리소스를 이 리소스 그룹에 배치할 수도 있지만 리소스 종류별로 리소스를 엄격하게 구성할 수도 있습니다. 예를 들어 모든 가상 네트워크를 한 리소스 그룹에 배치하고, 모든 가상 머신을 다른 리소스 그룹에 배치하고, 모든 Azure Cosmos DB 인스턴스를 또 다른 리소스 그룹에 배치할 수 있습니다.

Diagram of resources grouped by type: vnet-rg for virtual networks, vm-rg for virtual machines, and db-rg for databases.

리소스를 환경별로(프로덕션, 품질 보증, 개발) 구성할 수 있습니다. 이 경우 모든 프로덕션 리소스가 한 리소스 그룹에 배치되고, 모든 테스트 리소스가 다른 리소스 그룹에 배치됩니다.

Diagram of resources grouped by environment: prod-rg for production, qa-rg for QA, and dev-rg for development.

리소스를 부서별로(마케팅, 재무, 인사) 구성할 수 있습니다. 마케팅 리소스를 한 리소스 그룹에 배치하고, 재무 리소스를 다른 리소스 그룹에 배치하고, HR 리소스를 세 번째 리소스 그룹에 배치합니다.

Diagram of resources grouped by department: finance-rg for finance, marketing-rg for marketing, and hr-rg for HR.

이러한 전략을 조합해서 환경과 부서별로 정리할 수도 있습니다. 프로덕션 재무 리소스를 한 리소스 그룹에 배치하고, 개발 재무 리소스를 다른 리소스 그룹에 배치하고, 마케팅 리소스를 다른 리소스 그룹에 배치합니다.

Diagram of resources grouped by environment and department: prod-finance, dev-finance, prod-marketing, and dev-marketing.

리소스를 구성하는 전략에서 중요한 역할을 하는 몇 가지 요소는 권한 부여, 리소스 수명 주기, 청구입니다.

권한 부여 구성

리소스 그룹은 RBAC의 범위이므로 관리하는 사람에 따라 리소스를 구성할 수 있습니다. 데이터베이스 관리 팀이 모든 Azure SQL Database 인스턴스에 대한 관리를 책임지고 있는 경우 해당 팀을 동일한 리소스 그룹에 배치하면 관리가 쉬워집니다. 해당 팀에게 리소스 그룹 수준에서 적절한 권한을 부여하여 리소스 그룹 내 데이터베이스를 관리할 수 있습니다. 마찬가지로, 데이터베이스 관리 팀은 관할 밖의 리소스를 실수로 변경하는 일이 없도록 가상 네트워크에서 리소스 그룹에 대한 액세스가 거부될 수 있습니다.

수명 주기 구성

앞에서 리소스 그룹은 그 안에 있는 리소스의 수명 주기 역할을 한다고 설명했습니다. 리소스 그룹을 삭제하는 경우 그룹의 모든 리소스가 삭제됩니다. 비-프로덕션 환경처럼 리소스를 사용한 후 폐기하는 영역에서는 이 점을 유용하게 활용할 수 있습니다. 두어 달 정도만 진행되는 것으로 알고 있는 프로젝트에 서버 10개를 배포하는 경우 모두 단일 리소스 그룹에 배치할 수 있습니다. 10개 이상의 리소스 그룹보다는 하나의 리소스 그룹을 정리하기가 훨씬 더 쉽습니다.

청구 구성

마지막으로, 리소스를 동일한 리소스 그룹에 배치하면 청구 보고서에 사용하도록 그룹화할 수 있습니다. Azure 환경에서 비용이 어떻게 분산되는지 알아보려면 비용을 리소스 그룹별로 그룹화하여 데이터를 필터링 및 정렬하면 비용이 어디에 할당되는지 보다 정확하게 이해할 수 있습니다.

요약

결론을 말하자면, 리소스 그룹에 리소스를 유연하게 구성할 수 있습니다. 어떻게 하면 Azure 환경에서 리소스 그룹을 일관적인 방법으로 사용할 수 있는지 생각해 보세요.