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 스토리지 클래스로 전환하지 않습니다.

수명 주기 규칙이 활성 상태인지 확인하기 위해 진행 상황을 모니터링하려면 어떻게 해야 하나요?

활성 수명 주기 규칙의 진행 상황을 보거나 활성 수명 주기 규칙으로 인한 변경 사항을 모니터링하려면 스토리지 렌즈 대시보드를 사용하세요. 대시보드에서 객체 개수 또는 크기를 모니터링하는 다음 지표를 볼 수 있습니다.

  • 최신 버전 바이트

  • 최신 버전 객체 수

  • 비최신 버전 바이트

  • 비최신 버전 객체 수

  • 삭제 마커 객체 수

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

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

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

다음 기능을 사용하여 수명 주기 규칙을 모니터링할 수도 있습니다.

  • Amazon S3 인벤토리 - S3 인벤토리를 사용하여 감사 목적으로 Amazon S3 버킷(CSV 형식), Apache 최적화 행 열(ORC) 또는 Apache Parquet 형식에 대한 접두사 또는 객체 목록을 생성할 수 있습니다. 사용 사례에 따라 Amazon Athena를 사용하여 표준 SQL에서 S3 인벤토리를 쿼리할 수도 있습니다.

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

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

버전 관리를 사용하는 버킷에 수명 주기 규칙을 설정한 후에도 S3 객체 수가 계속 증가합니다.

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

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

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

참고
  • Amazon S3는 객체의 전환 또는 만료 날짜를 다음 날 자정(UTC)으로 반올림합니다. 자세한 내용은 수명 주기 규칙: 객체 기간 기반을 참조하세요.

  • 객체 잠금으로 보호되는 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 복제로 보호되는 경우 이러한 기능을 사용하여 만료된 객체를 복구할 수도 있습니다.