Blob 스냅샷

Snapshot Blob 작업은 blob의 읽기 전용 스냅숏을 만듭니다.

요청

다음과 같이 요청을 생성할 Snapshot Blob 수 있습니다. HTTPS를 사용하는 것이 좋습니다. myaccount를 스토리지 계정 이름으로 바꿉니다.

PUT 메서드 요청 URI HTTP 버전
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=snapshot HTTP/1.1

에뮬레이트된 스토리지 서비스 URI

에뮬레이트된 스토리지 서비스에 대해 요청할 때 에뮬레이터 호스트 이름 및 Azure Blob Storage 포트를 로 127.0.0.1:10000지정한 다음 에뮬레이트된 계정 이름을 지정합니다.

PUT 메서드 요청 URI HTTP 버전
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=snapshot HTTP/1.1

자세한 내용은 로컬 Azure Storage 개발에 Azurite 에뮬레이터 사용을 참조하세요.

URI 매개 변수

요청 URI에 다음 추가 매개 변수를 지정할 수 있습니다.

매개 변수 Description
timeout 선택 사항입니다. timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 Blob Storage 작업에 대한 시간 제한 설정을 참조하세요.

요청 헤더

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

요청 헤더 Description
Authorization 필수 사항입니다. 권한 부여 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
Date 또는 x-ms-date 필수 사항입니다. 요청에 대한 UTC(협정 세계시)를 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
x-ms-version 모든 권한 있는 요청에 필요합니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요.
x-ms-meta-name:value 선택 사항입니다. Blob과 연결된 사용자 정의 이름-값 쌍을 지정합니다. 이름-값 쌍을 지정하지 않으면 작업은 기본 Blob 메타데이터를 스냅샷 복사합니다. 하나 이상의 이름-값 쌍을 지정하면 지정된 메타데이터를 사용하여 스냅샷 만들어지고 메타데이터는 기본 Blob에서 복사되지 않습니다.

버전 2009-09-19부터 메타데이터 이름은 C# 식별자에 대한 명명 규칙을 준수해야 합니다. 자세한 내용은 컨테이너, Blob 및 메타데이터 이름 지정 및 참조 를 참조하세요.
If-Modified-Since 선택 사항입니다. DateTime 값입니다. 지정된 날짜/시간 이후 수정된 경우에만 Blob의 스냅샷 사용하도록 이 조건부 헤더를 지정합니다. 기본 Blob이 수정되지 않은 경우 Blob Storage는 코드 412(사전 조건 실패)상태 반환합니다.
If-Unmodified-Since 선택 사항입니다. DateTime 값입니다. 지정된 날짜/시간 이후로 수정되지 않은 경우에만 Blob의 스냅샷 사용하도록 이 조건부 헤더를 지정합니다. 기본 Blob이 수정된 경우 Blob Storage는 코드 412(사전 조건 실패)상태 반환합니다.
If-Match 선택 사항입니다. ETag 값입니다. ETag 해당 값이 지정된 값과 일치하는 경우에만 ETag Blob의 스냅샷 사용하도록 이 조건부 헤더에 대한 값을 지정합니다. 값이 일치하지 않으면 Blob Storage는 상태 코드 412(사전 조건 실패)를 반환합니다.
If-None-Match 선택 사항입니다. ETag 값입니다.

ETag 해당 값이 지정된 값과 일치하지 않는 경우에만 ETag Blob의 스냅샷 사용하도록 이 조건부 헤더에 대한 값을 지정합니다. 값이 동일한 경우 Blob Storage는 코드 412(사전 조건 실패)상태 반환합니다.
x-ms-encryption-scope 선택 사항입니다. 요청 내용을 암호화하는 데 사용할 암호화 scope 나타냅니다. 이 헤더는 버전 2019-02-02 이상에서 지원됩니다.
x-ms-lease-id:<ID> 선택 사항입니다. 이 헤더를 지정하면 다음 조건이 모두 충족되는 경우에만 작업이 수행됩니다.

- Blob의 임대가 현재 활성화되어 있습니다.
- 요청에 지정된 임대 ID가 Blob의 임대 ID와 일치합니다.

이 헤더가 지정되고 이러한 조건 중 하나가 충족되지 않으면 요청이 실패합니다. Snapshot Blob 상태 코드 412(사전 조건 실패)로 인해 작업이 실패합니다.
x-ms-client-request-id 선택 사항입니다. 로깅이 구성될 때 로그에 기록되는 1키비바이트(KiB) 문자 제한을 사용하여 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Blob Storage 모니터링을 참조하세요.

또한 이 작업은 지정된 조건이 충족되는 경우에만 조건부 헤더를 사용하여 작업을 실행할 수 있도록 지원합니다. 자세한 내용은 Blob Storage 작업에 대한 조건부 헤더 지정을 참조하세요.

요청 헤더(고객이 제공한 암호화 키)

버전 2019-02-02부터 요청에서 다음 헤더를 지정하여 고객이 제공한 키로 Blob을 암호화할 수 있습니다. 고객이 제공한 키(및 해당 헤더 집합)를 사용하여 암호화하는 것은 선택 사항입니다. Blob이 이전에 고객이 제공한 키로 암호화된 경우 이러한 헤더를 요청에 포함해야 읽기 작업을 성공적으로 완료할 수 있습니다.

요청 헤더 Description
x-ms-encryption-key 필수 사항입니다. Base64로 인코딩된 AES-256 암호화 키입니다.
x-ms-encryption-key-sha256 필수 사항입니다. 암호화 키의 Base64로 인코딩된 SHA256 해시입니다.
x-ms-encryption-algorithm: AES256 필수 사항입니다. 암호화에 사용할 알고리즘을 지정합니다. 이 헤더의 값은 AES256이어야 합니다.

요청 본문

없음

응답

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.

상태 코드

작업에 성공하면 상태 코드 201(만들어짐)이 반환됩니다. 상태 코드에 대한 자세한 내용은 상태 및 오류 코드를 참조하세요.

응답 헤더

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더도 포함될 수 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 준수합니다.

구문 Description
x-ms-snapshot: <DateTime> DateTime 스냅샷 고유하게 식별하는 값을 반환합니다. 이 헤더의 값은 스냅샷 버전을 나타내며 후속 요청에서 사용하여 스냅샷 액세스할 수 있습니다. 이 값은 불투명합니다.
ETag ETag 스냅샷 입니다. 요청 버전이 2011-08-18 이상인 경우 값은 ETag 따옴표로 표시됩니다. 스냅샷 쓸 수 없으므로 ETag 특정 스냅샷 변경되지 않습니다. 그러나 ETag 스냅샷 새 메타데이터가 요청과 함께 Snaphot Blob 제공되는 경우 기본 Blob의 와 다릅니다. 요청 ETag 으로 메타데이터가 지정되지 않은 경우 스냅샷 은 스냅샷 수행될 때 기본 Blob의 메타데이터와 동일합니다.
Last-Modified 스냅숏을 마지막으로 수정한 시간입니다. 자세한 내용은 헤더의 날짜-시간 값 표현을 참조하세요.

스냅샷 쓸 수 없으므로 특정 스냅샷 마지막으로 수정한 시간은 변경되지 않습니다. 그러나 새 메타데이터가 요청과 함께 Snaphot Blob 제공되는 경우 스냅샷 마지막으로 수정한 시간은 기본 Blob의 시간과 다릅니다. 요청으로 메타데이터가 지정되지 않은 경우 스냅샷 마지막으로 수정한 시간은 스냅샷 수행된 시점의 기본 Blob과 동일합니다.
x-ms-request-id 만들어진 요청을 고유하게 식별하며 요청 문제 해결에 사용할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조하세요.
x-ms-version 요청을 실행하는 데 사용된 Blob Storage 버전을 나타냅니다. 이 헤더는 2009-09-19 버전 이상에 대해 수행된 요청에 대해 반환됩니다.
Date 응답이 시작된 시간을 나타내는 UTC 날짜/시간 값입니다. 서비스는 이 값을 생성합니다.
x-ms-request-server-encrypted: true/false 버전 2019-02-02 이상. 요청 내용이 지정된 알고리즘을 true사용하여 성공적으로 암호화된 경우 이 헤더의 값은 로 설정됩니다. 지역화할 수 없으면 이 값은 false로 설정됩니다.
x-ms-encryption-key-sha256 버전 2019-02-02 이상. 요청이 암호화에 고객이 제공한 키를 사용한 경우 반환됩니다. 클라이언트는 제공된 키를 사용하여 요청 내용이 성공적으로 암호화되도록 할 수 있습니다.
x-ms-encryption-scope 버전 2019-02-02 이상. 요청이 암호화 scope 사용하는 경우 반환됩니다. 클라이언트는 암호화 scope 사용하여 요청 내용이 성공적으로 암호화되도록 할 수 있습니다.
x-ms-version-id: <DateTime> 버전 2019-12-12 이상. Blob을 고유하게 식별하는 불투명 DateTime 값을 반환합니다. 이 헤더의 값은 Blob의 버전을 나타내며, 이후 요청에서 Blob에 액세스하는 데 사용할 수 있습니다.
x-ms-client-request-id 요청 및 해당 응답 문제를 해결하는 데 사용할 수 있습니다. 이 헤더의 값은 요청에 있는 경우 헤더 값 x-ms-client-request-id 과 같습니다. 값은 최대 1,024자 표시 ASCII 문자입니다. 헤더가 x-ms-client-request-id 요청에 없으면 응답에 표시되지 않습니다.

응답 본문

없음

권한 부여

Azure Storage에서 데이터 액세스 작업을 호출할 때 권한 부여가 필요합니다. 아래에 설명된 대로 작업에 권한을 Snapshot Blob 부여할 수 있습니다.

Azure Storage는 Microsoft Entra ID 사용하여 Blob 데이터에 대한 요청에 권한을 부여할 수 있도록 지원합니다. Microsoft Entra ID 사용하면 Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 보안 주체에 권한을 부여할 수 있습니다. 보안 주체는 사용자, 그룹, 애플리케이션 서비스 주체 또는 Azure 관리 ID일 수 있습니다. 보안 주체는 OAuth 2.0 토큰을 반환하기 위해 Microsoft Entra ID 인증됩니다. 그런 다음 토큰을 사용하여 Blob service에 대한 요청을 승인할 수 있습니다.

Microsoft Entra ID 사용하여 권한 부여에 대한 자세한 내용은 Microsoft Entra ID 사용하여 Blob에 대한 액세스 권한 부여를 참조하세요.

사용 권한

아래에는 Microsoft Entra 사용자, 그룹 또는 서비스 주체가 작업을 호출 Snapshot Blob 하는 데 필요한 RBAC 작업과 이 작업을 포함하는 최소 권한의 기본 제공 Azure RBAC 역할이 나와 있습니다.

Azure RBAC를 사용하여 역할을 할당하는 방법에 대한 자세한 내용은 Blob 데이터에 액세스하기 위해 Azure 역할 할당을 참조하세요.

설명

스냅숏은 blob에 대한 읽기 전용 버전을 제공합니다. 스냅샷 만든 후에는 읽거나 복사하거나 삭제할 수 있지만 수정할 수는 없습니다.

스냅숏을 사용하면 blob 데이터를 편리하게 백업할 수 있습니다. 스냅샷 사용하여 Blob 복사를 호출하여 Blob을 이전 버전으로 복원하여 기본 Blob을 스냅샷 덮어쓸 수 있습니다.

스냅샷 만들 때 Blob Storage는 기본 Blob을 기준으로 스냅샷 고유하게 식별하는 값을 반환 DateTime 합니다. 이 값을 사용하여 스냅숏에 대해 추가 작업을 수행할 수 있습니다. 이 DateTime 값을 불투명으로 처리해야 합니다.

값은 DateTime URI의 스냅샷 식별합니다. 예를 들어 기본 blob와 해당 스냅숏에는 다음과 비슷한 URI가 포함됩니다.

  • 기본 Blob: http://myaccount.blob.core.windows.net/mycontainer/myblob

  • 스냅숏: http://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

작업을 호출 Snapshot Blob 할 때마다 고유한 DateTime 값으로 새 스냅샷 만듭니다. Blob는 여러 개의 스냅숏을 지원할 수 있습니다. 기존 스냅샷은 덮어쓰지 않습니다. Blob 삭제를 호출하고 헤더를 x-ms-include-snapshots 적절한 값으로 설정하여 명시적으로 삭제합니다.

를 성공적으로 호출하면 Snapshot Blob 응답 헤더의 값이 x-ms-snapshot 반환됩니다DateTime. 그런 다음 이 DateTime 값을 사용하여 특정 스냅샷 버전에서 읽기, 삭제 또는 복사 작업을 수행할 수 있습니다. Blob 이름 뒤를 지정하여 ?snapshot=<DateTime> 스냅샷 유효한 Blob Storage 작업을 호출할 수 있습니다.

Blob의 스냅숏을 만들면 동일한 값을 포함하는 다음과 같은 시스템 속성이 스냅숏에 복사됩니다.

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • x-ms-blob-sequence-number (페이지 Blob에만 해당)

  • x-ms-blob-committed-block-count (추가 Blob에만 해당)

  • x-ms-copy-id (버전 2012-02-12 이상)

  • x-ms-copy-status (버전 2012-02-12 이상)

  • x-ms-copy-source (버전 2012-02-12 이상)

  • x-ms-copy-progress (버전 2012-02-12 이상)

  • x-ms-copy-completion-time (버전 2012-02-12 이상)

  • x-ms-copy-status-description (버전 2012-02-12 이상)

Blob이 블록 Blob인 경우 기본 Blob의 커밋된 차단 목록도 스냅샷 복사됩니다. 커밋되지 않은 블록은 복사되지 않습니다.

스냅샷 Blob은 스냅샷 수행되는 시점의 기본 Blob과 항상 같은 크기입니다. 스냅샷 Blob의 헤더 값 Content-Length 은 기본 Blob의 경우와 동일합니다.

요청에 x-ms-meta-name:value 헤더를 지정하여 스냅숏에 대해 하나 이상의 새로운 메타데이터 값을 지정할 수 있습니다. 이 헤더를 지정하지 않으면 기본 Blob과 연결된 메타데이터가 스냅샷 복사됩니다.

기본 Blob과 연결된 모든 태그는 스냅샷 복사됩니다. 스냅샷 새 태그 값을 설정할 수 없습니다.

조건에 부합하는 경우에만 Blob의 스냅샷 요청에서 조건부 헤더를 지정할 수 있습니다. 지정된 조건이 충족되지 않으면 스냅샷 만들어지지 않습니다. 서비스는 상태 코드 412(사전 조건 실패)와 충족되지 않은 조건에 대한 추가 오류 정보를 반환합니다.

기본 Blob에 활성 임대가 있는 경우 다음 조건 중 하나가 요청에 해당하는 경우 Blob의 스냅샷 수행할 수 있습니다.

  • 조건부 x-ms-lease-id 헤더가 지정되었고 기본 blob에 대한 활성 임대 ID가 요청에 포함되어 있습니다. 이 조건은 임대가 활성 상태이고 지정된 임대 ID가 Blob과 연결된 것과 일치하는 경우에만 스냅샷 만들 수 있도록 지정합니다.

  • 헤더는 x-ms-lease-id 전혀 지정되지 않습니다. 이 경우 단독 쓰기 임대는 무시됩니다.

기본 Blob과 연결된 임대는 스냅샷 복사되지 않습니다. 스냅샷은 임대할 수 없습니다.

Blob 복사 작업을 사용하여 기본 Blob을 복사하는 경우 기본 Blob의 스냅샷은 대상 Blob에 복사되지 않습니다. 복사본으로 대상 Blob를 덮어쓸 때 대상 Blob의 모든 스냅숏은 원래 이름을 그대로 유지합니다.

해당 기본 blob에 스냅숏 blob를 복사하여 이전 버전의 blob를 복원할 수 있습니다. 스냅숏은 그대로 유지되지만 기본 blob는 읽고 쓸 수 있는 복사본으로 덮어씁니다.

참고

스냅샷 승격해도 스토리지 리소스에 대한 추가 요금이 발생하지 않습니다. 블록 또는 페이지가 스냅샷 기본 Blob 간에 공유되기 때문입니다.

REST 버전 2019-12-12부터 스냅샷 Blob 계층을 설정할 수 있습니다. 계층이 루트 Blob에 설정된 경우 모든 스냅샷은 기본 Blob에서 계층을 상속합니다. 보관된 Blob에서 스냅샷 수행하지 못합니다. 개체에서 계층을 명시적으로 설정하면 개체의 전체 크기에 대한 요금이 청구됩니다. 계층 집합이 있는 Blob의 스냅샷 사용하면 루트 Blob 및 스냅샷 대한 전체 복사 청구가 발생합니다. 블록 Blob 수준 계층화에 대한 자세한 내용은 핫, 쿨 및 보관 스토리지 계층을 참조하세요.

스냅샷 측면에서 Azure Premium Storage 계정과 표준 스토리지 계정 간에는 몇 가지 차이점이 있습니다.

  • Premium Storage 계정의 페이지 Blob당 스냅샷 수는 100개로 제한됩니다. 해당 제한을 초과하면 작업에서 Snapshot Blob 오류 코드 409(스냅샷 수를 초과)를 반환합니다.

  • Premium Storage 계정에서 페이지 Blob의 스냅샷 10분마다 한 번씩 수행할 수 있습니다. 해당 속도를 초과하면 작업에서 Snapshot Blob 오류 코드 409(스냅샷 작업 속도가 초과됨)를 반환합니다.

  • Blob 가져오기를 사용하여 Premium Storage 계정에서 페이지 Blob의 스냅샷 읽을 수 없습니다. 이 경우 서비스는 오류 코드 400(잘못된 작업)을 반환합니다. 그러나 blob 속성 가져오기 및 스냅샷 대해 Blob 메타데이터 가져오기를 호출할 수 있습니다.

    스냅샷 읽으려면 Blob 복사 작업을 사용하여 계정의 다른 페이지 Blob에 스냅샷 복사할 수 있습니다. 이때 복사 작업의 대상 Blob에는 기존 스냅샷이 없어야 합니다. 대상 Blob에 스냅숏이 있으면 Copy Blob에서 오류 코드 409(SnapshotsPresent)를 반환합니다.

자세한 내용은 Azure Premium Storage Blob Storage 작업 사용을 참조하세요.

버전 관리를 사용하도록 설정하면 Blob의 스냅샷 만들면 새 버전도 생성되고 이전 버전의 기본 Blob도 저장됩니다. 매개 변수는 x-ms-version-id Blob의 새 버전에 대한 불투명 DateTime 값을 반환합니다.

결제

가격 책정 요청은 Blob Storage REST API를 통해 직접 또는 Azure Storage 클라이언트 라이브러리에서 Blob Storage API를 사용하는 클라이언트에서 비롯할 수 있습니다. 이러한 요청은 트랜잭션당 요금을 발생합니다. 트랜잭션 유형은 계정 청구 방식에 영향을 줍니다. 예를 들어 읽기 트랜잭션은 쓰기 트랜잭션과 다른 청구 범주에 발생합니다. 다음 표에서는 스토리지 계정 유형에 따라 요청에 대한 Snapshot Blob 청구 범주를 보여 줍니다.

작업 Storage 계정 유형 청구 범주
Blob 스냅샷 프리미엄 블록 Blob
표준 범용 v2
표준 범용 v1
읽기 작업

지정된 청구 범주의 가격 책정에 대한 자세한 내용은 Azure Blob Storage 가격 책정을 참조하세요.

추가 정보

Blob의 스냅샷 만들기

Azure Storage에 대한 요청 권한 부여

상태 및 오류 코드

Blob Storage 오류 코드