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

수명 주기 구성의 요소

수명 주기 구성을 하나 이상의 수명 주기 규칙으로 이루어진 XML로 지정합니다.

Copy
<LifecycleConfiguration> <Rule> ... </Rule> <Rule> ... </Rule> </LifecycleConfiguration>

각 규칙은 다음과 같은 요소로 구성됩니다.

  • 규칙 메타데이터에는 규칙 ID와 규칙의 활성화 여부를 나타내는 상태가 포함됩니다. 규칙이 비활성화되면 Amazon S3는 규칙에 지정된 작업을 수행하지 않습니다.

  • 규칙이 적용되는 객체를 식별하는 필터. 객체 키 접두사, 하나 이상의 객체 태그 또는 이 두 가지를 모두 사용하여 필터를 지정할 수 있습니다.

  • Amazon S3가 객체 수명 주기 상의 특정 날짜 또는 기간 동안 지정된 작업을 수행하기를 원하는 하나 이상의 전환 또는 만료 작업.

다음 단원에서는 수명 주기 구성의 XML 요소에 대해 설명합니다. 예제 수명 주기 구성은 수명 주기 구성의 예제 단원을 참조하십시오.

ID 요소

한 수명 주기 구성에서 최대 1,000개의 규칙을 설정할 수 있으며, <ID> 요소는 규칙을 고유하게 식별합니다. ID 길이는 255자로 제한됩니다.

상태 요소

<Status> 요소 값은 Enabled 또는 Disabled입니다. 규칙이 비활성화되면 Amazon S3는 규칙에 정의된 작업을 수행하지 않습니다.

필터 요소

수명 주기 규칙은 수명 주기 규칙에서 지정하는 <Filter> 요소에 기반하여 버킷 내 객체의 모든 하위 집합 또는 하나의 하위 집합에 적용될 수 있습니다.

객체들을 키 접두사, 객체 태그 또는 이 둘의 조합으로 필터링할 수 있습니다(조합하는 경우, Amazon S3는 논리 AND를 사용하여 필터를 조합합니다). 다음 예제를 고려하십시오.

  • 키 접두사를 사용하여 필터 지정 - 이 예제는 키 이름 접두사에 기반하여 객체의 하위 집합에 적용되는 수명 주기 규칙을 보여 줍니다(logs/). 예를 들어 이 수명 주기 규칙은 객체 logs/mylog.txt, logs/temp1.txtlogs/test.txt에 적용됩니다. 이 규칙은 객체 example.jpg에는 적용되지 않습니다.

    Copy
    <LifecycleConfiguration> <Rule> <Filter> <Prefix>logs/</Prefix> </Filter> transition/expiration actions. ... </Rule> ... </LifecycleConfiguration>

    다른 키 이름 접두사에 기반하여 객체의 하위 집합에 수명 주기 작업을 적용하려면 별도의 규칙을 지정하십시오. 각각의 규칙에서 접두사 기반 필터를 지정하십시오. 예를 들어 키 접두사 projectA/projectB/를 가진 객체의 수명 주기 작업을 설명하려면 아래와 같이 두 가지 규칙을 지정합니다.

    Copy
    <LifecycleConfiguration> <Rule> <Filter> <Prefix>projectA/</Prefix> </Filter> transition/expiration actions. ... </Rule> <Rule> <Filter> <Prefix>projectB/</Prefix> </Filter> transition/expiration actions. ... </Rule> </LifecycleConfiguration>

    객체 키에 대한 자세한 내용은 객체 키 단원을 참조하십시오.

  • 객체 태그에 기반한 필터 지정 - 다음 예제에서 수명 주기 규칙은 태그(key)와 값(value)에 기반하여 필터를 지정합니다. 그러면 규칙은 특정 태그를 가진 객체의 하위 집합에만 적용됩니다.

    Copy
    <LifecycleConfiguration> <Rule> <Filter> <Tag> <Key>key</Key> <Value>value</Value> </Tag> </Filter> transition/expiration actions. ... </Rule> </LifecycleConfiguration>

    여러 개의 태그를 기반으로 필터를 지정할 수 있습니다. 태그는 다음 예제에서 보듯 <AND> 요소로 감싸야 합니다. 규칙은 Amazon S3에게 2개의 태그(특정 태그 키와 값)를 가진 객체에서 수명 주기 작업을 수행하도록 지시합니다.

    Copy
    <LifecycleConfiguration> <Rule> <Filter> <And> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> ... </And> </Filter> transition/expiration actions. </Rule> </Lifecycle>

    수명 주기 규칙은 지정된 태그 2개가 모두 있는 객체에 적용됩니다. Amazon S3는 논리 AND를 수행합니다. 다음을 참조하십시오.

    • 태그는 키와 값에 정확히 일치해야 합니다.

    • 규칙은 규칙에서 지정된 태그 하나 이상이 있는 객체의 하위 집합에 적용됩니다. 객체에 추가 태그가 있을 수 있지만 상관없습니다.

    참고

    필터에서 복수의 태그를 지정할 경우, 각각의 태그 키가 고유해야 합니다.

  • 접두사와 하나 이상의 태그에 기반한 필터 지정 - 수명 주기 규칙에서 키 접두사 및 하나 이상의 태그에 기반하여 필터를 지정할 수 있습니다. 이 경우에도 아래에서 보듯 이 모두를 <AND> 요소로 감싸야 합니다.

    Copy
    <LifecycleConfiguration> <Rule> <Filter> <And> <Prefix>key-prefix</Prefix> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> <Tag> <Key>key2</Key> <Value>value2</Value> </Tag> ... </And> </Filter> <Status>Enabled</Status> transition/expiration actions. </Rule> </LifecycleConfiguration>

    Amazon S3는 논리 AND를 사용하여 이 필터들을 조합합니다. 즉, 규칙은 특정 키 접두사와 특정 태그를 가진 객체의 하위 집합에 적용됩니다. 필터는 최대 1개의 접두사와 0개 이상의 태그를 가질 수 있음에 유의하십시오.

  • 빈 필터를 지정할 수도 있는데, 이 경우에 규칙은 버킷 내 모든 객체에 적용됩니다.

    Copy
    <LifecycleConfiguration> <Rule> <Filter> </Filter> <Status>Enabled</Status> transition/expiration actions. </Rule> </LifecycleConfiguration>

수명 주기 작업을 설명할 요소

수명 주기 구성 규칙에 사전 정의된 다음 작업 중 하나 이상을 지정하여 객체의 수명 주기에 따라 Amazon S3가 특정 작업을 수행하도록 지시할 수 있습니다. 이러한 작업의 효과는 버킷의 버전 관리 상태에 따라 달라집니다.

  • 전환 작업 요소 - 한 스토리지 클래스에서 다른 스토리지 클래스로 객체를 전환하려면 Transition 작업을 지정합니다. 객체 전환에 대한 자세한 내용은 지원되는 전환 작업 및 관련 제한 사항 단원을 참조하십시오. 객체의 수명 주기에서 지정된 날짜 또는 기간이 도래하면 Amazon S3가 전환을 수행합니다.

    버전이 지정된 버킷(버전 관리를 사용하거나 버전 관리가 일시 중지된 버킷)의 경우 Transition 작업은 현재 객체 버전에 적용됩니다. 비 최신 버전을 관리하기 위해 Amazon S3에서 NoncurrentVersionTransition 작업을 정의합니다(아래 설명 참조).

  • 만료 작업 요소 - Expiration 작업은 규칙에 지정된 객체를 만료시킵니다. Amazon S3에 의해 만료된 모든 객체는 사용할 수 없게 되고, 버킷의 버전 관리 상태에 따라 객체의 영구 삭제 여부가 결정됩니다.

    중요

    객체 만료 수명 주기 정책은 완료되지 않은 멀티파트 업로드를 제거하지 않습니다. 완료되지 않은 멀티파트 업로드를 제거하려면 이 단원 뒷부분에서 설명하는 AbortIncompleteMultipartUpload 수명 주기 구성 작업을 사용해야 합니다.

    • 버전 관리를 사용하지 않는 버킷- Expiration 작업을 수행하면 Amazon S3에서는 객체를 영구적으로 제거합니다.

    • 버전이 지정된 버킷 - 버전이 지정된 버킷(즉, 버전 관리를 사용하거나 버전 관리가 일시 중지된 버킷)의 경우, Amazon S3의 expiration 작업 처리 방식의 지침이 되는 몇 가지 고려 사항이 있습니다. 자세한 내용은 버전 관리 사용 단원을 참조하십시오. 버전 관리 상태에 상관없이 다음 사항이 적용됩니다.

      • Expiration 작업은 최신 버전에만 적용됩니다(비 최신 버전에는 영향이 없음).

      • 객체 버전이 1개 이상이고 삭제 마커가 최신 버전이면 Amazon S3는 작업을 수행하지 않습니다.

      • 최신 객체 버전이 유일한 객체 버전이면서 삭제 마커인 경우(만료된 객체 삭제 마커라고도 하는데, 이 경우 모든 객체 버전이 삭제되고 하나의 삭제 마커만 남게 됨), Amazon S3는 만료된 객체 삭제 마커를 제거합니다. 만료 작업을 사용하여 Amazon S3에게 만료된 객체 삭제 마커를 제거하도록 지시할 수도 있습니다. 문제 해결 예는 예제 7: 만료된 객체 삭제 마커의 제거 단원을 참조하십시오.

        중요

        객체가 만료된 후 48시간이 지나자마자 Amazon S3는 만료된 객체 삭제 마커를 제거합니다.

      Amazon S3가 만료를 관리하는 데 있어 추가적인 고려 사항은 다음과 같습니다.

      • 버전 관리를 사용하는 버킷

        최신 객체 버전이 삭제 마커가 아닐 경우, Amazon S3는 고유한 버전 ID를 지닌 삭제 마커를 추가하여 최신 버전을 비 최신 버전으로 만들고 삭제 마커를 최신 버전으로 만듭니다.

      • 버전 관리가 일시 중지된 버킷

        버전 관리가 일시 중지된 버킷에서는 만료 작업으로 인해 Amazon S3는 버전 ID가 null인 삭제 마커를 생성합니다. 삭제 마커는 버전 계층 구조에서 null 버전 ID로 모든 객체 버전을 대체함으로써 결과적으로 객체를 삭제합니다.

또한 Amazon S3에서는 버전이 지정된 버킷(즉, 버전 관리를 사용하거나 버전 관리가 일시 중지된 버킷)에서 비 최신 객체 버전을 관리하는 데 사용할 수 있는 다음 작업을 제공합니다.

  • NoncurrentVersionTransition 작업 요소 – 이 작업을 사용하면 Amazon S3에서 객체를 지정된 스토리지 클래스로 이전하기 전 현재 스토리지 클래스에 유지할 기간(객체가 비 최신 버전이 된 시간부터)을 지정할 수 있습니다. 객체 전환에 대한 자세한 내용은 지원되는 전환 작업 및 관련 제한 사항 단원을 참조하십시오.

  • NoncurrentVersionExpiration 작업 요소 – 이 작업을 사용하면 Amazon S3가 객체를 영구 삭제하기 전 비 최신 버전의 객체를 유지할 기간(객체가 비 최신 버전이 된 시간부터)을 지정할 수 있습니다. 영구 삭제된 객체는 다시 복구할 수 없습니다.

    최신 버전이 아닌 객체를 이렇게 지연 제거하면 실수로 인한 삭제 또는 덮어쓰기로부터 복구해야 하는 경우에 유용합니다. 예를 들어 비 최신 버전이 되고 5일 이후에 비 최신 버전을 삭제하도록 만료 규칙을 구성할 수 있습니다. 예를 들어 2014년 1월 1일 오전 10시 30분에 photo.gif(버전 ID 111111)라고 하는 객체를 생성한 경우, 2014년 1월 2일 오전 11시 30분에 실수로 photo.gif(버전 ID 111111)를 삭제하면 새 버전 ID(예: 버전 ID 4857693)와 함께 삭제 마커가 생성됩니다. 이제 5일 동안 원래 버전의 photo.gif(버전 ID 111111)를 복구할 수 있으며, 5일이 지나면 영구 삭제됩니다. 비 최신 버전이 된 지 5일 후인 2014년 1월 8일 0시에 만료 수명 주기 규칙이 실행되어 photo.gif(버전 ID 111111)를 영구 삭제합니다.

    중요

    객체 만료 수명 주기 정책은 완료되지 않은 멀티파트 업로드를 제거하지 않습니다. 완료되지 않은 멀티파트 업로드를 제거하려면 이 단원 뒷부분에서 설명하는 AbortIncompleteMultipartUpload 수명 주기 구성 작업을 사용해야 합니다.

이전 및 만료 작업뿐만 아니라 다음과 같은 수명 주기 구성 작업을 사용함으로써 Amazon S3에게 미완료 멀티파트 업로드를 중단하도록 지시할 수 있습니다.

  • AbortIncompleteMultipartUpload 작업 요소 – 이 요소를 사용해 멀티파트 업로드가 진행 상태에 있길 원하는 최대 시간(일수)를 설정합니다. 해당 멀티파트 업로드(수명 주기 규칙에서 지정된 키 이름 prefix가 결정함)가 사전 지정된 기간 내에 성공적으로 완료되지 않으면, Amazon S3는 미완료 멀티파트 업로드를 중단합니다. 자세한 내용은 버킷 수명 주기 정책을 사용한 미완료 멀티파트 업로드 중단 단원을 참조하십시오.

    참고

    객체 태그에 기반하여 필터를 지정하는 규칙에서는 이 수명 주기 작업을 지정할 수 없습니다.

  • ExpiredObjectDeleteMarker 작업 요소 – 버전 관리를 사용하는 버킷에서 비 최신 버전이 없는 삭제 마커는 만료된 객체 삭제 마커라고 부릅니다. 이 수명 주기 작업을 사용하여 S3에게 만료된 객체 삭제 마커를 제거하도록 지시할 수 있습니다. 문제 해결 예는 예제 7: 만료된 객체 삭제 마커의 제거 단원을 참조하십시오.

    참고

    객체 태그에 기반하여 필터를 지정하는 규칙에서는 이 수명 주기 작업을 지정할 수 없습니다.

Amazon S3가 객체가 비 최신 버전이 된 기간을 계산하는 방법

버전 관리를 사용하는 버킷에는 항상 하나의 최신 버전 객체와 함께 0 또는 비 최신 버전의 여러 객체 버전이 존재할 수 있습니다. 새로 객체를 업로드할 때마다 새로 업로드된 후임 버전이 최신 버전이 되고, 기존의 최신 버전은 비 최신 버전이 됩니다. 객체가 비 최신 버전이 된 일수를 계산하기 위해 Amazon S3는 후임 객체가 생성된 날짜를 확인합니다. Amazon S3는 후임 객체의 생성 일수를 사용하여 객체가 비 최신 버전이 된 일수를 계산합니다.

수명 주기 구성을 사용한 이전 버전의 객체 복원

이전 버전 복원 항목의 설명과 같이 다음 두 가지 방법 중 하나를 사용하여 이전 버전의 객체를 복구할 수 있습니다.

  1. 비 최신 버전의 객체를 동일한 버킷으로 복사합니다. 복사된 객체는 해당 객체의 최신 버전이 되고 모든 객체 버전은 유지됩니다.

  2. 객체의 최신 버전을 영구 삭제합니다. 최신 객체 버전을 삭제하는 것은 실제로 해당 객체의 비 최신 버전을 최신 버전으로 만드는 것과 같습니다.

버전 관리를 사용하는 버킷에 수명 주기 구성 규칙을 사용할 경우 첫 번째 방법을 사용하는 것이 모범 사례입니다.

Amazon S3의 최종 일관성에 따라 영구 삭제한 최신 버전은 이 변경 사항이 반영될 때까지 사라지지 않을 수 있습니다(Amazon S3가 이 삭제를 인식하지 못할 수 있음). 그 동안 비 최신 버전 객체를 만료시키도록 구성된 수명 주기 규칙에 의해 복구하려는 객체를 포함하여 비 최신 버전 객체가 영구 삭제될 수 있습니다. 따라서 첫 번째 방법에서 권장하는 대로 이전 버전을 복사하는 것이 더 안전합니다.

다음 표에 객체가 포함된 버킷의 버전 관리 상태에 따라 수명 주기 구성 규칙에서 수행하는 작업의 결과가 요약되어 있습니다.

수명 주기 작업 및 버킷의 버전 관리 상태

작업 버전 관리를 사용하지 않는 버킷(버전 관리를 활성화하지 않은 경우) 버전 관리를 사용하는 버킷 버전 관리가 일시 중지된 버킷

Transition

객체의 수명 주기에서 지정된 날짜 또는 기간에 도달하면.

Amazon S3에서 객체를 지정된 스토리지 클래스로 이전합니다. Amazon S3에서 최신 버전의 객체를 지정된 스토리지 클래스로 이전합니다. 버전 관리를 사용하는 버킷과 동일하게 작동합니다.

Expiration

객체의 수명 주기에서 지정된 날짜 또는 기간에 도달하면.

만료는 객체를 삭제하며, 이렇게 삭제된 객체는 다시 복구할 수 없습니다. 최신 버전이 삭제 마커가 아닐 경우 Amazon S3는 삭제 마커를 생성하여 최신 버전으로 만들고 기존 최신 버전은 비 최신 버전으로 유지합니다. 수명 주기에서 null 버전 ID로 삭제 마커를 생성하여 최신 버전으로 만듭니다. 최신 버전의 객체 버전 ID가 null일 경우 만료 작업은 이 버전을 영구 삭제하고, 그렇지 않으면 최신 버전을 비 최신 버전으로 유지합니다.

NoncurrentVersionTransition

객체가 비 최신 버전이 된 후 일정 일수가 지나면.

NoncurrentVersionTransition은 아무 영향이 없습니다.

Amazon S3에서 비 최신 객체 버전을 지정된 스토리지 클래스로 이전합니다.

버전 관리를 사용하는 버킷과 동일하게 작동합니다.

NoncurrentVersionExpiration

객체가 비 최신 버전이 된 후 일정 일수가 지나면.

NoncurrentVersionExpiration은 아무 영향이 없습니다. NoncurrentVersionExpiration 작업은 비 최신 버전의 객체를 삭제하며, 이렇게 삭제된 객체는 다시 복구할 수 없습니다. 버전 관리를 사용하는 버킷과 동일하게 작동합니다.

수명 주기 규칙: 객체 기간 기반

객체 생성 또는 수정을 기준으로 Amazon S3에서 작업을 수행할 수 있는 일수를 지정할 수 있습니다.

수명 주기 구성에서 TransitionExpiration 작업의 일수를 지정할 경우, 다음에 유의하십시오.

  • 작업이 이루어질 객체 생성 이후의 일수입니다.

  • Amazon S3는 객체 생성 시간을 기준으로 규칙에 지정된 일수를 계산하며, 익일 자정으로 계산된 시간을 상향 조정합니다. 예를 들어 객체가 2014년 1월 15일 오전 10시 30분에 생성되고, 이전 규칙에 3일을 지정한 경우 객체의 이전일은 2014년 1월 19일 0시가 됩니다.

참고

Amazon S3는 각 객체에 대해 최종 수정일만 유지합니다. Amazon S3 콘솔은 객체의 속성 창에 최종 수정일을 표시합니다. 새 객체를 처음 생성할 때 이 날짜는 객체가 생성된 날짜가 되고, 객체를 변경하면 날짜도 이에 따라 바뀝니다. 따라서 생성일최종 수정일과 같은 날짜가 됩니다.

수명 주기 구성에서 NoncurrentVersionTransitionNoncurrentVersionExpiration 작업의 일수를 지정할 경우 다음에 유의하십시오.

  • Amazon S3에서 지정된 객체에 대해 작업을 수행할 기간으로 객체 버전이 비 최신 버전이 된 이후의 일수(즉, 객체를 덮어쓰거나 삭제한 후 경과한 일수)를 지정합니다.

  • Amazon S3는 후임 버전의 새 객체가 생성된 시간을 기준으로 규칙에 지정된 일수를 계산하며, 익일 자정으로 계산된 시간을 상향 조정합니다. 예를 들어 버킷에서 최신 버전의 객체가 2014년 1월 1일 오전 10시 30분에 생성되었으며, 이 최신 버전을 대체하는 후임 버전의 객체가 2014년 1월 15일 오전 10시 30분에 생성되고 이전 규칙에 3일을 지정한 경우 이전일은 2014년 1월 19일 0시가 됩니다.

수명 주기 규칙: 지정된 날짜 기반

수명 주기 규칙에서 작업을 지정할 때 S3에서 작업을 수행하기를 원하는 날짜를 지정할 수 있습니다. 특정 데이터가 도착하면 S3가 필터 기준에 부합하는 모든 객체에 작업을 적용합니다.

과거 날짜를 사용하여 수명 주기 작업을 지정할 경우 모든 기준 부합 객체가 해당 수명 주기 작업에 대해 즉시 적격 상태가 됩니다.

중요

날짜 기반 작업은 일회용 작업이 아닙니다. S3는 날짜가 경과한 이후에도 해당 규칙 상태가 사용을 유지하는 한 데이터 기반 작업을 계속 적용합니다.

예를 들어 날짜 기반 만료 작업을 지정하여 모든 객체를 삭제한다고 가정해 봅시다(규칙에 지정된 필터가 없는 것으로 가정). 지정된 날짜에 S3는 버킷 내 모든 객체를 만료시킵니다. 또한 S3는 사용자가 버킷에서 만드는 새 객체도 모두 만료시킵니다. 수명 주기 작업을 중지하려면 작업을 수명 주기 구성에서 제거하거나, 규칙을 해제하거나, 규칙을 수명 주기 구성에서 삭제해야 합니다.

날짜 값은 ISO 8601 형식을 준수해야 합니다. 시간은 항상 자정(UTC)입니다.

참고

Amazon S3 콘솔을 사용하여 날짜 기반 수명 주기 규칙을 만들 수는 없지만 그러한 규칙을 조회, 비활성화 또는 삭제할 수는 있습니다.