개요
Azure에서 사용되지 않거나 고아 상태인 리소스를 관리하면 클라우드 지출과 운영 효율성에 큰 영향을 미칠 수 있습니다. 「Azure Resource Cleanup」 도구는 클라우드 관리자가 사용되지 않거나 고아 상태인 Azure 리소스를 식별하고 삭제하도록 돕기 위해 설계된 포괄적인 PowerShell 스크립트로, 비용 최적화와 리소스 관리 개선을 보장합니다.
이 스크립트는 기본적으로 안전하고 비파괴적인 보고 모드로 동작하므로 관리자는 정리 작업을 시작하기 전에 고아 상태인 리소스를 검토할 수 있습니다.
GitHub에서 프로젝트에 액세스할 수 있습니다. AzureOpsScripts – Resource Cleanup.
목차
주요 기능
Azure Resource Cleanup 스크립트는 다음과 같은 기능을 제공합니다.
- 고아 상태인 NIC: VM 또는 엔드포인트에 연결되지 않은 네트워크 인터페이스를 식별합니다.
- 오래된 Azure 디스크 스냅샷: 보존 기간을 초과한 스냅샷을 감지합니다.
- 스토리지 계정 Blob 스냅샷: 정의된 보존 기간보다 오래된 Blob 스냅샷에 플래그를 지정합니다.
- 파일 공유 스냅샷: 보존 한도를 초과한 파일 공유 스냅샷을 식별합니다.
- 고아 상태인 관리 디스크: VM에 연결되지 않은 디스크를 찾습니다.
- 고아 상태인 공용 IP: 사용되지 않는 공용 IP 주소를 찾습니다.
- 사용되지 않는 네트워크 보안 그룹: 리소스와 연결되지 않은 NSG를 식별합니다.
- 사용되지 않는 가용성 집합: 더 이상 사용되지 않는 가용성 집합을 감지합니다.
- 빈 리소스 그룹: 활성 리소스가 없는 리소스 그룹에 플래그를 지정합니다.
- 사용되지 않는 가상 네트워크: 사용되지 않을 가능성이 있는 가상 네트워크를 강조 표시합니다(강조 표시만 하며 스크립트가 삭제하지는 않습니다).
- 예약되었지만 사용되지 않는 IP 주소: 예약되었지만 적극적으로 할당되지 않은 IP 주소를 식별합니다.
요구 사항
Azure Resource Cleanup 스크립트를 사용하려면 다음 사전 요구 사항이 충족되는지 확인하세요.
- PowerShell 버전: 5.1 이상
- Az PowerShell 모듈: 다음 명령을 사용하여 설치합니다.
Install-Module -Name Az - Azure 계정 권한: 리소스를 보고 삭제할 수 있는 적절한 권한이 있는지 확인합니다.
사용법
보고 모드
보고 모드로 스크립트를 실행하여 고아 상태인 리소스에 대한 자세한 보고서를 생성합니다.
.\Azure-Resource-Cleanup.ps1

정리 모드
식별된 리소스를 삭제하려면 정리 모드를 사용하세요.
.\Azure-Resource-Cleanup.ps1 -DeleteResources
스냅샷 보존 기간 사용자 지정
스냅샷 보존 일수를 지정하여 정리를 위해 오래된 스냅샷을 식별합니다.
.\Azure-Resource-Cleanup.ps1 -SnapshotRetentionDays 7 -DeleteResources

스토리지 스냅샷 검사 제외
대규모 환경에서는 스토리지 계정 Blob 및 파일 공유 스냅샷 검사를 건너뜁니다.
.\Azure-Resource-Cleanup.ps1 -IncludeStorageSnapshots:$false
중요 참고 사항
허용된 가상 네트워크에서 실행
스크립트가 허용된 가상 네트워크 내에서 실행되는지 확인하세요. 네트워크 제한으로 인해 일부 스토리지 계정은 컨테이너나 파일 스냅샷에 대한 액세스를 금지할 수 있습니다. 스토리지 계정이 삭제 작업을 지원하지 않는 경우 이러한 리소스를 정리하려고 할 때 오류가 발생할 수 있습니다.
개발/테스트 환경에서 테스트
프로덕션에서 사용하기 전에 개발 또는 테스트 환경에서 스크립트를 테스트하는 것이 좋습니다. 이를 통해 스크립트 동작을 검토하고, 잠재적인 문제를 식별하고, 정리 대상으로 플래그가 지정된 리소스를 확인할 수 있습니다.
보고 전용 모드 사용
프로덕션 환경에서는 항상 보고서 전용 모드(-DeleteResources 매개변수 없이)로 스크립트 실행을 시작하세요. 이를 통해 고아 상태인 리소스에 대한 자세한 보고서를 얻을 수 있으며, 정리 작업을 시작하기 전에 플래그가 지정된 항목을 검토하고 검증할 수 있습니다.
매개변수
스크립트는 여러 사용자 지정 가능한 매개변수를 지원합니다.
| 매개변수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
SnapshotRetentionDays | Integer | 3 | 스냅샷 보존 기간(일). 이보다 오래된 스냅샷은 정리 대상으로 플래그가 지정됩니다. |
DeleteResources | Switch | $false | 식별된 리소스의 삭제를 활성화합니다. 기본적으로 스크립트는 보고만 수행합니다. |
IncludeStorageSnapshots | Switch | $true | Blob 및 파일 공유 스냅샷 검사를 포함합니다. $false로 설정하면 이러한 검사가 제외됩니다. |
보고서 출력
스크립트는 타임스탬프가 있는 폴더에 자세한 보고서를 생성합니다. 여기에는 다음이 포함됩니다.
orphaned_nics.csvold_managed_snapshots.csvold_blob_snapshots.csvold_fileshare_snapshots.csvorphaned_disks.csvorphaned_public_ips.csvorphaned_nsgs.csvunused_availability_sets.csvempty_resource_groups.csvunused_vnets.csvsubnet_ip_usage.csvcleanup_log.txt(수행된 작업의 포괄적인 로그)
모범 사례
- 보고 모드부터 시작: 플래그가 지정된 리소스를 검토하려면 항상
-DeleteResources매개변수 없이 스크립트를 실행하세요. - 보고서 검토: 정리 작업을 시작하기 전에 생성된 CSV 파일을 신중하게 분석하세요.
- 보존 기간 설정: 조직 정책에 따라 스냅샷 보존 기간을 사용자 지정합니다.
- 비프로덕션 환경에서 테스트: 프로덕션에서 사용하기 전에 개발/테스트 환경에서 스크립트를 실행하여 동작을 검증합니다.
- 허용된 가상 네트워크에서 실행: 스토리지 계정 정리 시 네트워크 관련 오류를 방지하기 위해 스크립트가 허용된 vNet 내에서 실행되는지 확인하세요.
예제 워크플로
다음 워크플로에 따라 Azure 리소스를 안전하게 정리하세요.
- 보고 모드로 스크립트를 실행합니다.
.\Azure-Resource-Cleanup.ps1 - 생성된 보고서를 검토하여 플래그가 지정된 리소스를 확인합니다.
- 정리 모드로 자신 있게 진행합니다.
.\Azure-Resource-Cleanup.ps1 -DeleteResources