Storage에 대한 FinOps 모범 사례

이 문서에서는 스토리지 서비스에 대해 입증된 FinOps 사례 컬렉션을 간략하게 설명합니다. 비용을 최적화하고, 효율성을 개선하고, ARG(Azure Resource Graph) 쿼리를 사용하여 스토리지 리소스에 대한 인사이트를 얻기 위한 전략을 제공합니다. 이러한 사례를 따르면 스토리지 서비스가 비용 효율적이고 조직의 재무 목표에 부합하도록 할 수 있습니다.


백업

다음 섹션에서는 백업 서비스에 대한 ARG 쿼리를 제공합니다. 이러한 쿼리는 백업 리소스에 대한 인사이트를 얻고 적절한 설정으로 구성되었는지 확인하는 데 도움이 됩니다. 백업 항목을 분석하고 유휴 백업을 식별하여 비용 효율성을 위해 백업 서비스를 최적화할 수 있습니다.

쿼리: 사용되지 않는 백업

이 ARG 쿼리는 Azure Recovery Services 볼트 내의 백업 항목을 분석하고 90일 이상 백업되지 않은 항목을 식별합니다.

범주

최적화

쿼리

recoveryservicesresources
| where type =~ 'microsoft.recoveryservices/vaults/backupfabrics/protectioncontainers/protecteditems'
| extend vaultId = tostring(properties.vaultId)
| extend resourceId = tostring(properties.sourceResourceId)
| extend idleBackup= datetime_diff('day', now(), todatetime(properties.lastBackupTime)) > 90
| extend  resourceType=tostring(properties.workloadType)
| extend protectionState=tostring(properties.protectionState)
| extend lastBackupTime=tostring(properties.lastBackupTime)
| extend resourceGroup=strcat('/subscriptions/',subscriptionId,'/resourceGroups/',resourceGroup)
| extend lastBackupDate=todatetime(properties.lastBackupTime)
| where idleBackup != 0
| project resourceId,vaultId,idleBackup,lastBackupDate,resourceType,protectionState,lastBackupTime,location,resourceGroup,subscriptionId

쿼리: 복구 서비스 저장소 나열

이 ARG(Azure Resource Graph) 쿼리는 Azure Recovery Services 볼트의 세부 정보를 검색합니다. 이 쿼리에는 SKU 계층, 중복성 설정 및 기타 관련 메타데이터에 대한 정보도 포함됩니다.

범주

최적화

쿼리

resources
| where type == 'microsoft.recoveryservices/vaults'
| where resourceGroup in ({ResourceGroup})
| extend skuTier = tostring(sku['tier'])
| extend skuName = tostring(sku['name'])
| extend resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| extend redundancySettings = tostring(properties.redundancySettings['standardTierStorageRedundancy'])
| order by id asc
| project id, redundancySettings, resourceGroup, location, subscriptionId, skuTier, skuName

디스크

Azure 관리 디스크는 Azure 관리되고 가상 머신에서 사용되는 블록 수준 스토리지 볼륨입니다. 관리 디스크는 VM 워크로드에 대한 고가용성, 확장성 및 보안을 제공합니다.

관련 리소스:

연결되지 않은 디스크 제거

권장 사항: 불필요한 스토리지 비용을 방지하기 위해 연결되지 않은 관리 디스크를 제거하거나 다운그레이드합니다.

연결되지 않은 디스크에 대한 정보

VM이 삭제되면 연결된 관리 디스크가 자동으로 삭제되지 않을 수 있습니다. 연결되지 않은(분리된) 디스크는 디스크 유형 및 크기에 따라 스토리지 비용이 계속 발생합니다. 쿼리는 활성 SAS 전송 모드에 있는 디스크와 Azure Site Recovery 복제본 디스크 또는 시드 디스크를 제외합니다. 이러한 디스크는 일시적으로 연결 해제된 상태일 것으로 예상되기 때문입니다.

메모

FinOps 허브는 연결되지 않은 디스크를 자동으로 식별할 수 있습니다. 자세히알아보세요.

연결되지 않은 디스크 식별

다음 ARG 쿼리를 사용하여 연결되지 않은 관리 디스크를 식별합니다.

resources
| where type =~ 'microsoft.compute/disks' and managedBy == ""
| extend diskState = tostring(properties.diskState)
| where managedBy == ""
    and diskState != 'ActiveSAS'
    and tags !contains 'ASR-ReplicaDisk'
    and tags !contains 'asrseeddisk'
| extend DiskId=id, DiskIDfull=id, DiskName=name, SKUName=sku.name, SKUTier=sku.tier, DiskSizeGB=tostring(properties.diskSizeGB), Location=location, TimeCreated=tostring(properties.timeCreated), SubId=subscriptionId
| order by DiskId asc
| project DiskId, DiskIDfull, DiskName, DiskSizeGB, SKUName, SKUTier, resourceGroup, Location, TimeCreated, subscriptionId

쿼리: 30일보다 오래된 디스크 스냅샷

이 ARG 쿼리는 30일보다 오래된 디스크 스냅샷을 식별합니다.

범주

최적화

쿼리

resources
| where type == 'microsoft.compute/snapshots'
| extend TimeCreated = properties.timeCreated
| extend resourceGroup = strcat("/subscriptions/",subscriptionId,"/resourceGroups/",resourceGroup)
| where TimeCreated < ago(30d)
| order by id asc 
| project id, resourceGroup, location, TimeCreated, subscriptionId

프리미엄 스냅샷 다운그레이드

권장 사항: Premium 대신 관리 디스크 스냅샷에 표준 스토리지를 사용하여 스토리지 비용을 절감합니다.

프리미엄 스냅샷 정보

Premium Storage에 저장된 관리 디스크 스냅샷은 표준 스토리지보다 비용이 더 많이 듭니다. 대부분의 경우 스냅샷은 활성 I/O가 아닌 백업 및 복구에 사용되므로 Premium Storage의 성능이 필요하지 않습니다. 표준 스토리지로 다운그레이드하면 기능에 영향을 주지 않고 스냅샷 비용을 크게 줄일 수 있습니다.

메모

FinOps 허브는 Premium Storage를 사용하여 스냅샷을 자동으로 식별할 수 있습니다. 자세히알아보세요.

프리미엄 스냅샷 식별

다음 ARG 쿼리를 사용하여 Premium Storage를 사용하여 관리 디스크 스냅샷을 식별합니다.

resources
| where type == 'microsoft.compute/snapshots'
| extend
    StorageSku = tostring(sku.tier),
    resourceGroup = strcat('/subscriptions/',subscriptionId,'/resourceGroups/',resourceGroup),
    diskSize = tostring(properties.diskSizeGB)
| where StorageSku == "Premium"
| project id, name, StorageSku, diskSize, location, resourceGroup, subscriptionId

스토리지 계정

Azure Storage 계정은 데이터에 대한 Azure 고유한 네임스페이스를 제공합니다. 스토리지 계정은 여러 세대에 걸쳐 발전해 왔으며 레거시 계정 종류를 사용하면 최신 기능 및 최적화에 대한 액세스를 제한할 수 있습니다.

관련 리소스:

레거시 스토리지 계정 업그레이드

권장 사항: 가격 책정 계층, 기능 및 지속적인 지원을 위해 GPv1 또는 BlobStorage 종류를 사용하여 스토리지 계정을 GPv2로 업그레이드합니다.

레거시 스토리지 계정 정보

GPv1 또는 BlobStorage 종류를 사용하는 스토리지 계정은 블록 Blob에 대한 액세스 계층, 수명 주기 관리 정책 및 불변성 정책과 같은 최신 Azure Storage 기능을 지원하지 않습니다. GPv2 스토리지 계정은 경쟁력 있거나 저렴한 가격으로 동일한 기능과 추가 기능을 제공합니다. Microsoft 모든 GPv1 및 BlobStorage 계정을 GPv2로 업그레이드하는 것이 좋습니다.

메모

FinOps 허브는 레거시 스토리지 계정을 자동으로 식별할 수 있습니다. 자세히알아보세요.

레거시 스토리지 계정 식별

다음 ARG 쿼리를 사용하여 GPv1 또는 BlobStorage 종류를 계속 사용하는 스토리지 계정을 식별합니다.

resources
| where type =~ 'Microsoft.Storage/StorageAccounts'
    and kind !='StorageV2'
    and kind !='FileStorage'
| extend
    StorageAccountName = name,
    SAKind = kind,
    AccessTier = tostring(properties.accessTier),
    SKUName = sku.name,
    SKUTier = sku.tier,
    Location = location
| order by id asc
| project
    id,
    StorageAccountName,
    SKUName,
    SKUTier,
    SAKind,
    AccessTier,
    resourceGroup,
    Location,
    subscriptionId

피드백 제공

빠른 검토를 통해 어떻게 하고 있는지 알려주세요. 이러한 검토를 사용하여 FinOps 도구 및 리소스를 개선하고 확장합니다.

특정 항목을 찾고 있는 경우 기존 항목에 투표하거나 새 아이디어를 만듭니다. 다른 사용자와 아이디어를 공유하여 더 많은 표를 얻습니다. 우리는 가장 많은 표를 가진 아이디어에 초점을 맞추고 있습니다.


관련 리소스:

관련 솔루션: