S3

이상훈·2023년 5월 20일
0

aws

목록 보기
4/7

특징

  • 안전하고 가변적인 Object 저장공간을 제공 (ex: Google Cloud)
    • Object : 이미지, 동영상, 파일
  • 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있음
  • 파일 크기는 0KB부터 5TB까지 지원
  • 저장공간 무제한
  • Bucket이라는 이름을 사용함 (디렉토리와 유사함)
  • Bucket은 보편적인 namespace를 사용함
    • 보편적인 namespace == 이름이 고유해야 함

Object 구성요소

  • Key - value : key value 형태
  • Version ID : s3 고유 특징, 똑같은 파일인데 다른 버전으로 옮길 수 있게 해줌. 복원할 때 쓰임.
  • Metadata : data에 대한 다양한 정보를 줌.
  • CORS (Cross Origin Resource Sharing) : 한 버킷의 파일을 다른 버킷에서 접근 가능하게 해줌.

Data Consistency Model

  • Read after Write Consistency (PUT) : S3 버킷에 파일을 올릴 때 API method PUT을 사용함 -> 파일이 S3 버킷에 올라간다면 그 파일을 즉시 사용할 수 있음.
  • Eventual Consistency (UPDATE, DELETE) : API method UPDATE, DELETE를 사용하면 파일 내용을 변경하거나 삭제할 시 그 결과가 바로 나타나지 않음.

스토리지

S3 스토리지는 5가지 타입이 있음

일반 S3

  • 가장 보편적으로 사용되는 스토리지 타입
  • 높은 내구성, 가용성 (Durability, Availability)

S3 - IA (Infrequent Access)

  • 자주 접근되지는 않으나 접근 시 빠른 접근이 요구되는 파일이 많을시 유용
  • 일반 S3에 비해 비용은 저렴하나 접근시 추가 비용 발생
  • 멀티 AZ를 통한 데이터 저장

S3 - One Zone IA

  • 단일 AZ를 통한 데이터 저장
  • 단일 AZ에 의한 데이터 접근 제한 (조금 낮은 가용성)
    • ex) AZ가 서버 다운같은 문제가 발생할 경우 One zone sotrage는 사용 불가, 문제가 해결돼야 사용 가능
  • 데이터 접근 시 S3 - IA보다 20% 비용 저렴

Glacier

  • 거의 접근하지 않을 데이터 저장 시 유용
  • 매우 저렴한 비용
  • 데이터 접근 시 대략 4-5시간 소요

Intelligent Tiering

  • 데이터 접근 주기가 불규칙할 때 매우 유용
  • 데이터 접근주기에 따라 두 가지 티어중 하나로 선택됨
    • Frequent Tier
    • Infrequent Tier
  • Frequent Tier가 비용이 약간 더 비쌈
  • 최고의 비용 절감 효율을 누릴 수 있음

요금

  • GB당
  • PUT, GET, COPY 요청 횟수 당
  • 데이터 다운로드 시 / 다른 리소스로 전송 시
  • Metadata (object tag) 유무에 따라

버켓 생성 시 알아야 할 것들

S3 사용 용례

  • 파일 저장소
    • 로그, 다양한 파일들(이미지, 비디오, 압축파일 등)
  • 웹사이트 호스팅
    • html css js 같은 파일들을 업로드한 후 s3 버킷을 실제 도메인 dns로 사용 가능
  • CORS
    • Bucket A에서 Bucket B에 들어있는 데이터에 접근하는 것을 허용시켜주는 것

최초 S3 Bucket 생성시 비공개(Private)

 최초 버킷을 만들면 비공개(Private) 상태. 따라서 외부에서 어떤 사람이 그 버킷에 접근할 시 access denied에러가 뜸. 특정 유저 혹은 그룹에게만 접근 권한을 주고 싶을 때 다음과 같은 방법이 있음.

  • 버킷 정책 변경 (Bucket Policy) : 버킷 안에 들어있는 모든 파일에 적용됨, 버킷 정책을 퍼블릭으로 바꾸면 누구나 접근 가능, 참고로 버킷 정책은 Json으로 되어있음
  • 접근 제어 리스트 변경 (Access Control List) : 버킷 정책과는 달리 파일 하나하나에 다른 접근 권한 부여

암호화 (Encryption)

2가지 유형의 암호화 타입이 존재

  • 파일 업로드/다운로드 시
    • SSL / TLS
  • 가만히 있을시
    • SEE-S3 : 마스터키(AES-256으로 구성)를 가지고 일정 시간마다 Object의 키 값을 변경
    • SSE-KMS : 언제, 누가, 어떻게 암호를 풀었는지에 대한 기록 보관
    • SSE-C : 암호키를 사용자가 직접 다룰 수 있고 키값 직접 변경

S3 암호화 과정

 일반적으로 S3 파일 업로드 시 PUT 요청과 함께 아래 헤더에 다음과 같은 정보들이 들어간다. 여기서 헤더에 x=amz-server-side-encryption-paramerer와 같은 정보가 들어가면 s3는 암호화 요청을 건거로 간주하고 암호화를 걸어준다. 참고로 AES-256은 암호화 알고리즘 중 하나다.

profile
Problem Solving과 기술적 의사결정을 중요시합니다.

0개의 댓글