AWS에 여러가지 저장소(Storage) 서비스가 존재한다.
블록스토리지는 파일 시스템을 적용하기전 스토리지이다. SAN 스토리지 영역 네트워크와 유사하며 주로 대기 시간이 짧은 전용 스토리지가 필요한 경우 사용하게 된다.
파일스토리지는 말 그래로 파일 시스템이 존재하는 스토리지이며 NAS라고도 한다. 디렉토리를 공유하거나 저장하기도 한다.
객체스토리지는 조금 생소한 표현일 수 도있다. 블록스토리지나 파일스토리지는 많이 들어봤는데 객체스토리지는 처음 들어봐 당황했던적이 있다. 객체를 저장하는 스토리지로 대용량의 비정형 데이터를 저장하기에 적합하다. 또한 메타데이터를 들고 있으며 이러한 데이터를 통해 데이터를 찾을 수 있다. 또한 큰 특징으로 수평적으로 저장이 된다는 점이다.
이번에는 많은 스토리지 서비스중에서도 객체스토리지인 S3를 알아보겠다.
S3는 객체 수준 스토리지 즉 파일 데이터, 메타 데이터, 고유 식별자가 포함된 스토리지이다. 다른 서비스와 비슷하듯이 비용 절감, 보안강화, 빠른 속도 등 많은 이점들을 제공한다.
S3는 다양한 곳에서 사용된다.

S3에서는 모든 데이터가 버킷에 객체로 저장된다. 객체는 모든 메타데이터로 구성된다. 버킷은 계정당 100개의 버킷을 보유할 수 있다.
기본적으로 모든 S3 리소스는 프라이빗으로 설정된다. 따라서 사용자만 해당 리소스에 액세스할 수 있다. 또한 정책을 수정하여 다른 사용자에게 액세스 권한을 부여할 수 있다. 퍼블릭으로 설정하면 누구나 해당 리소스에 액세스가 가능하여 보안에 취약해질 수 있다.
S3에서 데이터를 암호화하기 위해 다양한 암호화 키를 제공한다.
EC2에도 여러 유형이 있듯이 S3에도 유형이 있다. 
S3의 데이터 액세스 패턴이 변경 될 때 자동으로 스토리지 비용을 절감할 수 있는 스토리지 등급이다. 주로 사용 패턴이 불규칙한 경우 스토리지 비용을 줄일 수 있다.
먼저 S3 Intellingent-Tiering 에 객체를 할당하면 Frequent Access 티어에 배치된다. 이 티어의 스토리지 비용은 S3 Standard와 동일하다. 30일 동안 액세스하지 않으면 Infrequent Access 티어로 이동한다. 이 티어는 Standard-IA와 동일하다. 90일 동안 액세스하지 않은 객체는 Archive Instant Access 티어로 이동한다. 이 티어는 S3 Glacier Instant Retrieval 과 동일하다.
S3의 버전을 관리하는 버킷에서는 객체를 실수로 삭제하거나 덮어쓴 객체를 복구할 수 있다. S3에서 객체를 삭제하게 되면 영구적으로 제거되지 않으며 삭제 마커가 삽입된다. 그러면 해당 객체가 현재 객체 버전이 된다. 또한 객체를 덮어쓰면 버킷에 새 객체 버전이 생성된다.
객체를 보호하기 위해 잠슴을 사용할 수 있는데 WORM(Write Once, Read Many) 모델을 객체를 실수로 삭제하거나 덮어쓰는 일을 방지할 수 있다.
S3 수명 주기 정책은 객체 생성 후 기간을 기준으로 객체를 기간후에 삭제 또는 이동할 수 있다. 이런 객체의 수명 주기를 자동화하여 데이터가 주기적으로 순환하도록 할 수 있다.
이러한 방식을 통해 중요도가 낮은 데이터를 정리할 수 있고 비용을 줄일 수 있어 많은 도움이된다.
S3의 모든 스토리지 등급에 저장된 데이터는 최소 3개의 가용 영역에 걸쳐 저장된다. 하지만 OneZone-IA는 단일 영역에 저장된다.
복제시 다음과 같은 태스크를 수행가능하다.
그외에도 여러가지 기능을 지원한다
멀티파트 업로드를 사용하면 대용량 객체를 관리 가능한 파트로 분활하여 일관되게 업로드가 가능함
주요 장점으로는 병렬로 처리하여 빠른 처리량을 기대할 수 있다. 또한 빠른복구, 객체 업로드 일시중지 및 대용량 객체 업로드등 많은 장점을 가지고 있다.
엣지 로케이션을 사용하여 버킷으로 데이터를 빠르게 쉽게 전송이 가능하다.
여기서 엣지 로케이션이란?
AWS 서비스 요청자에 가장 가까이 있는 지점이다. 만약 요청자 위치가 서울이라면 서울에 위치해있는 가장 가까운 AWS 데이터센터를 말하게된다. 엣지 로케이션은 전 세계 주요 도시에 있다. 또한 엣지 로케이션은 요청을 수신하고 더 빠른 전송을 위해 콘텐츠 사본을 캐시한다. CDN 서비스라고 보면 될거같다.
S3 Transfer Acceleration에서는 서버와 클라이언트 애플리케이션 간 거리를 줄일 수 있다. 또한 엣지 로케이션을 사용하는것 만큼 수백 개의 엣지 로케이션 네트워크를 통해 빠른 연결이 가능함.
S3 이벤트 알림을 사용하여 버킷에서 특정 객체 이벤트가 발생될 때 알림을 받을 수 있다. 주로 AWS SNS, AWS SQS, Lambda 와 같이 사용한다.