AWS - S3, CloudFront

thumbzzero·2023년 7월 2일

S3 (Simple Storage Service)

  • 안전하고 가변적인 object(이미지, 동영상, 파일 등) 저장공간 제공
  • 파일 크기 0KB ~ 5TB까지 지원
  • 저장공간 무제한
  • Bucket이라는 이름 사용(디렉토리와 유사, 보편적인 namespace 사용)

S3 object 구성요소

  • key (파일명)
  • value (파일의 데이터)
  • version ID (똑같은 파일의 다른 버전 가능)
  • metadata
  • CORS(Corss Origin Resource Sharing) - 한 bucket의 파일을 다른 bucket에서 접근가능하도록 해주는 기능

S3 Data Consistency Model

  1. Read after Write Consistency (PUT) - 즉시 사용 가능
  2. Eventual Consistency (UPDATE, DELETE)

S3 스토리지

  • 일반 S3
    • 가장 보편적으로 사용되는 스토리지 타입
    • 높은 내구성, 가용성
  • S3 - IA (Infrequent Access)
    • 자주 접근되지는 않으나 접근 시 빠른 접근이 요구되는 파일이 많을시 유용
    • 멀티 AZ를 통한 데이터 저장
  • S3 - One Zone IA
    • 단일 AZ를 통한 데이터 저장
    • 단일 AZ에 의한 데이터 접근 제한 (조금 낮은 가용성)
  • Glacier
    • 거의 접근하지 않을 데이터 저장 시 유용
    • 매우 저렴한 비용
    • 데이터 접근시 대략 4-5시간 소요
  • Intelligent Tiering
    • 데이터 접근 주기가 불규칙할 때 매우 유용
    • 2가지 티어 존재 (Frequent Tier, Infrequent Tier) -> 데이터 접근주기에 따라 두 가지 티어 중 하나로 선택됨
    • 최고의 비용 절감 효율을 누릴 수 있음

S3 사용 용례

  • 파일 저장소 (로그, 이미지, 비디오, 압축파일 등 다양한 파일들)

  • 웹사이트 호스팅 (html, css, js 등 업로드)

  • CORS

최초 S3 버켓 생성시 -> 비공개이므로
1. 버켓 정책 변경 (Bucket Policy) : 버켓 안에 들어있는 모든 파일들에 적용
2. 접근 제어 리스트 변경 (Access Control List) : 파일 하나하나에 다른 접근 부여 가능

S3 암호화

  • 파일 업로드/다운로드 시 : SSL / TLS - AWS 내부에서 관리
  • 가만히 있을 시 :
    • SSE-S3 - 마스터 키 일정 시간마다 변경
    • SSE-KMS - 누가 언제 어떻게 암호를 변경하였는지에 대한 기능 있음
    • SSE-C

S3 암호화 과정

  • PUT 요청이 생성됨
  • PUT 요청 헤더에 x-amz-server-side-encryption-parameter(암호화 알고리즘 지정)가 있으면 암호화 요청으로 간주
    • 암호화가 걸리지 않은 파일을 버켓에 못 올리게 하려면 버켓 정책 변경을 통해 이 값이 헤더에 들어있지 않다면 reject 하도록 설정

CloudFront

  • Edge Location을 사용하여 정적, 동적, 실시간 웹사이트 콘텐츠를 유저들에게 전달
  • Content Delievery Network(CDN) -> 속도 향상
  • 분산 네트워크 (Distributed Network)
  • 웹페이지를 불러오려는 사용자가 어디에 위치하느냐에 따라 Content web page에 delivery하는 분산 네트워크

용어

  • Edge Location(엣지 지역) : 콘텐츠들이 캐시에 보관되는 장소
  • Origin : 원래 콘텐츠들이 들어있는 곳, 웹 서버 호스팅이 되는 곳 / S3, EC2 인스턴스가 오리진이 될 수 있음
  • Distribution(분산) : CDN에서 사용되며 Edge Location들을 묶고 있다는 개념

0개의 댓글