이 문서에서는 DevOps 사례를 손상시키지 않고 가상 머신 규정 준수를 관리하는 방법을 설명합니다. Azure VM Image Builder 및 Azure Compute Gallery를 사용하여 시스템 이미지의 위험을 최소화합니다.
아키텍처
솔루션은 다음 두 프로세스로 구성됩니다.
- 골든 이미지 게시 프로세스
- VM(가상 머신) 규정 준수를 추적하는 프로세스
이 아키텍처의 Visio 파일을 다운로드합니다.
데이터 흐름
골든 이미지 게시 프로세스는 매월 실행되며 다음 단계를 포함합니다.
- 이 프로세스는 Azure Marketplace에서 기본 이미지를 캡처합니다.
- VM Image Builder는 이미지를 사용자 지정합니다.
- 이미지 문신 프로세스는 원본 및 게시 날짜와 같은 이미지 버전 정보를 추적합니다.
- 자동화된 테스트는 이미지의 유효성을 검사합니다.
- 이미지가 테스트에 실패하면 복구를 위한 사용자 지정 단계로 돌아갑니다.
- 프로세스는 최종 이미지를 게시합니다.
- Compute Gallery를 사용하면 DevOps 팀에서 이미지를 사용할 수 있습니다.
이 아키텍처의 Visio 파일을 다운로드합니다.
VM 규정 준수를 추적하는 프로세스에는 다음 단계가 포함됩니다.
- Azure Policy는 VM에 정책 정의를 할당하고 VM의 규정 준수를 평가합니다.
- Azure Policy는 VM 및 기타 Azure 리소스에 대한 규정 준수 데이터를 Azure Policy 대시보드에 게시합니다.
구성 요소
VM Image Builder는 시스템 이미지를 사용자 지정하기 위한 관리되는 서비스입니다. 이 서비스는 DevOps 팀에서 사용하는 이미지를 빌드하고 배포합니다.
Compute Gallery를 사용하면 사용자 지정 이미지를 구성하고 조직할 수 있습니다. 리포지토리에 이미지를 저장하면 이 서비스는 이미지에 대한 제어된 액세스를 제공합니다. 사용자는 조직 내부 및 외부에 있을 수 있습니다.
Azure Policy는 정책 정의를 제공합니다. 이러한 정의를 사용하여 조직의 표준을 적용하고 대규모로 규정 준수를 평가할 수 있습니다. Azure Policy 대시보드는 Azure Policy 평가 결과를 표시합니다. 이 데이터는 리소스의 준수 상태에 대한 정보를 알려줍니다.
Azure Policy의 Azure Automanage Machine Configuration 기능은 코드를 통해 구성을 동적으로 감사하거나 컴퓨터에 할당하는 방법을 제공합니다. 구성에는 일반적으로 환경 또는 운영 체제 설정이 포함됩니다.
대안
타사 도구를 사용하여 규정 준수를 관리할 수 있습니다. 그러나 이러한 유형의 도구를 사용하면 일반적으로 대상 VM에 에이전트를 설치해야 합니다. 라이선스 요금을 지불해야 할 수도 있습니다.
배포 후 VM에 소프트웨어를 설치하거나 VM을 구성하는 데 사용자 지정 스크립트 확장을 사용할 수 있습니다. 그러나 각 VM 또는 가상 머신 확장 집합에는 하나의 사용자 지정 스크립트 확장만 있을 수 있습니다. 또한 사용자 지정 스크립트 확장을 사용하는 경우 DevOps 팀이 애플리케이션을 사용자 지정하지 못하게 합니다.
시나리오 정보
각 기업에는 자체 규정 준수 규정 및 표준이 있습니다. 보안과 관련하여 회사는 저마다의 리스크 식욕을 가지고 있습니다. 보안 표준은 조직마다 지역마다 다를 수 있습니다.
온-프레미스 시스템보다 클라우드 환경을 동적으로 크기를 조정하는 데 있어 다른 표준을 따르는 것이 더 어려울 수 있습니다. 팀에서 DevOps 사례를 사용하는 경우 일반적으로 VM과 같은 Azure 리소스를 만들 수 있는 사용자에 대한 제한이 적습니다. 이 사실은 규정 준수 문제를 어렵게 만듭니다.
기업은 Azure Policy 및 역할 기반 액세스 제어 할당을 사용하여 Azure 리소스에 표준을 강제할 수 있습니다. 그러나 VM을 사용하는 경우 이러한 메커니즘은 컨트롤 플레인 또는 VM에 대한 경로에만 영향을 줍니다. VM에서 실행되는 시스템 이미지는 여전히 보안 위협을 가합니다. 일부 회사에서는 개발자가 VM에 액세스하지 못하도록 차단합니다. 이 접근 방식은 민첩성을 저해하여 DevOps 사례를 따르기 어렵게 만듭니다.
이 문서에서는 Azure에서 실행되는 VM의 규정 준수를 관리하기 위한 솔루션을 제공합니다. 규정 준수 추적 외에도 솔루션은 VM에서 실행되는 시스템 이미지의 위험을 최소화합니다. 동시에 솔루션은 DevOps 사례와 호환됩니다. 핵심 구성 요소에는 Azure VM Image Builder, Azure Compute Gallery 및 Azure Policy가 포함됩니다.
잠재적인 사용 사례
이 솔루션은 다음 작업을 완료하는 Azure 랜딩 존을 보유한 조직에 적용됩니다.
- DevOps 팀에 골든 이미지를 제공합니다. 골든 이미지는 마켓플레이스 이미지의 게시된 버전입니다.
- DevOps 팀에서 사용할 수 있도록 하기 전에 이미지를 테스트하고 유효성을 검사합니다.
- 각 DevOps 팀에서 사용하는 이미지를 추적합니다.
- 생산성을 저하하지 않고 회사 표준을 적용합니다.
- DevOps 팀이 최신 이미지 버전을 사용하는지 확인합니다.
- 유지 관리에 집약적인 애완 동물 서버 및 쉽게 교체할 수 있는 가축 서버의 규정 준수 관리.
접근 방식
다음 섹션에서는 솔루션의 접근 방식에 대한 자세한 설명을 제공합니다.
애완 동물 및 가축 식별
DevOps 팀은 애완 동물과 가축이라는 비유를 사용하여 서비스 모델을 정의합니다. VM의 규정 준수를 추적하려면 먼저 애완 동물 아니면 가축 서버인지 확인합니다.
애완 동물은 상당한 주의가 필요합니다. 분배하기가 쉽지 않기 때문입니다. 애완 동물 서버를 복구하려면 상당한 시간과 재정 자원을 투자해야 합니다. 예를 들어 SAP를 실행하는 서버는 애완 동물일 수 있습니다. 서버에서 실행되는 소프트웨어 외에 다른 고려 사항으로도 서비스 모델을 결정할 수 있습니다. 오류 허용 오차가 낮은 경우 실시간 및 근 실시간 시스템에서 프로덕션 서버는 애완 동물이 될 수 있습니다.
가축 서버는 동일한 그룹의 일부입니다. 쉽게 바꿀 수 있습니다. 예를 들어 가상 머신 확장 집합에서 실행되는 VM은 가축입니다. 집합에 충분한 VM이 있는 경우 시스템이 계속 실행되고 각 VM의 이름을 알 필요가 없습니다. 다음 조건을 충족하는 테스트 환경 서버는 가축의 또 다른 예를 제공합니다.
- 자동화된 절차를 사용하여 서버를 처음부터 만듭니다.
- 테스트 실행을 완료한 후 서버를 서비스 해제합니다.
환경에는 애완 동물 서버만 포함되거나 가축 서버만 포함될 수 있습니다. 반면, 환경에서 VM 집합은 애완 동물일 수 있으며, 동일한 환경에 있는 다른 VM 집합은 가축일 수 있습니다.
규정 준수를 관리하려면 다음을 수행합니다.
- 애완 동물 규정 준수는 가축 규정 준수보다 추적하기가 더 어려울 수 있습니다. 일반적으로 DevOps 팀만 애완 동물 환경 및 서버의 규정 준수를 추적하고 유지할 수 있습니다. 그러나 이 문서의 솔루션은 각 애완 동물의 상태에 대한 가시성을 높여 조직의 모든 사람이 규정 준수를 더 쉽게 추적할 수 있도록 합니다.
- 가축 환경의 경우 VM을 새로 고치고 처음부터 정기적으로 다시 빌드합니다. 이러한 단계는 규정 준수에 적합해야 합니다. 이 새로 고침 주기를 DevOps 팀의 정규 릴리스 주기에 맞출 수 있습니다.
이미지 제한
DevOps 팀이 Azure Marketplace VM 이미지를 사용하도록 허용하지 않습니다. Compute Gallery에서 게시하는 VM 이미지만 허용합니다. 이 제한은 VM 규정 준수를 보장하는 데 중요합니다. Azure Policy에서 사용자 지정 정책을 사용하여 이 제한을 적용할 수 있습니다. 샘플은 이미지 게시자 허용을 참조하세요.
이 솔루션의 일부로 VM Image Builder는 Azure Marketplace 이미지를 사용해야 합니다. Azure Marketplace에서 사용할 수 있는 최신 이미지를 필수적으로 사용해야 합니다. 해당 이미지 상단에 사용자 지정을 적용합니다. Azure Marketplace 이미지는 자주 새로 고쳐지고 각 이미지에는 미리 설정된 특정 구성이 있으므로 기본적으로 이미지가 안전합니다.
이미지 사용자 지정
골든 이미지는 Compute Gallery에 게시된 마켓플레이스 이미지 버전입니다. 골든 이미지는 DevOps 팀에서 사용할 수 있습니다. 이미지를 게시하기 전에 사용자 지정이 수행됩니다. 사용자 지정 작업은 각 엔터프라이즈에 고유합니다. 일반적인 활동은 다음과 같습니다.
- 운영 체제 강화.
- 타사 소프트웨어용 사용자 지정 에이전트 배포.
- 엔터프라이즈 CA(인증 기관) 루트 인증서 설치.
VM Image Builder를 사용하여 운영 체제 설정을 조정하고 사용자 지정 스크립트 및 명령을 실행하여 이미지를 사용자 지정할 수 있습니다. VM Image Builder는 Windows 및 Linux 이미지를 지원합니다. 이미지 사용자 지정에 대한 자세한 내용은 Azure Virtual Machines에 대한 Azure Policy 규정 준수 컨트롤을 참조하세요.
이미지 문신 추적
이미지 문신은 VM에서 사용하는 모든 이미지 버전 관리 정보를 추적하는 프로세스입니다. 이 정보는 문제 해결 과정에서 매우 중요하며 다음 사항을 포함할 수 있습니다.
- 게시자의 이름 및 버전과 같은 이미지의 원본.
- 현재 위치 업그레이드가 있는 경우 필요한 운영 체제 버전 문자열.
- 사용자 지정 이미지의 버전.
- 게시 날짜.
추적하는 정보의 양과 유형은 조직의 규정 준수 수준에 따라 달라집니다.
Windows VM에서 이미지 문신의 경우 사용자 지정 레지스트리를 설정합니다. 이 레지스트리 경로에 필요한 모든 정보를 키-값 쌍으로 추가합니다. Linux VM에서 환경 변수 또는 파일에 이미지 문신 데이터를 입력합니다. 파일이 개발자의 작업 또는 애플리케이션과 충돌하지 않는 /etc/
폴더에 배치합니다. Azure Policy를 사용하여 문신 데이터를 추적하거나 보고하려면 각 데이터를 고유한 키-값 쌍으로 저장합니다. Marketplace 이미지의 버전을 확인하는 방법에 대한 자세한 내용은 Marketplace 이미지 버전을 찾는 방법을 참조하세요.
자동화된 테스트를 사용하여 골든 이미지 유효성 검사
일반적으로 Azure Marketplace 이미지의 최신 업데이트 및 변경 내용을 최신 상태로 유지하려면 매월 골든 이미지를 새로 고쳐야 합니다. 이를 위해 반복적으로 테스트 절차를 사용합니다. 이미지 만들기 프로세스의 일부로 테스트에 Azure 파이프라인 또는 기타 자동화된 워크플로를 사용합니다. 매월 초 이전에 테스트를 실행하기 위한 새 VM을 배포하도록 파이프라인을 설정합니다. 테스트는 소비를 위해 게시하기 전 연결된 이미지를 확인해야 합니다. 테스트 자동화 솔루션을 사용하거나 VM에서 명령 또는 일괄 처리를 실행하여 테스트를 자동화합니다.
일반적인 테스트 시나리오는 다음과 같습니다.
- VM 부팅 시간의 유효성을 검사합니다.
- 운영 체제 구성 설정 또는 에이전트 배포와 같은 이미지의 사용자 지정을 확인합니다.
실패한 테스트는 프로세스를 중단해야 합니다. 문제의 근본 원인을 해결한 후 테스트를 반복합니다. 테스트가 문제없이 실행되는 경우 테스트 프로세스를 자동화하면 에버그린 상태를 유지 관리하는 활동이 줄어듭니다.
골든 이미지 게시
Compute Gallery에 최종 이미지를 관리되는 이미지로 게시하거나 DevOps 팀이 사용할 수 있는 VHD(가상 하드 디스크)로 게시합니다. 이전 이미지를 오래된 이미지로 표시합니다. Compute Gallery에서 이미지 버전의 수명 종료 날짜를 설정하지 않은 경우 가장 오래된 이미지를 중단하는 것이 좋습니다. 이 결정은 회사의 정책에 따라 달라집니다.
Compute Gallery를 사용할 때 적용되는 제한에 대한 자세한 내용은 Azure Compute Gallery에서 이미지 저장 및 공유를 참조하세요.
또 다른 좋은 방법은 여러 지역에 최신 이미지를 게시하는 것입니다. Compute Gallery를 사용하면 여러 Azure 지역에서 이미지의 수명 주기 및 복제를 관리할 수 있습니다.
Compute Gallery에 대한 자세한 내용은 Azure Compute Gallery에서 이미지 저장 및 공유를 참조하세요.
골든 이미지 새로 고침
애플리케이션에 이미지를 사용하는 경우 최근 규정 준수의 변경 사항으로 기본 운영 체제 이미지를 업데이트하기 어려울 수 있습니다. 엄격한 비즈니스 요구 사항은 기본 VM을 새로 고치는 프로세스를 복잡하게 만들 수 있습니다. VM이 비즈니스에 중요한 경우에도 새로 고침은 복잡합니다.
가축 서버는 분배가 가능하기 때문에 DevOps 팀과 협력하여 계획한 유지 관리 기간 동안 이러한 서버를 일반적인 작업으로 새로 고칠 수 있습니다.
애완 동물 서버를 새로 고치는 것이 더 어렵습니다. 이미지를 중단하면 애플리케이션이 위험에 처할 수 있습니다. 스케일 아웃 시나리오에서 Azure는 해당 이미지를 찾을 수 없으므로 오류가 발생합니다.
애완 동물 서버를 새로 고치는 경우 다음 지침을 고려합니다.
모범 사례는 Azure Well-Architected Framework의 안정성 기반 개요를 참조하세요.
프로세스를 간소화하려면 다음 문서에서 설명하는 원칙을 참조하세요.
각 애완 동물 서버를 애완 동물로 태그를 지정합니다. 새로 고침 중에 이 태그를 고려하도록 Azure Policy에서 정책을 구성합니다.
가시성 향상
일반적으로 Azure Policy를 사용하여 컨트롤 플레인의 규정 준수 작업을 관리해야 합니다. 다음을 위해 Azure Policy를 사용할 수도 있습니다.
- VM 규정 준수 추적.
- Azure 에이전트 설치.
- 진단 로그 캡처.
- VM 규정 준수의 가시성 향상.
Azure Policy의 Azure Automanage Machine Configuration 기능을 사용하여 이미지 사용자 지정 중에 변경한 구성을 감사합니다. 드리프트가 발생하면 Azure Policy 대시보드는 영향을 받는 VM을 비준수로 나열합니다. Azure Policy는 이미지 문신 정보를 사용하여 오래된 이미지 또는 운영 체제를 언제 사용하는지 추적할 수 있습니다.
각 애플리케이션에 대한 애완 동물 서버를 감사합니다. 감사 효과와 함께 Azure Policy를 사용하면 이러한 서버의 가시성을 향상시킬 수 있습니다. 회사의 리스크 식욕 및 내부 위험 관리 프로세스에 따라 감사 프로세스를 조정합니다.
각 DevOps 팀은 Azure Policy 대시보드에서 애플리케이션의 규정 준수 수준을 추적하고 적절한 수정 작업을 수행할 수 있습니다. 이러한 정책을 관리 그룹 또는 구독에 할당하는 경우 할당 설명에 회사 차원의 Wiki로 이어지는 URL을 제공합니다. aka.ms/policy-21
와 같은 짧은 URL을 사용할 수도 있습니다. Wiki에서 DevOps 팀이 VM에서 규정을 준수하도록 하기 위해 수행해야 하는 단계를 나열합니다.
IT 위험 관리자 및 보안 책임자는 Azure Policy 대시보드를 사용하여 회사의 리스크 식욕에 따라 위험을 관리할 수도 있습니다.
수정 옵션과 함께 Azure Policy의 Azure Automanage Machine 구성 기능을 사용하여 수정 작업을 자동으로 적용할 수 있습니다. 그러나 VM을 자주 조사하거나 중요 비즈니스용 애플리케이션에 사용하는 VM을 변경하면 성능이 저하됩니다. 프로덕션 워크로드에 대한 수정 작업을 신중하게 계획합니다. DevOps 팀에게 모든 환경에서 애플리케이션 규정 준수에 대한 소유권을 부여합니다. 이 접근 방식은 일반적으로 장기적인 Azure 구성 요소인 애완 동물 서버 및 환경에 필수적입니다.
고려 사항
이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.
확장성
Compute Gallery에서 각 이미지를 저장하는 복제본 수를 구성할 수 있습니다. 복제본 수가 많을수록 여러 VM을 동시에 프로비전할 때 제한 위험이 최소화됩니다. 적절한 수의 복제본 크기 조정 및 구성에 대한 일반 지침은 Azure Compute Gallery에 대한 크기 조정을 참조하세요.
복원력
이 솔루션은 지역 수준에서 자동으로 복원되는 관리되는 구성 요소를 사용합니다. 복원력 있는 솔루션 설계에 대한 일반적인 지침은 복원력 있는 Azure 애플리케이션 디자인을 참조하세요.
비용 최적화
비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.
Ansible 또는 Terraform과 같은 타사 서비스를 사용하지 않는 한 이 방법은 거의 무료입니다. 스토리지 및 송신 비용이 적용될 수 있습니다. 기타 요금에 포함될 수 있는 구성 요소는 다음과 같습니다.
Azure Policy 및 Azure Automanage Machine 구성 은 Azure 리소스에 대해 무료로 제공됩니다. 회사에서 하이브리드 방법을 사용하는 경우 Azure Arc 리소스에 대한 추가 요금이 부과됩니다.
공개 프리뷰 기간 동안 VM Image Builder는 vCPU 1개와 RAM 3.5GB의 단일 컴퓨팅 인스턴스 유형을 사용합니다. 데이터 스토리지 및 전송에 대한 요금이 적용될 수 있습니다.
Compute Gallery는 요금이 부과되지 않습니다(단, 다음 사항 제외).
- 복제본을 저장하는 비용입니다.
- 이미지 복제에 대한 네트워크 송신 요금입니다.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
보안 주체 작성자:
- Yunus Emre Alpozen | 프로그램 설계자
비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인하세요.
다음 단계
- Azure 랜딩 존
- Azure Policy를 사용하여 리소스 제어 및 감사
- Azure VM Image Builder
- Azure Compute Gallery
- Azure Policy 및 정책 대시보드
- Azure Automanage Machine 구성