메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

객체 버전 관리

버전 관리를 사용하면 my-image.jpg(버전 111111) 및 my-image.jpg(버전 222222)와 같이 한 버킷에서 같은 객체에 대해 여러 개의 버전을 유지할 수 있습니다. 의도하지 않은 덮어쓰기 또는 삭제로부터 보호하거나, 이전 버전을 검색할 수 있도록 객체를 보관하기 위해 버전 관리를 활성화할 수 있습니다.

참고

SOAP API는 버전 관리를 지원하지 않습니다. HTTP를 통한 SOAP 지원은 중단되었지만 HTTPS를 통해 계속해서 사용할 수 있습니다. 새로운 Amazon S3 기능은 SOAP에 대해 지원되지 않습니다.

객체 버전 관리를 객체 수명 주기 관리 기능과 함께 사용하여 관련 스토리지 비용을 제어하면서 데이터 보존 요구 사항을 사용자 지정할 수 있습니다. AWS Management Console을 사용하여 수명 주기 정책을 생성하는 방법에 대한 자세한 내용은 S3 버킷에 대한 수명 주기 정책을 생성하려면 어떻게 해야 합니까?(출처: Amazon Simple Storage Service 콘솔 사용 설명서)를 참조하십시오.

버전이 지정되지 않은 버킷에 객체 만료 수명 주기 정책이 있고 버전 관리를 사용할 때 같은 영구 삭제 행동을 유지하고자 하는 경우에는 비 최신 버전의 만료 정책을 추가해야 합니다. 비 최신 버전의 만료 수명 주기 정책은 버전 관리를 사용하는 버킷에서 비 최신 객체 버전의 삭제를 관리합니다. (버전 관리가 활성화된 버킷은 하나의 현재 객체 버전과 0개 이상의 최신이 아닌 객체 버전을 유지합니다.)

반드시 버킷에서 버전 관리를 명시적으로 활성화해야 합니다. 기본적으로 버전 관리는 비활성화되어 있으며, 버전 관리 활성화 여부에 관계없이 버킷의 각 객체에는 버전 ID가 부여됩니다. 버전 관리를 사용하지 않을 경우 Amazon S3가 버전 ID 값을 null로 설정합니다. 버전 관리를 활성화하면 Amazon S3가 객체에 고유한 버전 ID 값을 지정합니다. 버킷에서 새로 버전 관리를 활성화할 경우 기존 객체(있을 경우)는 바뀌지 않고 버전 ID(null), 콘텐츠 및 권한이 전과 동일하게 유지됩니다.

버전 관리 활성화 및 일시 중지는 버킷 수준에서 이루어집니다. 버킷의 버전 관리를 활성화하는 경우 해당 버킷에 추가되는 모든 객체에 고유한 버전 ID가 부여됩니다. 고유한 버전 ID는 임의로 생성되는 최대 1024바이트의 UTF-8 인코딩된 URL 지원 불투명의 Unicode 문자열입니다. 버전 ID의 예를 들면 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo입니다. Amazon S3만 버전 ID를 생성하며, 버전 ID는 편집할 수 없습니다.

참고

모든 예제에서는 간소화를 위해 실제보다 훨씬 더 짧은 ID를 사용합니다.

버전 관리를 사용하는 버킷에 객체를 PUT할 때 비 최신 버전은 덮어쓰지 않습니다. 다음 그림은 동일한 이름의 객체를 이미 보유하고 있는 버킷에 새 버전의 photo.gifPUT할 때 원래 객체(ID = 111111)는 버킷에 계속 남아 있으며, Amazon S3가 새 버전 ID(121212)를 만들어 버킷에 추가하는 과정을 보여줍니다.

이 기능으로 실수로 객체를 덮어쓰거나 삭제하는 것을 방지하고, 객체의 이전 버전을 검색할 수 있습니다.

객체를 DELETE하면 다음 그림과 같이 버킷에 모든 버전이 계속 유지되고 Amazon S3가 삭제 마커를 삽입합니다.

삭제 마커가 객체의 최신 버전이 됩니다. 기본적으로 GET 요청은 가장 최근에 저장된 버전을 검색합니다. 최신 버전이 삭제 마커일 때 간단한 GET Object 요청을 수행하면 다음 그림과 같이 404 Not Found 오류가 반환됩니다.

하지만 GET 요청에 버전 ID를 지정하여 비 최신 버전의 객체를 가져올 수 있습니다. 다음 그림과 같이 GET 요청에 특정 객체 버전인 111111을 지정하면 Amazon S3가 최신 버전이 아니지만 해당 버전의 객체를 반환합니다.

삭제하고자 하는 버전을 지정하여 객체를 영구적으로 삭제할 수 있습니다. Amazon S3 버킷 소유자만이 영구적으로 버전을 삭제할 수 있습니다. 다음 그림은 DELETE versionId에 의해 버킷에서 객체가 영구 삭제되고, Amazon S3가 삭제 마커를 삽입하지 않음을 보여줍니다.

MFA(멀티 펙터 인증) Delete이 활성화되도록 버킷을 구성하여 보안을 강화할 수 있습니다. 이렇게 하는 경우 버킷 소유자는 버전을 삭제하거나 버킷의 버전 관리 상태를 변경하는 모든 요청에 두 가지 형식의 인증을 포함해야 합니다. 자세한 내용은 MFA Delete 단원을 참조하십시오.

중요

버전 관리를 사용하는 버킷에 대한 Amazon S3 PUT 또는 DELETE 객체 요청에서 받은 HTTP 503 속도 저하 응답의 횟수가 크게 증가한다면 버전이 무수히 많은 객체가 하나 이상 버킷에 있을 수 있습니다. 자세한 내용은 Amazon S3 문제 해결 단원을 참조하십시오.

자세한 내용은 버전 관리 사용을 참조하십시오.