다음을 통해 공유


Azure Blob Storage 수명 주기 관리 정책 구조

수명 주기 관리 정책을 사용하여 Blob을 사용 패턴에 따라 비용 효율적인 액세스 계층으로 전환할 수 있습니다. 수명 주기가 끝나면 Blob을 완전히 삭제할 수도 있습니다. 정책은 현재 버전, 이전 버전 및 스냅샷에서 작동할 수 있지만 $logs 또는$web 컨테이너와 같은 시스템 컨테이너의 Blob에서 정책이 작동하지 않습니다. 일반적인 내용은 Azure Blob Storage 수명 주기 관리 개요를 참조하세요.

이 문서에서는 수명 주기 관리 정책의 요소를 설명합니다. 정책 예제는 다음 문서를 참조하세요.

팁 (조언)

수명 주기 관리를 사용하면 단일 계정에 대한 비용을 최적화할 수 있지만 Azure Storage Actions 를 사용하여 여러 계정에서 대규모로 여러 데이터 작업을 수행할 수 있습니다.

규칙

수명 주기 관리 정책은 JSON 문서의 규칙 컬렉션입니다. 다음 샘플 JSON에서는 전체 규칙 정의를 보여줍니다.

{
  "rules": [
    {
      "name": "rule1",
      "enabled": true,
      "type": "Lifecycle",
      "definition": {...}
    },
    {
      "name": "rule2",
      "type": "Lifecycle",
      "definition": {...}
    }
  ]
}
매개 변수 이름 매개 변수 형식 비고
규칙 규칙 개체의 배열 정책에 하나 이상의 규칙이 필요합니다. 정책에 최대 100개의 규칙을 정의할 수 있습니다.

정책 내 각 규칙에는 다음 표에서 설명한 몇 가지 매개 변수가 있습니다.

매개 변수 이름 유형 비고 필수
이름 문자열 규칙 이름은 최대 256자의 영숫자를 포함할 수 있습니다. 규칙 이름은 대/소문자를 구분합니다. 정책 내에서 고유해야 합니다.
사용하도록 설정된 불리언 (Boolean) 규칙을 일시적으로 사용하지 않을 수 있는 선택적 부울입니다. 기본값은 true입니다. 아니오
유형 열거형 값 현재 유효한 형식은 Lifecycle입니다.
정의 수명 주기 규칙을 정의하는 개체 각 정의는 필터 집합과 작업 집합으로 구성됩니다.

필터

필터는 스토리지 계정 내의 Blob 하위 집합으로 작업을 제한합니다. 필터를 사용하여 포함할 Blob을 지정할 수 있습니다. 필터는 제외할 Blob을 지정할 방법을 제공하지 않습니다. 둘 이상의 필터가 정의되면 논리 AND가 모든 필터에 적용됩니다. 다음 표에서는 각 매개 변수에 대해 설명합니다.

필터 이름 유형 설명 필수
blobTypes 미리 정의된 열거형 값의 배열 Blob의 형식( blockblob 또는 appendBlob)
prefixMatch 문자열 배열 이러한 문자열은 일치시킬 접두사입니다. 아니오
blobIndexMatch 사전 값의 배열 이러한 값은 일치시킬 Blob 인덱스 태그 키 및 값 조건으로 구성됩니다. 아니오

접두사 일치 필터

prefixMatch 필터를 적용하는 경우 각 규칙은 최대 10개의 대/소문자 구분 접두사를 정의할 수 있습니다. 접두사 문자열은 컨테이너 이름으로 시작해야 합니다. 예를 들어 경로 https://myaccount.blob.core.windows.net/sample-container/blob1/...아래의 모든 Blob을 일치하려면 prefixMatch 를 .로 sample-container/blob1지정합니다.

이 필터는 sample-container에서 이름이 blob1로 시작하는 모든 blob을 일치시킵니다. 접두사 일치를 정의하지 않으면 스토리지 계정 내의 모든 Blob에 규칙이 적용됩니다. 접두사 문자열은 와일드카드 일치를 지원하지 않습니다. *?와 같은 문자는 문자열 리터럴로 처리됩니다.

Blob 인덱스 일치 필터

BlobIndexMatch 필터를 적용하는 경우 각 규칙은 최대 10개의 Blob 인덱스 태그 조건을 정의할 수 있습니다. 예를 들어 Project = Contoso 아래 https://myaccount.blob.core.windows.net/과(와) 일치하는 모든 Blob을 찾으려면 blobIndexMatch 필터를 사용하십시오{"name": "Project","op": "==","value": "Contoso"}. BlobIndexMatch 필터에 대한 값을 정의하지 않으면 규칙이 스토리지 계정 내의 모든 Blob에 적용됩니다.

활동

각 규칙에 대해 하나 이상의 작업을 정의해야 합니다. 실행 조건이 충족되면 필터링된 Blob에 작업이 적용됩니다. 실행 조건에 대한 자세한 내용은 이 문서의 작업 실행 조건 섹션을 참조하세요. 다음 표에서는 정책 정의에서 사용할 수 있는 각 작업에 대해 설명합니다.

조치 설명
TierToCool Blob을 쿨 액세스 계층으로 설정합니다.

추가 블롭, 페이지 블롭 또는 프리미엄 블록 블롭 저장소 계정의 블롭에서는 지원되지 않습니다.
TierToCold Blob을 콜드 액세스 계층에 설정합니다.

추가 블롭, 페이지 블롭 또는 프리미엄 블록 블롭 저장소 계정의 블롭에서는 지원되지 않습니다.
TierToArchive 보관 액세스 계층에 Blob을 설정합니다.

Blob을 다시 하이드레이션해도 Blob의 마지막으로 수정된 또는 마지막 액세스 시간 속성이 업데이트되지 않습니다. 따라서 이 작업은 리하이딩된 Blob을 보관 계층으로 다시 이동할 수 있습니다. 이러한 상황이 발생하지 않도록 하려면 이 작업에 조건을 추가 daysAfterLastTierChangeGreaterThan 합니다.

이 작업은 추가 블롭, 페이지 블롭 또는 프리미엄 블록 Blob 저장소 계정에 있는 블롭에서 지원되지 않습니다. 또한 암호화 범위를 사용하는 Blob이나 영역 중복 스토리지(ZRS), 지역 영역 중복 스토리지(GZRS) / 읽기 액세스 지역 영역 중복 스토리지(RA-GZRS)에 대해 구성된 계정의 Blob에서는 지원되지 않습니다.
쿨에서 핫으로 자동 계층화 활성화 Blob이 쿨 계층으로 설정된 경우 이 작업은 Blob에 액세스할 때 해당 Blob을 핫 계층으로 자동으로 이동합니다.

이 작업은 daysAfterLastAccessTimeGreaterThan 실행 조건과 함께 사용할 때만 사용할 수 있습니다.

이 작업은 규칙에서 이 작업을 사용하도록 설정하기 전에 쿨 계층으로 설정된 Blob에는 영향을 주지 않습니다.

이 작업은 Blob을 30일마다 쿨에서 핫으로 한 번만 이동합니다. 이 보호 조치는 계정에 청구되는 여러 초기 삭제 처벌로부터 보호하기 위해 시행됩니다.

이전 버전 또는 스냅샷에서는 지원되지 않습니다.
삭제하다 Blob을 삭제합니다.

변경할 수 없는 컨테이너에 있는 페이지 Blob 또는 Blob은 지원되지 않습니다.

동일한 Blob에서 둘 이상의 작업을 정의하는 경우 수명 주기 관리는 Blob에 가장 저렴한 작업을 적용합니다. 예를 들어 삭제 작업은 tierToArchive 작업보다 저렴하고 tierToArchive 작업은 tierToCool 작업보다 저렴합니다.

계층 구조 네임스페이스가 있는 계정에서 작업 삭제

계층 구조 네임스페이스를 사용하도록 설정된 계정에 적용하면 삭제 작업은 빈 디렉터리를 제거합니다. 디렉터리가 비어 있지 않으면 delete 작업에서 처음 수명 주기 정책 실행 주기 내에 정책 조건을 충족하는 개체를 제거합니다. 해당 작업으로 인해 정책 조건도 충족하는 빈 디렉터리가 생성되면 해당 디렉터리는 다음 실행 주기 내에 제거됩니다.

버전 및 스냅샷이 있는 Blob에서 작업 삭제

수명 주기 관리 정책은 해당 Blob과 연결된 이전 버전 또는 스냅샷이 삭제될 때까지 Blob의 현재 버전을 삭제하지 않습니다. 스토리지 계정의 Blob에 이전 버전 또는 스냅샷이 있는 경우, 삭제 작업을 정책의 일부로 지정할 때 이전 버전과 스냅샷을 포함해야 합니다.

작업 실행 조건

모든 실행 조건은 시간 기반입니다. 일어난 일 수가 조건에 지정된 수를 초과하면 연결된 작업을 실행할 수 있습니다. 정책 조건은 정책을 실행하는 동안 각 개체에서 한 번만 평가됩니다. 경우에 따라 개체가 이미 실행에 의해 평가된 후 조건을 충족할 수 있습니다. 이러한 개체는 후속 실행에서 처리됩니다.

현재 버전은 마지막 수정 시간 또는 마지막 액세스 시간을 사용하고, 이전 버전은 버전 생성 시간을 사용하고, Blob 스냅샷은 스냅샷 생성 시간을 사용하여 보존 기간을 추적합니다.

다음 표에서는 각 작업 실행 조건에 대해 설명합니다.

조건 이름 유형 설명
수정 후 경과일이 보다 큼 정수 마지막으로 수정한 시간 Blob 이후의 기간(일)입니다. Blob의 현재 버전에 대한 작업에 적용됩니다.
daysAfterCreationGreaterThan 정수 생성 시간 이후의 기간(일)입니다. Blob의 현재 버전, 이전 버전의 Blob 또는 Blob 스냅샷에 대한 작업에 적용됩니다.
최종 접근 시간 이후 경과 일수 정수 마지막 액세스 시간 이후 또는 경우에 따라 정책을 사용하도록 설정된 날짜 이후의 기간(일)입니다. 자세한 내용은 아래의 액세스 시간 추적 섹션을 참조하세요. 액세스 추적을 사용하도록 설정된 경우 Blob의 현재 버전에 대한 작업에 적용됩니다.
마지막 등급 변경 후 경과 일수 초과 정수 마지막 Blob 계층 변경 시간 이후의 기간(일)입니다. 보관 계층으로 반환되기 전에 리하이드레이션된 Blob이 핫, 쿨 또는 콜드 계층에 보관되는 최소 기간(일)입니다. tierToArchive 작업에만 적용됩니다.

액세스 시간 추적

액세스 시간 추적을 사용하도록 설정하여 Blob이 마지막으로 읽거나 쓴 시점의 레코드를 유지하고 Blob 데이터의 계층화 및 보존을 관리하는 필터로 사용할 수 있습니다.

액세스 시간 추적을 사용하도록 설정하면 Blob을 읽거나 쓸 때 LastAccessTime라는 Blob 속성이 업데이트됩니다. Blob 가져오기Blob 배치 작업은 액세스 작업이며 Blob의 액세스 시간을 업데이트합니다. 그러나 Blob 속성 가져오기, Blob 메타데이터 가져오기Blob 태그 가져오기 작업은 액세스하지 않습니다. 이러한 작업은 Blob의 액세스 시간을 업데이트하지 않습니다.

daysAfterLastAccessTimeGreaterThan 실행 조건을 정책에 LastAccessTime 적용하는 경우 해당 조건이 충족되는지 여부를 확인하는 데 사용됩니다.

DaysAfterLastAccessTimeGreaterThan 실행 조건을 정책에 적용하지만 액세스 시간 추적 LastAccessTime 을 사용하도록 설정하지 않은 경우 사용되지 않습니다. 대신 수명 주기 정책을 사용하도록 설정한 날짜가 사용됩니다. 실제로 Blob의 속성이 null 값인 모든 상황에서 LastAccessTime 수명 주기 정책을 사용하도록 설정한 날짜가 사용됩니다. 추적을 사용하도록 설정한 이후 Blob에 액세스하지 않은 경우 액세스 시간 추적을 사용하도록 설정한 경우에도 이 오류가 발생할 수 있습니다.

비고

읽기 액세스 대기 시간에 대한 영향을 최소화하기 위해 최근 24시간 동안의 첫 번째 읽기만 마지막 액세스 시간을 업데이트합니다. 동일한 24시간 동안의 이후 읽기는 마지막 액세스 시간을 업데이트하지 않습니다. 읽기 간에 Blob이 수정되는 경우 마지막 액세스 시간은 두 값 중 더 최근입니다.

액세스 시간 추적을 사용하도록 설정하는 방법을 알아보려면 선택적으로 액세스 시간 추적을 사용하도록 설정합니다.

다음 단계