[AWS] S3 (1)

김아름·2022년 3월 22일
0

AWS

목록 보기
22/25

Simple Storage Service ( S3 )

  • 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스

  • 어떤 규모의 어떤 산업의 고객이든 이 서비스를 사용하여 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅데이터 분석 등과 같은 다양한 사용사례에서 원하는 만큼의 데이터를 저장하고 보호할 수O

  • 특정 비즈니스, 조직 및 규정 준수 요구사항에 따라 데이터를 조직화하고 세부적인 액세스 제어를 구성할 수O

  • 99.999999999%의 내구성을 제공하도록 설계
    --> 0.000000001% 확률로 파일 잃어버릴 수O
    --> 로또 당첨확률은 0.00000012277% (S3로 파일을 잃어버릴 확률보다 큼)

  • 99.9%의 SLA 가용성 (티어에 따라 다름)

  • 전세계 기업의 수백만 애플리케이션을 위한 데이터를 저장

  • 객체 스토리지 서비스 : 동영상, 이미지 등 파일만 가능, 파일 설치는X
    <--> Block Storage Service ( EBS, EFS 등 )

  • 무제한 용량
    : 단 하나의 객체는 0byte에서 5TB의 용량

  • Bucket이라는 단위로 구분
    --> 디렉토리의 개념
    --> Bucket의 이름은 Global Unique: 전세계 어디에도 중복된 이름 존재X
    --> Web Hosting 시 도메인과 Bucket명이 같아야 함
    (만약 ar.com 이라는 웹사이트를 호스팅 하기 위해서는 그 도메인에 해당하는 ar.com이라는 Bucket이 확보되어있어야 함)

  • 버전 관리 가능

  • Static Web 호스팅 가능

  • 업로드와 업데이트 / 삭제의 데이터 일관성 모델이 다름

  • 여러 티어로 구성

  • 암호화 가능 / 보안 설정 가능

  • 다른 유저 / 다른 계정과 공유 가능

  • 다른 Region으로 복제 가능

  • 수명 주기 설정 가능

  • 삭제 방지 기능 (MFA)

  • 파일전송 Transfer Acceleration 가능

  • Athena / Macie 등의 서비스로 Query 및 검증 가능



S3 API

1. 파일관련 API (업로드, 업데이트, 삭제 등)

  • 업로드 성공시 HTTP 200 코드 반환
  • 큰 용량의 파일의 경우 Multipart Upload 가능 (개당 5GB)
  • 다운로드는 Torrent 지원

2. Bucket 관련 API (조회, 생성, 삭제 등)

3. 기타 기능 (Lifecycle, Replication 등)



S3 객체의 구성

  • Key: 파일의 이름
  • Value: 파일의 데이터
  • Version Id: 파일의 버전 아이디
  • MetaData: 파일의 정보를 담은 데이터
  • ACL: 파일의 권한을 담은 데이터
  • Torrents: 토렌트 공유를 위한 데이터



S3 버저닝

  • 모든 버전을 관리 (삭제 포함)
  • 활성화 해야함 (기본적으로 비활성화) --> 한번 활성화 시 비활성화 불가능
  • 수명주기 관리와 연동 가능
    ex) 새로운 버전 파일은 ~하고, 예전 버전 파일은 삭제해줘



S3 Static Hosting

  1. 기본적으로 파일은 두가지 웹 URL을 가지고 있음
  2. Static Web 호스팅 가능
  • 정적인 데이터를 웹서버 처럼 돌릴 수 있는 기능
  • Html / Javascript 등으로 구성된 Static(데이터가 변하지 않는) 사이트만 가능
    --> React, Vue 등
  • 호스팅 비용이 (비교적) 저렴
  • Serverless 구성의 기초
  • 동적인 데이터는 AJAX 등으로 해결 가능
  • 웹서버처럼 트래픽을 관리 할 필요X
  • 수천, 수만명 사람들에게 한꺼번에 서비스 되어도 상관 없을 정도로 견고
    ex) 이벤트 페이지나 사전등록 페이지 처럼 사람들이 한꺼번에 몰렸다가 빠지는 페이지를 웹서버로 호스팅 하면 그것에 대비하여 미리 서버를 사두거나 EC2를 늘려야 한다. 그러나 S3로 호스팅 했을 경우에는 그렇지 않음



S3 일관성 모델

  • Put (새로 생성): 쓰기 후 읽기 (Read After Write)
    --> 파일을 올리고 성공한 즉시 읽기 가능
    --> 먼저 Put한 요청이 우선권

  • Update / Delete: 최종 일관성 (Eventual Consistency)
    --> 파일을 삭제하거나 업데이트 후 일정 시간 후에 결과가 반영 됨 (1초 미만)
    --> 원자성 확보 불가능
    (원자성: 트랜잭션과 관련된 일은 모두 실행되던지 모두 실행되지 않도록 하던지를 보장하는 특성)



S3 티어



참고

profile
쿄쿄쿄

0개의 댓글