S3 (Simple Storage Service)
AWS S3란 AWS에서 제공하는 객체 스토리지 서비스이다. 설명에 의하면 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공한다고 한다. 분석 데이터, 로그 데이터, 앱 데이터, 비디오 및 그림 등의 데이터를 S3에 쉽게 저장할 수 있다.
AWS S3에는 단순히 데이터를 저장하는 서비스다. 이와 다른 저장 서비스로 EBS(Block storage Service)가 있다. EBS에서는 하드와 같이 프로그램을 저장하고 프로그램을 구동시킬 수 있다.
S3의 특징
- 저장 용량이 무한대이고, 파일 저장에 최적화되어 있다.
- S3 자체가 수천 대 이상의 매우 성능이 좋은 웹 서버로 구성되어 있어서 EC2와 EBS로 구축했을 때 처럼 Auto Scaling이나 Load Balancing에 신경쓰지 않아도 된다.
- HTTP/HTTPS API로 S3에 파일 업로드/다운로드가 가능하다.
- S3 자체로 정적 웹 서비스가 가능하다. (html 파일을 저장해고 GET 메서드로 가져올 수 있다.)
S3 버킷, 객체
S3에는 버킷(Bucket)과 객체(Object)라는 개념이 있다. 버킷은 객체를 저장하고 관리하는 컨테이너이며 객체는 데이터를 뜻한다.
버킷(Bucket)
- 객체를 저장하고 관리하는 컨테이너
- S3상의 모든 객체는 버킷에 포함된다.
- 버킷의 이름은 S3에서 유일해야한다.
- 한 계정 당 버킷은 최대 100개까지 사용 가능
- 버킷 단위로 접근 제한이 설정 가능
객체(Object)
- S3에서 저장되는 데이터를 모두 객체라고 한다.
- 객체는 Key, Value, Version ID, Metadata, CORS와 같은 다양한 구성요소가 존재한다.
- Key : 버킷 내 객체를 식별할 수 있는 식별자이다. 파일명이 키가 되며 슬래시를 사용해 폴더 구조와 같이 사용할 수 있다.
- Value : 데이터