S3
Simple Storage Service,
말 그대로 Cloud 에서 사용하는 가상의 스토리지이다.
AWS의 서비스인 만큼 사용하는 용량에 따라 요금을 지불해야하는데,
어느 스토리지 클래스를 사용하느냐에 따라 지불할 요금이 달라진다.
S3 스토리지는 일반적으로 어떤 종류의 데이터를 관리하는지,
그리고 얼마나 자주 그 데이터에 접근해야 하는지에 따라서 분류된다.
Standard | Intelligent Tiering | Standard-IA | One Zone _IA | Glacier |
---|
S3 - Standard ( S3 Default )
가장 보편적으로 사용되는 스토리지 타입이며,
가장 일반적인 요금제를 가지는 Standard
S3 - Intelligent Tiering ( 지능형 계층화 )
머신러닝을 통해서 자동으로 파일의 티어(클래스)를 변경하는 서비스
예를들어,
최근에 파일을 사람들이 자주 접근하면 스탠다드에 옮기고
접근 빈도가 낮으면 IA로 옮기고
다시 많이 찾게되면 스탠다드에 옮기는 형식
퍼포먼스 손해 오버헤드가 없으며 관리비도 그렇게 많이 들지 않음
S3 - Standard IA ( Infrequent Access / 스탠다드 IA )
자주 접근되지는 않으나 접근 시 빠른 접근이 요구되는 파일이 많을 시
저렴한 가격에 IA에 보관하면 유용.
일반 S3에 비해 비용은 저렴하나 데이터를 불러올 때 마다 추가 비용 발생
뉴스 신문 서비스를 예로 들자면,
오늘 기사는 트래픽이 많겠지만 1달 , 2달이 지나면 트래픽이 많이 줄어들 것.
그렇다고 트래픽이 계속 하향추세로 간다고 단정짓기도 애매하니,
나중에 다시금 기사가 이슈화되어
또다시 많은 트래픽이 몰릴 수 있어
언제든 많은 트래픽이 올 것을 준비하고 있어야하는 시나리오에서 최적.
즉, 사용도가 다소 낮은 경우의 요금제
일반적으로 S3에서 30일 이상 액세스가 잘 이루어지지 않았다면
자동으로 IA요금제로 전환되도록 되어있음
S3 - One Zone IA ( 단일 영역 IA )
기본적으로 IA와 같지만 하나의 AZ에만 데이터를 저장하는 클래스
덜 중요하고 자주 사용되지 않는 데이터를 저장하는데 적합.
단일영역 IA는 스탠다드 IA와 트래픽 요금은 동일하지만 저장 요금은 20% 더 저렴.
하지만 하나의 AZ에만 저장하니 만일 가용 영역에 문제가 생길 경우
데이터를 손실할 수 있다는 위험이 존재.
S3 - Glacier
이름에서 볼 수 있듯, 빙하에 데이터를 꽁꽁 얼려 보관하는 컨셉의 아카이브 서비스.
5년 전, 10년 전 데이터, 아무도 볼 것 같지도 않아 쓸모 없는데
법적인 이유 등으로 보관해야되는 데이터들을 취급하는데 사용됨.
즉, 거의 접근하지 않을 데이터를 저장할 때 유용하며 매우 저렴한 비용을 자랑
단, 데이터 접근 시 대략 분~시간 소요될 정도로 상당히 오래 걸림
그 이외에도, Glacier는 다른 스토리지 클래스와 다른 부분이 많음.
우선 아카이브의 저장 용량은 40TB로 제한되며 ( S3는 제한 X )
아카이브 생성 시 기본적으로 저장 데이터를 암호화하고
아카이브 이름은 기계 생성 ID 형식을 지님.
S3 스토리지가 여러 티어 클래스로 나뉘듯,
Glacier 스토리지도 3가지 종류를 가지고 있음.
스토리지 클래스 변경
객체 선택 → 작업 → 스토리지 클래스 편집
원하는 S3 스토리 선택 가능
썸네일 이미지를 저장하는데 필요한 최적의 스토리지 클래스는 ?
S3 - One Zone IA
자주 사용하지 않지만 빠르게 액세스 해야 하는 데이터
Standard 대비 22% 저렴
주로 데이터를 2차적으로 백업하거나 재생성하는 데에 사용함 ( Resized Image )
S3 객체의 생명 주기
새로운 버전 파일은 ~ 하고 예전 버전 파일은 삭제해줘
ex)
1. 30일이 지난 후 삭제
2. 30일이 지난 후 Glacier로 옮기기
S3 수명 주기 작업
# 전환 작업
a. 객체가 다른 스토리지 클래스로 전환할 시기를 정의
b. 예를 들어, 생성 후 30일이 지나면 객체를 S3 Standard-IA 스토리지 클래스로 전환하거나
생성 후 1년이 지나면 객체를 S3 Glacier 스토리지 클래스에 아카이브 하도록
# 만료 작업
a. 객체가 만료되는 시기를 정의
b. Amazon S3는 만료된 객체를 자동으로 삭제
c. 수명 주기 만료 비용은 선택한 객체 만료 시점에 따라 달라짐
스토리지 클래스 간에 객체의 이전 버전 이동
객체의 이전 버전들을 다른 스토리지 클래스로 이동시킴
버전 관리가 활성화 된 상태에서, 이 옵션은 오래된 객체 버전을 더 저렴한 스토리지로 옮겨 저장.
이전버전?
버킷을 생성할 때 버전 관리를 활성화 시키면 사용자가 실수로 데이터를 삭제해도
버킷의 저장 데이터들은 버전별로 저장되기 때문에 복구 가능,
그래서 데이터를 수정하거나 작업을 하면 새로운 버전이 생기고
여러 개의 이전 버전들이 생겨남
만료된 삭제 마커 또는 완료되지 않은 멀티파트 업로드 삭제
이 설정은 두 가지 경우에 사용됨
만료된 삭제 마커
완료되지 않은 멀티 파트 업로드
S3 생명 주기를 사용해야 하는 경우
1. 버킷에 주기적으로 로그를 업로드 하는 경우
a. 일정 기간 동안에 필요하긴 하지만 , 그 이후에 삭제해도 상관없을 경우
2. 특정 기간 동안만 자주 액세스하는 문서
a. 일부 문서는 특정 기간 동안에만 자주 액세스 되고,
그 이후에 거의 액세스가 필요 없을 경우
3. 보관 목적의 데이터
a. 어떤 유형의 데이터는 주로 보관 목적으로 Amazon S3 업로드
b. 예를 들어, 디지털 미디어, 금융 및 의료 기록 등
가공되지 않은 데이터, 장기 보존 목적의 DB 백업 파일 등의 데이터
Sequence
이미지를 업로드
1. 30일 경과
2. 이전 버전으로 이미지를 옮기기
3. 이전 버전의 이미지를 하루 뒤 삭제
객체의 현재 버전 만료 → 이전 버전으로 이미지를 넘김
객체의 이전 버전 영구 삭제 → 이전 버전으로 넘어간 이미지를 삭제
업로드 된 이후 30일 뒤 이전 버전으로 이미지 넘김
이전 버전으로 넘어간 이미지는 하루 뒤 삭제
규칙을 생성하기 이전,
객체의 생명 주기 State를 다시 한번 확인