AWS의 Versioning에 대해서 공부해봤다.
S3에 저장 된 파일들의 Version을 설정하는 것이다.
AWS의 Version은 Bucket level 로 설정이 가능하다.
S3 버전 관리를 사용하면 Bucket에 저장된 모든 버전의 객체를 모두 보존, 검색 및 복원이 가능하다.
버전을 설정하는 방법은 AWS Console에서 '속성 > 버킷 버전 관리' 을 활성화 하면 버전 관리가 가능하다.
참고로 버전 설정 이전에 존재하던 파일들은 version정보에 'null' 값이 들어가게된다.
아래와 깉이 파일을 PUT 하게 되면 새로운 버전이 생성된다.
(현재 객체를 수정하는 일부 작업에서는 새 객체에 PUT 작업을 수행하지 않으므로 새 버전이 생성되지 않는다)
아래와 같이 파일을 DELETE 하면 실제 파일이 삭제되는 것이 아니라 'Delete Marker' 를 삽입하게 된다.
이전의 모든 버전도 유지되며 특정 버전의 객체에 접근도 가능하다.
s3에 저장 된 object들을 관리하기 위해서 lifecycle을 통해 비용 효율적으로 관리할 수 있다.
2가지 유형으로 Lifecycle 관리가 가능하다
1) Trnasaction actions
2) Expiration actions
Lifecycle을 설정하는 방법은 AWS Console에서 '관리 > 수명 주기 규칙' 을 통해 Lifecycle 관리가 가능하다
아래와 같이 Lifecycle의 규칙을 추가 가능하다.
주기에 대한 데이터를 lineage로 표현해주니 보기도 쉽다.
HDFS을 사용하다 보면 데이터가 계속 linear 하게 증가하기 때문에 데이터 저장소에 대한 관리가 필요하다.
주기적으로 데이터를 삭제, 데이터 압축, 데이터 파일 수 조정 등 데이터 저장소 관리를 위한 운영포인트 들이 들어간다.
이런 부분들을 AWS S3에서 간단한 설정을 통해 운영할 수 있으니 굉장히 효율적이라고 생각한다.
어떤 데이터들을 cold storage로 보내고 어떤 데이터에들을 hot storage로 보내는 비즈니스 로직에만 집중할 수 있을 것 같다.
versioning에 대한 정보도 굉장히 powerful하다고 생각한다. 파일명이나 버전관리를 위한 다른 기술을 사용하는 것이 아닌 AWS S3 자체에서 버전에 대한 솔루션을 제공하니 잘 활용한다면 효율적인 구현이 가능해보인다.
더 자세한 내용들은 아내 공식 문서가 있으니 공부할때 참고하면 좋을 것 같다.
https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html
Managing your storage lifecycle - Amazon Simple Storage Service
You can't use a bucket policy to prevent deletions or transitions by an S3 Lifecycle rule. For example, even if your bucket policy denies all actions for all principals, your S3 Lifecycle configuration still functions as normal.
docs.aws.amazon.com
AWS S3 Object Lambda 공부하기 (1) | 2024.08.18 |
---|---|
AWS EBS, AWS EFS 공부하기 (feat. S3) (2) | 2024.08.18 |
AWS S3 Storage Class (0) | 2024.08.18 |
AWS S3 vs HDFS (4) | 2024.08.17 |
Amazon S3 개념 (AWS S3) (3) | 2024.08.17 |