요약

  • 현재 S3 Lifecycle의 기본 동작은 128 KB 미만 객체를 어떤 스토리지 클래스로도 전환하지 않는다. 2024년 9월 이전 기본값은 이 객체의 S3 Glacier Flexible Retrieval 또는 Deep Archive 이동을 허용했다.
  • 당시 만든 설정은 수정 전까지 옛 동작을 유지한다. 규칙을 만들거나 편집하거나 삭제하면 새 기본값이 적용되며, 이전 동작을 명시하거나 사용자 지정 크기 필터를 쓰면 결과를 바꿀 수 있다.

저장 완료 버튼 뒤에 숨은 문턱

팀이 오래된 버킷의 Lifecycle 규칙에서 날짜 하나를 고친다. 변경은 성공했다. 하지만 AWS 문서에 따르면 2024년 9월 이전에 만든 설정의 규칙을 바꾸면 작은 객체의 기본 전환 기준도 새 방식으로 바뀐다. 옛 기준 아래 Glacier Flexible Retrieval이나 Deep Archive로 보내던 128 KB 미만 객체는 별도 지정이 없으면 현재 클래스에 남는다.

예전 기본값도 작은 객체가 무조건 옮겨진다는 뜻은 아니었다. 규칙의 나이, 경로 등 다른 조건을 충족해야 했다. 지금 달라지는 것은 전환 자격이다. 객체가 삭제되는 이야기가 아니다. 아카이브 예산이 작년의 클래스 이동량을 그대로 가정한다면, 규칙 편집 뒤에는 그 숫자부터 다시 봐야 한다.

AWS가 문턱을 만든 이유는 요청 비용이다. 객체마다 전환 요청 요금이 붙고, 작은 객체에서는 그 비용이 저장료 절감보다 클 수 있다. Glacier Flexible Retrieval과 Deep Archive로 보관하면 객체당 청구 대상 메타데이터 40 KB도 생긴다. 8 KB는 S3 Standard 요금, 32 KB는 보관 클래스 요금으로 계산된다. 플랫폼의 기본값은 흔한 손해를 줄이지만 개별 버킷의 손익표를 대신 만들지는 않는다.

운영자는 크기 필터로 작은 객체를 전환 대상으로 지정할 수 있고, 사용자 지정 필터는 기본값보다 우선한다. 범용 버킷의 Lifecycle API는 과거의 클래스별 기준과 현재의 전체 클래스 128 KB 기준 중 하나를 택하게 한다. 선택하려면 객체 수와 크기, 전환 요청, 보관 기간과 복원 수요를 함께 계산해야 한다. 실제 고객 청구서가 없는 상태에서 절감액을 단정할 수는 없다.

출처