S3(Simple Storage Service)는 객체 스토리지 서비스로 버킷(Bucket)으로 구분된 단위에 파일(Object)를 저장할 수 있는 서비스이다.
S3는 파일(Object)을 버킷(Bucket)이라는 곳에 모아서 저장한다.
소문자, 숫자, '-'
로 3-63 글자로 설정할 수 있다.S3에 저장되는 파일을 의미한다. Object는 정확한 파일을 가리킬 수 있도록 Key를 가진다. 이 Key는 경로(Prefix)와 파일 이름(Object name)으로 구성된다.
ex) s3://buekct-name/path1/path2/object.txt
S3는 목적에 맞게 사용할 수 있도록, 다음과 같이 성능, 검색 비용, 저장 비용 등이 구분된 Storage class를 가지고 있으며, 파일(Object) 별로 적용된다.
S3 Standard(General Purpose)는 검색(조회) 비용이 저렴하여 자주 접근되는 파일을 저장할 때 용이하다. S3 standard-IA는 General Purpose와 성능은 동일하다. 대신 저장 비용이 더 저렴하고, 검색 비용은 더 비싸기 때문에 자주 접근되지 않는 데이터를 저장하는데 적합하다.
S3 Glacier는 저장 비용이 저렴하고, 검색 비용이 비싸기 때문에 거의 액세스 되지 않는 파일에 적합하다. 이 중에 S3 Glacier Instant Retrieval은 S3 Standard와 동일한 성능을 제공하지만,
S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive는 바로 접근할 수 없다. 접근하려면 복원 작업(클래스 변경)이 필요하다.
S3 One Zone은 3개의 가용 영역을 사용하는 다른 클래스와 달리 하나의 가용 영역만 사용하기 때문에 내구성/가용성이 떨어진다. 대신 저장 비용이 더 저렴하다.
자세한 성능 및 가격은 Amazon S3 스토리지 클래스을 참고하자
S3 Lifecycle Configuration을 활용하면 시간의 흐름에 따라 파일(Object)의 Storage class를 변경할 수 있다. 서버의 로그를 S3에 저장한다고 하자. 로그가 처음 한 달 동안만 자주 접근되고, 6개월 정도 지나면 거의 접근되지 않는다고 한다면 다음과 같이 설정할 수 있다.