AWS/S3

[ S3 ] S3 수명 주기 규칙 설정 (Lifecycle)

BigCo 2023. 8. 31. 15:52

 

안녕하세요 :)

오늘은 S3 수명 주기 규칙 설정에 대해서 실습을 진행하겠습니다.

 

수명 주기 관리 (Lifecycle)

수명 주기(Lifecycle) 기능은 데이터를 자동으로 다른 스토리지 클래스로 이동하거나, 지정된 기간이 지나면 삭제하는 등의 작업을 자동화해주는 기능입니다. 이 기능을 이용하면 데이터의 수명 주기에 따라 비용을 최적화하고, 관리 부담을 줄일 수 있습니다.

수명 주기를 간단하게 설명하면 새로 생성된 파일은 ( )하고, 이전 버전의 파일은 삭제해줘 라는 스크립트라고 이해하면 됩니다.

여기서 ()안에 들어갈 수 있는 것은
1. 30일이 지난 후 삭제
2. 30일이 지난 후 S3 Standard-IA로 이동

 

 

S3 수명주기 사용하는 목적

  • 비용 절감 : 자주 사용하지 않는 데이터를 저렴한 스토리지로 자동 이동시켜 비용을 줄일 수 있습니다.
  • 자동 정리 : 오래된 또는 필요 없는 데이터를 설정한 기간 후에 자동으로 삭제하여 저장 공간을 효율적으로 관리합니다.
    -> ELB acceess log, VPC flow log등을 원하는 기간 후에 삭제

  • 데이터 관리 간소화 : 수명 주기 규칙을 설정하면, 수동으로 데이터를 관리할 필요 없이 원하는 방식대로 데이터의 저장 및 삭제를 자동화할 수 있습니다.

  • 백업 데이터: 일정 시간이 지난 백업 데이터를 Glacier나 Glacier Deep Archive로 이동하여 장기 보관 비용을 줄일 수 있습니다.

 

S3의 수명주기는 무한으로 증가되는 S3 버킷 용량을 주기적으로 정리하는데 목적이 있다.
1. 버킷에 데이터를 저장 (S3 Stadard)

2. 30일이 지난 데이터를 좀 더 저렴한 S3 Standard-IA 로 전환

3. 이후 중요한 데이터는 S3 Glacier로 전환 or 1년후 삭제

 

그림과 같이 S3 스토리지 클래스 간 전환은 폭포수형(waterfall model)을 지원한다

S3 Standard에서 Glacier로 전환이 가능하지만 반대로 Glacier에서 Standard로 전환은 불가능하다

 

 

 

S3 수명주기 설정

관리 > 수명주기 규칙 생성

 

 

[수명주기 규칙 이름]
이름 작성은 명시적으로 용도를 나타내게 작성하는게 좋습니다.
예시로 위 사진처럼 "스탠다드를 AI로 전환한다" 이런 형식으로 작성하는게 좋습니다.

[하나 이상의 필터를 사용하여 이 규칙의 범위 제한] 
해당 설정은 버킷의 특정 파일들만 규칙을 적용시키는 옵션 입니다.
버킷의 모든 객체에 적용을 선택하면 버킷의 모든 폴더들에게 옵션이 적용됩니다.

[접두사]
접두사는 적용할 폴더를 입력해 줍니다. 이 때 버킷명을 제외하고 입력해야 하고, 경로도 상세하게 입력해 줍니다.

 

[전환 작업]
현재의 스토리지 클래스에서 다른 스토리지 클래스로 데이터를 자동으로 이동시킬 수 있습니다.

예를 들어, 객체 생성 후 30일동안 액세스가 없었으면 S3 Standard-IA 스토리지 클래스로 전환하거나, 1년이상 액세스가 적거나 없었으면 S3 Glacier 스토리지 클래스로 전환을 합니다.

[만료 작업]
만료작업은 객체가 일정 기간 후에 자동으로 삭제되도록 설정하는 기능입니다.
이 기능은 특히 임시 파일, 로그, 중요하지 않은 데이터 등을 자동으로 정리하는 데 유용하게 사용됩니다

예를 들어, 30일 후에 자동으로 삭제되도록 설정한 객체는, 생성 또는 마지막 수정된 날짜로부터 30일이 지나면 자동으로 삭제됩니다.

 

[스토리지 클래스 간에 객체의 현재 버전 전환]
객체의 현재 버전을 다른 스토리지 클래스로 이동시키는 것입니다. 예를 들어, 객체를 '표준' 클래스에서 'S3 - Intelligent Tiering' 또는 'S3 - Glacier'로 이동할 수 있습니다.

[스토리지 클래스 간에 객체의 이전 버전 전환]
객체의 이전 버전들을 다른 스토리지 클래스로 이동시킵니다. 버전 관리가 활성화된 상태에서, 이 옵션은 오래된 객체 버전을 더 저렴한 스토리지로 옮겨 저장 비용을 줄이는 데 도움이 됩니다.
->이전 버전이란 버킷을 생성할 때 버전관리를 활성화 시키면 사용자가 실수로 버킷안의 데이터를 삭제해도 버킷의 저장된 데이터들은 버전별로 저장되기 때문에 복구가 가능합니다. 그래서 데이터를 수정하거나 작업을하면 새로운 버전이 생기고 여러개의 이전 버전들이 생겨납니다.

[객체의 현재 버전 만료]
설정된 기간이 지나면 객체를 삭제합니다. 예를 들어, 30일 후에 현재 버전을 삭제할 수 있습니다.

[객체의 이전 버전 영구 삭제]
이전 버전 객체를 설정된 시간 후에 자동으로 삭제합니다.  저장 공간을 효율적으로 관리하고 비용을 절감하는 데 도움이 됩니다

[만료된 삭제 마커 또는 완료되지 않은 멀티파트 업로드 삭제]
이 설정은 두 가지 경우에 사용됩니다.
만료된 삭제 마커: 버전 관리가 활성화된 상태에서 객체를 삭제하면 '삭제 마커'가 생성됩니다. 이 설정으로 그 삭제 마커를 자동으로 제거할 수 있습니다.
완료되지 않은 멀티파트 업로드: 큰 파일을 여러 부분으로 나누어 업로드하는 과정에서 완료되지 않은 멀티파트 업로드가 남을 수 있습니다. 이 설정으로 그런 데이터를 자동으로 삭제할 수 있습니다.
이러한 설정들은 S3 버킷의 데이터 관리와 관련된 비용, 성능, 그리고 사용성을 최적화하는 데 도움을 줍니다.

 

수명 주기 규칙 작업에서 [객체의 현재버전 만료], [객체의 이전버전 영구 삭제] 두가지 항목을 선택하면, 몇일 후에 삭제할 것인지를 설정할 수 있는 [객체 생성 후 경과 일수], [객체가 이전 버전이 된 후 경과 일수] 항목이 나타난다.
여기에 원하는 날짜를 각각 입력하고, [규칙 생성] 버튼을 클릭하면 된다.

S3 객체의 버저닝을 사용하는 경우
현재 버전 작업에서 30일이 지나면 객체가 만료되고 이전 버젼 작업으로 이동하게 된다.
이전 버전 작업에서는 1일 후 버킷 삭제 규칙이 적용되어있으므로 즉, 31일 후 삭제되게 된다.

 

 

이렇게 수명 주기 구성을 생성했습니다.

수명 주기 규칙으로 객체를 삭제하는 겅우 복구를 할 수 없습니다.
S3 객체의 전환 또는 만료(삭제) 날짜를 익일 자정(UTC)부터 계산하기 때문에 수명 주기의 작동 시점이 조금 늦게 동작할 수 있습니다.


감사합니다.

 

참고자료