S3 - Amazon Simple Storage Service

호돌·2021년 8월 19일
0

AWS

목록 보기
2/5

🙋‍♀️Amazon Simple Storage Service?


S3는 AWS의 대표적인 서비스로 객체 스토리지입니다.

파일 업로드와 다운로드, 검색이 가능하고 무제한 용량이 특징입니다.

또한 다양한 인증과 권환을 부여하고 제공하고 있습니다.

버킷
객체(파일)을 저장하기 위한 최상위 컨테이너
버킷의 이름은 전 세계에 유일하게 지정해야 한다.(중복 불가)
오브젝트 : 버킷은 오브젝트 저장소라고 하는데 일반적으로 오브젝트 = 파일이다.
S3 버킷의 모든 오브젝트들은 고유한 URL을 가진다.

👍 S3의 특징

  • 리전 기반 서비스
  • 매우 안전 - 99.999%의 내구도(파일이 손상되거나 깨지지 않음)를 가짐
  • 상대적으로 빠르지는 않다.
  • CDN과 연동 가능
  • static web page 기능 지원
  • 필요에 따라 버저닝(versioning) 기능 사용 가능
  • 다양한 요금 옵션으로 비용 절감 가능

key, Vesion, Prefix

key : 버킷만의 오브젝트를 식별하는 데 사용
Vesion : versioning
Prefix : 버킷 안에 폴더를 생성할 수 있는데 폴더는 사실 키의 접두사(prefix)이다.

s3에는 폴더 개념은 없다.

https://battleq.s3.ap-northeast-2.amazonaws.com/test/dance.gif

  • 버킷 이름 : battleq
  • preifx(폴더) : test ,파일 명 : dance.gif
  • key : test/dance.gif

💾 사용예

  • 클라우드 저장소 (개인 파일 보관, 구글 드라이브처럼 사용 가능)
  • 서비스의 대용량 파일 저장소 - 이미지, 동영상, 빅데이터 (ex: 넷플릭스)
  • 서비스 로그 저장 및 분석
  • AWS 아데나를 이용한 빅데이터 업로드 및 분석
  • 서비스 사용자의 데이터 업로드 서버 (이미지 서버, 동영상 서버)
  • 중요한 파일은 EC2의 SSD (EBS)에 저장하지 말고 S3에 저장하자
  • glacier와의 연동으로 비용 절감 및 규정 준수 가능

S3에서 권한을 제어 하는 법

  1. ACL (Access Control List) : 객체마다 ACL 지정 가능, 주로 간단한 제어에 사용

  2. Buket Policy : IAM Policy와 유사한 문법, ACL보다 복잡하고 세부적으로 지정 가능

  3. IAM을 이용한 제어 : IAM 사용자에게 버킷 접근 권한을 주기 위해 사용

  4. PresignedURL : URL을 이용해 임시 권한을 부여하는 기능, 매우 유용함

퍼블릭으로 권한 설정하기

객체를 퍼블릭으로 공개하여도 버킷 자체의 엑세스가 열려있지 않으면 퍼블릭으로 권한이 변경되지 않는다.

버킷의 엑세스를 해제해주고 객체를 퍼블릭으로 변환할 수 있다.

ACL을 이용한 권한 제어 (개별 파일에 유용)

Bucket Policy를 이용한 권한 제어 (폴더의 전체 파일에 유용)

하위 파일을 모두 퍼블릭으로 만들기 위해 버킷 정책 편집창으로 이동합니다.

Type에 S3 Bucket Policy 선택
Effect는 Allow 허용해줍니다.
Principal * 모든 루트에 허용
Action GetObject 오브젝트 퍼블릭
ARN {자신의 버킷 ARN}


Multipart upload

  • CLI 또는 SDK 사용시 : 단일 PUT 사용으로 5GB까지 업로드 가능
  • 관리 콘솔 : 160GB 제한
  • multipart upload : CLI 또는 SDK 사용 가능, 최대 5TB까지 가능

S3 요금?

저장비용, API 요청비용, 수명 비용 등에서 각 스토리지 클래스에 차이가 있다.

  • 프리티어 사용중이라도 요금이 부과될 수 있다!
  • 비용 알람 설정 필수
  • 스토리지 클래스와 라이프 사이클 쓰면 비용을 절감할 수 있다.

라이프 사이클

파일 생성 후 라이프 사이클 규칙을 지정하고 수명 관리가 가능합니다.
비용 절감 및 규정 준수(Compliance)에 유효하게 사용함
로그 파일 관리, 민감 정보 보관 및 폐기 등에 유용함

ex) 로그 파일 수명 관리

  • 최초 생성 30일 후 oneaone_IA로 지정
  • 이후 30일 지나면 glacier로 이동 (열람 횟수가 줄어들기 때문)
  • 6개월 지나면 삭제

Versioning(버전관리)

  • 버킷 속성에서 버전 관리를 활성화하면 쉽게 사용가능
  • 변경 내용을 추적할 수 있으므로 매우 편리
  • 비용에 조심하자
  • 활성화하면 라이프 사이클 관리 기능이 다소 복잡해진다.

Eventual Consistency

  • 강력한 쓰기 후 읽기 일관성 제공
  • 이전에는 Eventual Consistencty 였는데 개선 됨
profile
저도 모르는데요?, 내가 몰라서 적는 글

0개의 댓글