[AWS] S3란 무엇인가

양진혁·2022년 3월 22일
4

AWS

목록 보기
3/14

S3(Simple Storage Service)란 무엇인가?

만약 당신이 AWS Solution Architect를 준비한다면 필수적으로 알고 있어야 하는 서비스로 많은 비중을 차지하는 문제가 주로 이 섹션에서 출제된다.

아마존에서 말하는 S3

Amazon S3는 업계 최고의 확장성, 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스 입니다. 어떤 규모 어떤 산업의 고객이든 이 서비스를 사용하여 웹 사이트, 모바일 어플리케이션, IoT 디바이스, 빅데이터 분석등 다양한 사용 사례에서 원하는 만큼 데이터를 저장, 보호 할 수 있다. Amazon S3는 사용하기 쉬운 관리 기능을 제공하므로 특정 비즈니스 조직 및 규정 준수 요구 사항에 따라 데이터를 조직화, 세부적인 액세스 제어를 구성할 수 있다.
Amazon S3는 99.999999999%의 내구성을 제공하도록 설계되어 있으며 전 세계 기업의 수백만 어플리케이션을 위한 데이터를 저장한다.

S3 살펴보기

  • 객체 스토리지 서비스
  • AWS에서 제공하는 파일 저장 서비스
  • Bucket이라는 단위로 구분
  • 버전관리 가능
  • 99.999999999% 내구성
  • Static Web 호스팅 기능
  • 업로드와 업데이트/ 삭제의 데이터 일관성 모델이 다름(시험에 자주 출제됨)
  • 여러 티어로 구성된다.(요금에 따라, 파일의 성질에 따라 효율적으로 사용이 가능하다.)
  • 암호화 가능
  • 보안 설정 가능
  • 다른 유저/다른 계정과 공유 가능
  • 다른 Region으로 복제 가능(한국 -> 미국)
  • 수명주기 설정 가능
  • 삭제 방지 기능(MFA)
  • 파일 전송 Transfer Acceleration 가능
  • Athena/Macie 등 서비스로 Query 및 검증 가능

S3 객체 스토리지 서비스(파일을 다루는 서비스)

  • 객체 스토리지 서비스: 파일만 가능 <-> Block Storage Service(EBS, EFS등)
    • 파일 설치 불가(이미지,동영상,워드등 업로드, 삭제, 업데이트만 가능하다)
  • 무제한 용량
    • 단 하나의 객체는 0byte에서 5TB용량(하나의 파일은 용량제한이 있지만 그 파일을 몇개 업로드하는지는 무제한)
  • Bucket이라는 단위로구분
    • 디렉토리 개념
    • Bucket 이름은 Global Unique
    • 즉 세계 어디에서도 중복된 이름이 존재할 수 없음
    • Web Hosting시 도메인과 Bucket 명이 같아야함
  • 99.999999999% 내구성
    • 0.000000001 % 확률로 파일을 잃어버릴 수 있음(국내 복권 당첨될 확률의 1/122)
  • 99.9% SLA(이것보다 못하면 돈을 돌려준다는 약속)가용성(티어에 따라 다름)

내구성 가용성의 차이

  • 내구성: 파일이 없어지느냐 안없어지느냐
  • 가용성: 실제로 내가 서비스 기간중 파일을 다운할 수 있는지, 사용할 수 있는지에 대한 여부(즉 사용중 0.1% 확률로 가용성이 불가하더라도 파일이 사라지거나 없어지는게 아님)

S3 API

  • 파일 관련 API(업로드, 업데이트, 삭제 등)
    • 업로드 성공 시 HTTP 200코드 반환
    • 큰 용량의 파일의 경우 Multipart Upload 가능(큰 파일을 잘게 쪼갠 뒤 하나씩 업로드 해 S3에서 합침)(두가지 장점을 가짐 1. 업로드가 중간에 중지되더라도 나중에 이어서 업로드가 가능, 2. 분산해서 업로드 하기 때문에 속도가 더 빠르다)
    • 다운로드는 Torrent 지원
  • Bucket 관련 API(조회, 생성, 삭제)
  • 기타 기능(Lifecycle, Replication 등)

S3 객체의 구성

  • key: 파일의 이름(경로와 같은 개념)
  • value: 파일의 데이터(실제 데이터)
  • Version Id: 파일의 버전 아이디
  • Metadata: 파일의 정보를 담은 데이터(S3 업로드시 value, metadata를 같이 업로드 가능하다)
  • ACL: 파일의 권한을 담은 데이터
  • Torrents: 토렌트 공유를 위한 데이터

S3 버저닝

  • 모든 버전을 관리(삭제 포함)
  • 활성화 해야함(기본적으로 비활성화)
    • 한번 활성화시 비활성화 불가능
  • 수명주기 관리와 연동 가능

S3 Static Hosting

S3 일관성 모델(시험 응시시 중요함)

  • Put(새로 생성): 읽기 후 쓰기(Read After Write)
    • 파일을 올리고 성공한 즉시 읽기 가능
    • 먼저 Put한 요청이 우선권을 가짐
  • Update/Delete: 최종일관성(Eventual Consistency)
    • 파일을 삭제하거나 업데이트 이후 일정시간 후에 결과가 반영됨(1초 미만)
    • 원자성 확보 불가능

S3 티어

  • S3 Standard
    • 99.99% 가용성
    • 99.999999999% 내구성
    • 여러 장소에 분산 보관
  • S3-IA(Infrequently Accessed)
    • 자주 사용되지 않는 데이터를 저렴한 가격에 보관
    • 데이터를 불러올 때마다 비용 지불
  • S3-OneZoneIA
    • IA와 같으나 하나의 AZ에만 저장됨
    • 덜 중요하고 자주 사용되지 않는 데이터
  • S3 Intelligent Tiering
    • 머신러닝을 사용해 자동으로 티어 변경
    • 퍼포먼스 손해/오버헤드 없음
  • S3-Glacier
    • 아카이브용 저장소
    • 저렴한 가격
    • 데이터를 가져오는데 분~ 시간 단위의 시간 소요
  • S3-Glacier Deep Archive
    • 매우 쌈
    • 데이터를 가져오는데 12시간 정도 필요함

S3 보안설정

  • Bucket Policy
    • 버킷 단위(버킷 안에 있는 파일 하나하나 세세한 설정 불가능)
    • JSON 형식
  • ACL(Access Control List)
    • 팡리 단위
  • Access Log 전송가능
    • 다른 버킷 혹은 다른 계정으로 전송 가능
  • MFA를 활용해서 삭제 방지 기능

S3 암호화

  • S3의 데이터는 총 3가지 암호화로 구성
    • On Transit: SSL/TLS(HTTS)
    • At Rest
      • SSE S3: S3에서 알아서 암호화
      • SSE KMS: KMS 서비스(AWS 암호 키 패스워드를 관리)를 이용해 암호화
      • SSE C: 클라이언트에서 제공한 암호를 통해 암호화
    • 클라이언트가 직접 암호화

S3 공유

  • S3의 공유는 3가지 방법으로 가능
  • Bucket Policy / IAM
    • 프로그램 액세스만 가능
    • 버킷 단위
  • ACL
    • 프로그램 액세스만 가능
    • 파일 단위
  • IAM 크로스 어카운트
    • 콘솔/ 프로그램 액세스 가능

S3 Cross Region Replication

  • 다른 Region으로 복제 가능
  • 버저닝이 활성화 되어 있어야함(원본, 대상 모두)
  • 동일한 Region으로 복제 불가능
  • 복제 기능 활성화 전 데이터는 복제되지 않음
  • 버전 삭제 혹은 파일 삭제는 복제되지 않음

S3 수명주기(시험에 잘 나옴)

  • ~~시간이 지난 후 ~~을 하라는 명령
    • 예: 30일이 지난 후 삭제
    • 예: 30일이 지난 후 Glacier로 옮기기
  • 버전과 연동 가능
  • 예전 버전과 현재 버전에 대해 설정 가능
  • 파일이 업로드 / 삭제 / 업데이트 되었을 때 Lambda 호출 가능

S3 Transfer Acceleration

  • AWS의 네트워크를 활용해 각 Edge Location에서 더욱 빠른 업로드가 가능하다

S3 Athena

  • S3를 SQL 언어로 조회할 수 있는 서비스
    • SQL 쿼리 사용
    • Serverless
    • 로그를 조회하거나 분석하는데 주로 활용한다.

Reference

https://www.youtube.com/c/AAAWS/videos

0개의 댓글