객체 버전 관리 - Amazon Simple Storage Service

객체 버전 관리

Amazon S3 버전 관리를 통해 한 버킷 내에 여러 개의 객체 버전을 유지할 수 있습니다. 예를 들어, my-image.jpg(버전 111111) 및 my-image.jpg(버전 222222)를 단일 버킷에 저장할 수 있습니다. S3 버전 관리는 의도하지 않은 덮어쓰기 및 삭제 결과에 영향 받지 않도록 사용자를 보호합니다. 또한 버전 관리를 사용해 객체를 아카이브하여 이전 버전에 액세스할 수 있습니다.

참고

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

데이터 보존 접근 방식을 사용자 지정하고 스토리지 비용을 관리하기 위해 객체 수명 주기 관리(으)로 객체 버전 관리를 사용하십시오. AWS Management 콘솔을 사용하여 S3 수명 주기 정책을 생성하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service 콘솔 사용 설명서S3 버킷에 대한 수명 주기 정책을 생성하려면 어떻게 해야 합니까?를 참조하십시오.

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

버킷에서 명시적으로 S3 버전 관리를 활성화해야 합니다. 기본적으로 S3 버전 관리는 비활성화되어 있습니다. 버전 관리 활성화 여부에 관계없이 버킷의 각 객체에는 버전 ID가 부여됩니다. 버전 관리를 활성화하지 않으면 Amazon S3가 버전 ID의 값을 null로 설정합니다. S3 버전 관리가 활성화되면 객체의 버전 ID 값을 Amazon S3에 할당합니다. 이 값은 동일한 키의 다른 버전과 구별됩니다.

버전 관리 활성화 및 일시 중지는 버킷 수준에서 이루어집니다. 기존 버킷에서 버전 관리를 활성화하면 버킷에 이미 저장된 객체는 변경되지 않습니다. 버전 ID(null), 콘텐츠, 그리고 권한은 동일하게 유지됩니다. 버킷에 대한 S3 버전 관리를 활성화하면 버킷에 추가된 각 객체가 동일한 키의 다른 버전과 구별되는 버전 ID를 가져옵니다.

Amazon S3는 버전 ID만 생성하며 편집할 수 없습니다. 버전 ID는 유니코드, UTF-8 인코딩, URL 지원, 불투명 문자열이며 길이가 1,024바이트를 넘지 않습니다. 예를 들면, 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo입니다.

참고

간단히 설명하기 위해 모든 예제에서는 더 짧은 ID를 사용합니다.

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

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

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

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

하지만 버전 ID를 지정하여 최신 버전이 아닌 객체에 대해 GET을 실행할 수 있습니다. 다음 그림과 같이 특정 객체 버전(111111)에 대해 GET을 실행하면 Amazon S3가 최신 버전은 아니지만 해당 버전의 객체를 반환합니다.

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

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

중요

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

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