[Archtecting on AWS] Storage & S3

Created
Nov 16, 2023
Created by
Tags
AWS
Property
 
 

Block Storage

  • 데이터를 고정된 사이즈의 블록으로 나눠서 식별자와 함께 저장.
  • AZ 내에서만 복제 허용.
  • 적용 서비스
    • EBS
    • Instance Store(ec2 재부팅 되면 사라지는 휘발성 디스크)
 

Object Storage

  • 객체 단위로 저장 (객체의 일부만 수정할 수 없다.)
  • 객체는 key: metadata, value: file 으로 구성.
  • 파일을 자주 변경하는 요구사항에 부적합.
  • 여러 리전에 복제 가능.
  • 적용 서비스
    • S3
    • S3 Glacier
 

File Storage

  • 파일 시스템 형태로 디렉토리/파일 저장.
  • 파일 탐색에 지연시간 발생 가능.
  • 적용 서비스
    • EFS
    • FXS for windows
 

S3 (Simple Storage Service)

  • WORM (Write Once Read Many times) 콘텐츠 저장에 적절하다.
  • 파일 백업 / 정적 웹 사이트 호스팅(with CloudFront) / 미디어 콘텐츠 서빙에 활용 가능하다.
  • 버킷 용량에 제한이 없다.
  • 버킷의 이름은 전 세계에서 고유해야 한다. (버킷이름을 파일 URI 도메인으로 사용하기 때문.)

S3 access point

  • 버킷에 적용할 리소스 기반 정책으로 액세스 권한을 설정하기에는 복잡도가 크고 정책 작성 용량이 한정되어 있기 때문에 리소스 기반 정책 대신 S3 access point 를 사용한다

S3 객체 암호화

  • SSE-S3
  • KMS
  • SSE-C
 
 

사례 별 S3 하위 서비스

notion image
notion image
 
 

파일 버저닝

  • 버킷에 ‘버킷 버전 관리’ 활성화하면 동일한 이름의 파일이 여러번 올라갈 때마다 버전 아이디 부여.
  • 파일을 삭제하면 soft delete 하고 soft delete 에 대한 버전도 생성. → 파일 삭제를 취소하려면 파일 삭제에 대한 버전을 없애면 됨.
 
 

multi-part upload

  • 객체 1개당 5TB 까지 업로드 가능하지만 최대 용량 채워서 객체를 업로드 하지는 않는다. → 대용량 파일은 멀티파트 업로드.
  • uploadObject() API 에 multi-part 옵션 사용.
 

더 빠르게 사용자에게 콘텐츠 제공하기 (transfer acceleration)

  • edge location 에 콘텐츠 캐싱
 

EFS

  • 여러 인스턴스(across-AZ)가 스토리지를 공유해야 하는 상황에는 EFS 사용 권장.
  • EBS 는 인스턴스 단위로만 사용하는 걸 권장.
 

Data migration

마이그레이션을 하려면 아래 4가지 파악 필요.
  • 데이터를 이동하려는 위치
  • 데이터 이동 관련 사례
  • 이동하려는 데이터의 유형
  • 사용 가능한 네트워크 리소스

AWS migration tool

  • DataSync
  • Storage Gateway
  • SnowFamily