Amazon S3 수명 주기 문제 해결 - Amazon Simple Storage Service

Amazon S3 수명 주기 문제 해결

다음 정보는 Amazon S3 수명 주기 규칙과 관련된 문제를 해결하는 데 도움이 될 수 있습니다.

버킷에서 목록 작업을 실행한 결과, 수명 주기 규칙에 따라 만료되었거나 전환된 것으로 생각되는 객체가 있었습니다.

S3 수명 주기 객체 전환객체 만료는 비동기 작업입니다. 따라서 객체가 만료 또는 전환될 수 있는 시점과 실제로 전환되거나 만료되는 시점 사이에 지연이 있을 수 있습니다. 결제 변경 사항은 작업이 완료되지 않았더라도 수명 주기 규칙이 충족되는 즉시 적용됩니다. 이 동작에 대한 한 가지 예외는 S3 Intelligent-Tiering 스토리지 클래스로 전환하도록 수명 주기 규칙을 설정한 경우입니다. 이 경우 객체가 S3 Intelligent-Tiering으로 전환될 때까지 결제 변경이 발생하지 않습니다. 결제 변경에 대한 자세한 내용은 버킷의 수명 주기 구성 설정을 참조하세요.

참고

Amazon S3은 128KB보다 작은 객체를 S3 Standard 또는 S3 Standard-IA 스토리지 클래스에서 S3 Intelligent-Tiering, S3 Standard-IA 또는 S3 One Zone-IA 스토리지 클래스로 전환하지 않습니다.

수명 주기 규칙에 따라 취해진 조치를 모니터링하려면 어떻게 해야 하나요?

다음 기능을 사용하여 수명 주기 규칙이 수행한 작업을 모니터링할 수 있습니다.

  • S3 이벤트 알림 - S3 수명 주기 만료 또는 이전 이벤트에 대한 알림을 받도록 S3 이벤트 알림을 설정할 수 있습니다.

  • S3 서버 액세스 로그 - S3 버킷에 대한 서버 액세스 로그를 활성화하여 다른 스토리지 클래스로의 객체 이전 및 객체 만료와 같은 S3 수명 주기 관련 작업을 캡처합니다. 자세한 내용은 수명 주기 및 로깅 섹션을 참조하세요.

수명 주기 작업으로 인한 스토리지 변경을 매일 확인하려면 Amazon CloudWatch 지표를 사용하는 대신 S3 Storage Lens 대시보드를 사용하는 것이 좋습니다. Storage Lens 대시보드에서 객체 개수 또는 크기를 모니터링하는 다음 지표를 볼 수 있습니다.

  • 최신 버전 바이트

  • 최신 버전 객체 수

  • 비최신 버전 바이트

  • 비최신 버전 객체 수

  • 삭제 마커 객체 수

  • 삭제 마커 스토리지 바이트

  • 불완전 멀티파트 업로드 바이트

  • 불완전 멀티파트 업로드 객체 수

버전 관리가 활성화된 버킷에 수명 주기 규칙을 설정한 후에도 S3 객체 수가 계속 증가합니다.

버전 관리를 사용하는 버킷에서 객체가 만료되도록 설정된 경우 객체가 버킷에서 완전히 삭제되지는 않습니다. 대신 삭제 마커가 객체의 최신 버전으로 만들어집니다. 삭제 마커는 여전히 객체로 집계됩니다. 따라서 현재 버전만 만료하도록 수명 주기 규칙을 생성하면 S3 버킷의 객체 수가 줄어들지 않고 실제로 증가합니다.

예를 들어 버전 관리가 활성화된 S3 버킷에 100개의 객체가 있고 7일 후에 객체의 현재 버전이 만료되도록 수명 주기 규칙이 설정되어 있다고 가정해 보겠습니다. 7일이 지나면 현재 비최신 버전인 원래 객체 100개 외에 100개의 삭제 마커가 생성되므로 객체 수가 200개로 늘어납니다. 버전 관리가 활성화된 버킷의 S3 수명 주기 구성 규칙 작업에 대한 자세한 내용은 버킷에서 수명 주기 구성 설정을 참조하세요.

객체를 영구적으로 제거하려면 객체의 이전 버전, 만료된 삭제 마커 및 불완전 멀티파트 업로드를 삭제하는 수명 주기 구성을 추가하세요. 새 수명 주기 규칙을 만드는 방법에 대한 지침은 버킷에 수명 주기 구성 설정을 참조하세요.

참고
  • Amazon S3는 객체의 전환 또는 만료 날짜를 다음 날 자정(UTC)으로 반올림합니다.

    수명 주기 작업에 사용할 객체를 평가할 때 Amazon S3는 객체 생성 시간(UTC)을 사용합니다. 예를 들어 하루가 지나면 객체가 만료되도록 구성된 수명 주기 규칙이 있는 버전이 지정되지 않은 버킷을 생각해 보세요. 1월 1일 17:05 태평양 표준시(PDT)에 객체가 생성되었다고 가정해 보겠습니다. 이는 1월 2일 00:05 UTC에 해당합니다. 이 객체는 1월 3일 00:05 UTC에 하루가 지나고 나면 S3 라이프사이클에서 1월 4일 00:00 UTC에 객체를 평가할 때 만료될 수 있습니다.

    Amazon S3 수명 주기 작업은 비동기적으로 발생하기 때문에 수명 주기 규칙에 지정된 날짜와 객체의 실제 물리적 이전 사이에 약간의 지연이 있을 수 있습니다. 자세한 내용은 이전 또는 만료 지연을 참조하세요.

    자세한 내용은 수명 주기 규칙: 객체 기간 기반을 참조하세요.

  • 객체 잠금으로 보호되는 S3 객체의 경우 현재 버전은 영구적으로 삭제되지 않습니다. 대신 객체에 삭제 마커가 추가되어 객체가 비최신 상태가 됩니다. 그런 다음, 비최신 버전이 보존되며 영구적으로 만료되지 않습니다.

수명 주기 규칙을 사용하여 S3 버킷을 비우려면 어떻게 해야 하나요?

S3 수명 주기 규칙은 수백만 개의 객체가 포함된 S3 버킷을 비우는 효과적인 도구입니다. S3 버킷에서 많은 수의 객체를 삭제하려면 다음 두 쌍의 수명 주기 규칙을 사용해야 합니다.

  • 객체의 현재 버전 만료이전 버전의 객체 영구 삭제

  • 만료된 삭제 마커 삭제불완전 멀티파트 업로드 삭제

새 수명 주기 규칙을 만드는 방법에 대한 지침은 버킷에서 수명 주기 구성 설정을 참조하세요.

참고

객체 잠금으로 보호되는 S3 객체의 경우 현재 버전은 영구적으로 삭제되지 않습니다. 대신 객체에 삭제 마커가 추가되어 객체가 비최신 상태가 됩니다. 그런 다음, 비최신 버전이 보존되며 영구적으로 만료되지 않습니다.

객체를 더 저렴한 스토리지 클래스로 전환한 후 Amazon S3 청구액이 늘었습니다.

객체를 더 저렴한 스토리지 클래스로 전환한 후 청구액이 늘어나는 데는 몇 가지 이유가 있습니다.

  • 작은 객체에 대한 S3 Glacier 오버헤드 요금

    S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive에 각 객체를 전환할 때 이 스토리지 업데이트에는 총 40KB의 총 오버헤드가 있습니다. 40KB 오버헤드의 일부로 8KB는 메타데이터와 객체 이름을 저장하는 데 사용됩니다. 이 8KB는 S3 Standard 요금에 따라 요금이 청구됩니다. 나머지 32KB는 인덱싱 및 관련 메타데이터에 사용됩니다. 이 32KB는 S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 요금에 따라 요금이 청구됩니다.

    따라서 크기가 작은 객체를 여러 개 저장하는 경우 수명 주기 전환을 사용하지 않는 것이 좋습니다. 오버헤드 요금을 줄이려면 비교적 작은 객체 여러 개를 Amazon S3에 저장하기 전에 개수가 더 적은 큰 객체로 취합하는 것이 좋습니다. 비용 고려 사항과 관련한 자세한 내용은 S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive 스토리지 클래스로 전환(객체 아카이브)을 참조하세요.

  • 최소 스토리지 요금

    일부 S3 스토리지 클래스에는 최소 스토리지 기간 요구 사항이 있습니다. 최소 기간이 충족되기 전에 해당 클래스에서 삭제, 덮어쓰기 또는 전환된 객체에는 비례 계산된 조기 전환 또는 삭제 요금이 부과됩니다. 이러한 최소 스토리지 기간 요구 사항은 다음과 같습니다.

    • S3 Standard-IA 및 S3 One Zone-IA - 30일

    • S3 Glacier Flexible Retrieval 및 S3 Glacier Instant Retrieval – 90일

    • S3 Glacier Deep Archive - 180일

    이러한 요구 사항에 대한 자세한 내용은 S3 수명 주기를 사용하여 객체 전환제약 조건 섹션을 참조하세요. 일반 S3 요금 정보는 Amazon S3 요금AWS 요금 계산기를 참조하세요.

  • 수명 주기 전환 비용

    수명 주기 규칙에 따라 객체가 다른 스토리지 클래스로 전환될 때마다 Amazon S3는 해당 전환을 하나의 전환 요청으로 간주합니다. 이러한 전환 요청에 대한 비용은 이러한 스토리지 클래스의 비용에 추가됩니다. 많은 수의 객체를 전환하려는 경우 낮은 계층으로 전환할 때 요청 요금을 고려해야 합니다. 자세한 내용은 Amazon S3 요금을 참조하십시오.

버킷 정책을 업데이트했지만 만료된 수명 주기 규칙으로 인해 S3 객체가 여전히 삭제되고 있습니다.

버킷 정책의 Deny 명령문은 수명 주기 규칙에 정의된 객체의 만료를 방지하지 않습니다. 수명 주기 작업(예: 전환 또는 만료)은 S3 DeleteObject 작업을 사용하지 않습니다. 대신 S3 수명 주기 작업은 내부 S3 엔드포인트를 사용하여 수행됩니다. (자세한 내용은 수명 주기 및 로깅을 참조하세요.)

수명 주기 규칙이 작업을 수행하지 못하도록 하려면 규칙을 편집, 삭제 또는 비활성화해야 합니다.

S3 수명 주기 규칙으로 인해 만료된 S3 객체를 복구할 수 있나요?

S3 수명 주기에 의해 만료된 객체를 복구하는 유일한 방법은 버전 관리를 사용하는 것인데, 객체가 만료 대상이 되기 전에 버전 관리를 적용해야 합니다. 수명 주기 규칙으로 인해 수행된 만료 작업은 취소할 수 없습니다. 설정된 S3 수명 주기 규칙에 따라 객체가 영구적으로 삭제된 경우 해당 객체를 복구할 수 없습니다. 버킷의 버전 관리를 활성화하려면 S3 버전 관리로 여러 버전의 객체 유지 섹션을 참조하세요.

버킷에 버전 관리를 적용했는데 객체의 비최신 버전이 여전히 그대로 있는 경우 만료된 객체의 이전 버전을 복원할 수 있습니다. S3 수명 주기 규칙 작업의 동작 및 버전 관리 상태에 대한 자세한 내용은 수명 주기 작업을 설명할 요소수명 주기 작업 및 버킷의 버전 관리 상태 표를 참조하세요.

참고

S3 버킷이 AWS 백업 또는 S3 복제로 보호되는 경우 이러한 기능을 사용하여 만료된 객체를 복구할 수도 있습니다.

만료 및 전환 수명 주기 작업이 발생하지 않는 이유는 무엇입니까?

버전 관리를 사용하거나 버전 관리가 일시 중지된 버킷의 경우, Amazon S3가 만료 작업을 처리하는 방식에 대한 몇 가지 고려 사항이 있습니다.

  • 객체 만료가 객체의 현재 버전에만 적용됩니다(비최신 객체 버전에 영향이 없음).

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

  • Amazon S3는 S3 Object Lock이 적용된 비최신 버전의 객체에 대해서는 어떠한 조치도 취하지 않습니다.

  • 복제 상태가 PENDING인 객체의 경우 Amazon S3는 최신 또는 비최신 버전의 객체에 대해 어떠한 조치도 취하지 않습니다.

수명 주기 스토리지 클래스 전환에는 다음과 같은 제약이 있습니다.

  • 기본적으로 128KB 미만의 객체는 어떤 스토리지 클래스로도 전환되지 않습니다.

  • 객체를 S3 Standard-IA 또는 S3 One Zone-IA로 전환하기 전에 최소 30일 동안 저장해야 합니다.

  • 버전 관리를 사용하거나 버전 관리가 일시 중지된 버킷의 경우, 복제 상태가 PENDING인 객체를 전환할 수 없습니다.

수명 주기 규칙에서 접두사를 제외하려면 어떻게 해야 하나요?

S3 수명 주기는 규칙에서 접두사를 제외하는 것을 지원하지 않습니다. 대신 태그를 사용하여 규칙에 포함하려는 모든 객체에 태그를 지정합니다. 수명 주기 규칙에서 태그 사용에 대한 자세한 내용은 생성 후 1일 이내에 모든 객체 아카이브 섹션을 참조하세요.

수명 주기 규칙에 여러 접두사를 포함하려면 어떻게 해야 하나요?

S3 수명 주기는 규칙에 여러 접두사를 포함하는 것을 지원하지 않습니다. 대신 태그를 사용하여 규칙에 포함하려는 모든 객체에 태그를 지정합니다. 수명 주기 규칙에서 태그 사용에 대한 자세한 내용은 생성 후 1일 이내에 모든 객체 아카이브 섹션을 참조하세요.

하지만 동일한 문자로 시작하는 접두사가 하나 이상 있는 경우 필터에 후행 슬래시(/)가 없는 부분 접두사를 지정하여 규칙에 해당 접두사를 모두 포함할 수 있습니다. 예를 들어, 다음과 같은 접두사가 있다고 가정해 보세요.

sales1999/ sales2000/ sales2001/

규칙에 세 접두사를 모두 포함하려면 수명 주기 규칙에 <Prefix>sales</Prefix>를 지정합니다.