Programming

[AWS, Certified Developer Associate] S3 - 개요, 버킷 정책, 복제, 스토리지 클래스

S3 개요

  • 무한히 확장 가능한 스토리지
  • 사용사례
    • 백업 or 스토리지
    • 재해 복구 (백업)
    • 기록 보관
    • 하이브리드 클라우드 스토리지 (온프레미스 스토리지에 대해 클라우드로 확장)
    • 데이터 레이크 & 빅데이터 분석
    • 소프트웨어 업데이트

 

S3 - Bucket

  • 최상위 디렉터리 개념
  • 버킷에 담기는 파일은 객체(Object)
  • 전역적으로 유니크한 이름을 가짐
  • 리전 단위로 버킷 생성

 

S3 - Object

  • 각각 키를 가짐
  • 키는 파일의 전체 경로 (prefix + object name)
    • s3://my-bucket/my_file.txt
    • s3://my-bucket/my_folder/test/my_file.txt
  • 실제로 S3에는 디렉터리 개념이 없음 (모든것은 하나의 키)
  • 객체 최대 크기는 5TB (5000GB)
    • 초과 시 멀티 파트로 분할해 저장
  • 메타데이터 가질 수 있음 (key/value 형식, 사용자나 시스템 지정 가능)
  • 태그 가질 수 있음 (key / value 형식, 보안과 수명관리에 좋음)
  • 버전 ID 가질 수 있음 (버저닝 켜진 경우)
    • 같은 키로 저장 시 덮어쓰는 게 아닌 새로운 버전으로 저장
    • 의도치 않은 삭제(덮어쓰기) 방지
    • 이전 버전으로 쉽게 롤백 가능
    • 버저닝을 켜기 전 객체의 버전값은 null로 세팅
    • 버저닝을 잠시 멈춰도 이전 버전은 삭제되지 않아 안전하게 이용 가능

 

S3 버킷 정책

  • S3에서 보안 유지 방법은 크게 3가지
    • User-based
      • IAM 정책 - 사용자가 API 호출을 통해 S3에 접근
    • Resource-Based
      • 버킷 정책 - S3 콘솔에서 룰을 정의 (사용자 계정 간 액세스 허용)
      • Object / Bucket Access Control List (ACL) : 보다 세밀한 정책. 비활성화 가능
    • Encryption
      • 객체를 암호화 키를 통해 암호화
    • (IAM 권한이 ALLOW or 버킷 정책이 ALLOW) AND 명시적인 DENY가 없는 경우 IAM은 S3 객체에 접근 가능
  • Public Access 제한도 설정 가능 (회사의 데이터 유출을 막기 위한 한단계 추가된 보안, S3 버킷정책을 잘못 설정했을 때를 대비 가능)

 

 

S3 복제

  • 소스 버킷 / 대상 버킷 모두 버저닝을 켜야함
  • CRR (교차 리전 복제) / SRR (동일 리전 복제)
  • 복제 작업은 비동기 / 백그라운드로 실행
  • 해당 버킷에 대한 읽기/쓰기 권한이 IAM에 있어야함
  • 복제 기능을 활성화 한 이후 생성된 객체만 복제됨
    • 기존 객체를 복제하기 위해서는 S3 Batch 복제 기능을 이용해야 함
  • 삭제작업도 복제 가능 (삭제 마커를 복제, version ID 가진 것은 복제하지 않음. 악의적인 삭제를 복제하지 않기 위함)
  • 복제 체이닝 미지원 (버킷1 -> 버킷2 -> 버킷3 복제 시 버킷1 -> 버킷3 복제 불가)
  • CRR 사용사례
    • 낮은 지연 액세스 (다른 리전에서 데이터 가져옴), 다른 계정 간 버킷 복제
  • SRR 사용사례
    • 로그 집계, 운영 / 테스트 계정 간 라이브 복제

 

 

S3 스토리지 클래스

  • 스토리지 클래스는 수동으로 바꾸거나 S3 LifeCycle 설정으로 자동으로 하나가 되도록 할 수 있음
  • 클래스와 상관없이 S3의 내구성(Durability)는 높은편 (99.999999999%, 11 9's)
  • 가용성(Availability)는 스토리지 클래스마다 다름 (Standard 기준 99.99%)
  • Standard - 일반 목적
    • 99.99 Availability
    • 자주 접근하는 데이터에 사용
    • 지연시간이 짧고 처리량 높음. 기본으로 사용하는 스토리지
    • 동시 2개 시설 실패 처리 가능
    • 빅데이터 분석 / 모바일 앱 / 게임 / 콘텐츠 배포
  • Standard - Infrequent Access (IA)
    • 덜 자주 사용하는 데이터용 (99.9%)
    • 필요할 때 데이터 접근이 빨라야함
    • Standard 보다 저렴. 데이터 조회 시 비용
    • 재해복구 / 백업
  • One Zone - IA
    • 하나의 가용영역에 대해서는 높은 내구성 (99.99999999%)
    • AZ가 파괴되면 데이터 손실 발생
    • 가용성은 99.5%
    • 온프레미스 데이터 / 재생성 가능한 데이터의 백업
  • Glacier
    • 저렴한 객체 스토리지
    • 아카이브 / 백업
    • 스토리지당 비용 + 검색 건당 비용
    • Instant Retrieval : 밀리초 단위 검색 (분기 당 한번 액세스하는 데이터에 적합)
    • Flexible Retrieval : Expedited > standard > bulk 순으로 검색시간 김
    • Deep Archive : 장기 보관용 스토리지. 비용 제일 저렴
    • Instant : 데이터 즉시 검색 / Flexible : 데이터 검색을 기다릴 의향이 있음
  • Intelligent Tiering
    • S3가 알아서 액세스 티어 간 객체를 옮겨줌

 

 

 


Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!