1. S3 개념
- 데이터를 온라인에서 객체 형태로 저장하는 서비스이다. 데이터 조작에 HTTP/HTTPS를 통한 API가 사용되며 elastic한 성질때문에 별도의 스토리지 확장, 축소에 신경쓰지 않아도 된다.
2. 특징
- S3 내에서 파일을 설치하는 행위는 할수는 없고, 그냥 이미지나 동영상 파일 등만을 저장할 수 있다. 즉, 파일 업로드, 삭제, 업데이트만 가능하지, 프로그램을 설치해서 저장하는 기능은 없다고 보면 된다.
- 웹하드 서비스와 비슷하지만, 별도의 클라이언트 설치나 ActiveX를 통하지 않고, HTTP 프로토콜(restful)로 파일 업로드/다운로드 처리가 가능하다.
- S3 자체로 정적 웹서비스 가능 (html 파일을 스토리지에 저장하고, html 파일에 접근하면 그게 홈페이지)
- 동적 웹페이지와 정적 웹페이지가 섞여있을 때 동적 웹페이지만 EC2에서 서비스하고 정적 웹페이지는 S3를 이용하면 성능도 높이고 비용도 절감할 수 있다.
3. S3 버킷 / 객체 개념
- 객체(Object)는 데이터와 메타데이터를 구성하고 있는 저장 단위이며 버킷(Bucket)은 이러한 객체를 저장하고 관리하는 역할을 한다. S3에 저장되는 데이터는 모두 객체라고 부른다.
- S3을 구성할때, 버킷(Bucket)이라는 컨테이너를 놓을 리전을 선택하고, 해당 컨테이너 내부에 객체(Object)라는 형태로 데이터를 저장하는 형태로 스토리지를 구축한다.
- 버킷 위치(리전)을 어디에 지정하냐에 따라 지연 시간, 비용 등이 결정되게 되며, 리전 간 객체 공유는 불가능하다.
3-1 S3 버킷(bucket) 구성
- Amazon S3에서 생성되는 최상위의 디렉토리이며, Amazon S3에 저장된 객체의 컨테이너 이다.
- S3상의 모든 객체는 버킷에 포함된다.
- 버킷의 이름은 S3에서 유일해야 한다.게임 아이디같이 중복될수가 없다. 즉, 전세계에 어디에도 중복된 이름이 존재 할 수 가 없다.
- 한 계정 당 최대 100개의 버킷 사용 가능.
- 버킷 주소는 https://bucketname.s3.Region.amazonaws.com 형태로 이루어진다.
버킷을 생성하면 default로 private상태이다.
- 버킷 소유권은 이전할 수 없다.
- 버킷 안에 다른 버킷을 둘 수 없다.
3-2 S3 객체(Object) 특징
- 객체 하나의 크기는 1Byte ~ 5TB
- 저장 가능한 객체 갯수 무제한
- 객체마다 각각의 접근 권한 설정 가능
- 객체 metadata는 객체가 업로드 된 후에는 수정될 수 없고, 복사해서 수정해야 한다.
- 객체의 metadata는 response header에 반환된다.
- 객체를 그룹화하는 디렉터리를 생성할 수 있다. 따라서 폴더, 파일 처럼 디렉터리를 계층화해서 객체를 저장할 수도 있다.
-출처
[AWS] 📚 S3 개념 & 버킷 · 권한 설정 방법