S3는 AWS의 대표적인 서비스로 객체 스토리지입니다.
파일 업로드와 다운로드, 검색이 가능하고 무제한 용량이 특징입니다.
또한 다양한 인증과 권환을 부여하고 제공하고 있습니다.
버킷
객체(파일)을 저장하기 위한 최상위 컨테이너
버킷의 이름은 전 세계에 유일하게 지정해야 한다.(중복 불가)
오브젝트 : 버킷은 오브젝트 저장소라고 하는데 일반적으로 오브젝트 = 파일이다.
S3 버킷의 모든 오브젝트들은 고유한 URL을 가진다.
key : 버킷만의 오브젝트를 식별하는 데 사용
Vesion : versioning
Prefix : 버킷 안에 폴더를 생성할 수 있는데 폴더는 사실 키의 접두사(prefix)이다.
s3에는 폴더 개념은 없다.
https://battleq.s3.ap-northeast-2.amazonaws.com/test/dance.gif
ACL (Access Control List) : 객체마다 ACL 지정 가능, 주로 간단한 제어에 사용
Buket Policy : IAM Policy와 유사한 문법, ACL보다 복잡하고 세부적으로 지정 가능
IAM을 이용한 제어 : IAM 사용자에게 버킷 접근 권한을 주기 위해 사용
PresignedURL : URL을 이용해 임시 권한을 부여하는 기능, 매우 유용함
객체를 퍼블릭으로 공개하여도 버킷 자체의 엑세스가 열려있지 않으면 퍼블릭으로 권한이 변경되지 않는다.
버킷의 엑세스를 해제해주고 객체를 퍼블릭으로 변환할 수 있다.
ACL을 이용한 권한 제어 (개별 파일에 유용)
Bucket Policy를 이용한 권한 제어 (폴더의 전체 파일에 유용)
하위 파일을 모두 퍼블릭으로 만들기 위해 버킷 정책 편집창으로 이동합니다.
Type에 S3 Bucket Policy
선택
Effect는 Allow
허용해줍니다.
Principal *
모든 루트에 허용
Action GetObject
오브젝트 퍼블릭
ARN {자신의 버킷 ARN}
저장비용, API 요청비용, 수명 비용 등에서 각 스토리지 클래스에 차이가 있다.
파일 생성 후 라이프 사이클 규칙을 지정하고 수명 관리가 가능합니다.
비용 절감 및 규정 준수(Compliance)에 유효하게 사용함
로그 파일 관리, 민감 정보 보관 및 폐기 등에 유용함
ex) 로그 파일 수명 관리