본문 바로가기
클라우드 아키텍트 양성과정

[TIL.21.1.26 ~]AWS S3(Simple Cloud Storage)

by 종바깅 2021. 3. 23.

IAM

AWS 서비스와 리소스에 대한 액세스를 안저하게 관리, 사용자 및 그룹을 만들고 관리, AWS리소스에 대한 액세스를 허용 및 거부하는 통합 계정관리 서비스

  • AWS 계정 관리 및 리소스/유자/ 서비스의 권한 제어
    • 임시권한 부여
    • 서비스 사용을 위한 인증정보 부여
  • 유저 생성 관리 및 계정의 보안
    • Multi-factor Authentication
    • 유저의 패스워드 정책 관리
  • 다른 계정과의 리소스 공유
  • Identity Federation(Facebook, Google Login 등 )

  1. 유저 : 실제 AWS서비스를 사용하는 사람
    • Access Key/ Secret Access Key : 유저가 AWS의 서비스를 사용하기 위한 인증정보
    • 유저명/패스워드 : 유저가 AWS 콘솔을 사용하기 위한 인증정보
  2. 그룹 : 유저의 집합, 그룹에 속한 유저는 그룹에 부야된 권한을 행사할 수 있다
  3. 정책(Policy) : JSON 형식으로 정의되먄 유저와 그룹, 자격이 무엇을 할 수 있는지에 대한 문서
  4. 자격 (Role) : AWS리소스에 부여하여 AWS리소스가 무엇을 할 수 있는지를 정의
    • 다른자격에 대해서 신뢰관계를 구축 가능
    • 역할을 바꾸어 가며 서비스를 사용 가능
    • EC2인스턴스에 S3 접근권한을 주는 것
  5. IAM은 글로벌서비스(리전별 서비스가 아님)

S3(Simple Storage Service)

Amazon SImple Storage Service(S3)는 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지(Object storage) 서비스이다

  • 객체 스토리지(Object storage) 서비스 - Block Storage(EBS)와 상반되는 개념
    • 파일 설치 불가
  • 세부적인 액세스 제어를 구성가능
  • Eleven nine (99.999999999)의 내구성
  • 99.9% SLA 가용성(티어에 따라 다름)
  • 무제한 용량
    • 단 하나의 파일 5TB 까지
  • 버킷(Bucket)이라는 단위로 구분
    • 디렉토리 개념
    • 버킷의 이름은 Global Unique(중복 존재 없음)
    • Web Hosting 시 도메인과 버킷이름이 같아야함
  • 버전 관리 가능
  • Static Web 호스팅가능
  • 업로드와 업데이트/ 삭제의 데이터 일관성 모델이 다름
  • 여러 티어로 구성
  • 암호화 가능(Encryptable)
  • 보안 설정 가능
  • 다른유저/ 계정과 공유 가능
  • 다른 Region으로 복제가능
  • 수명주기 설정가능
  • 삭제방지 가능(MFA)
  • 파일 전송 Transfer Accelation 가능
  • Athena/Macie 등의 서비스로 Query 및 검증 가능

S3 API

  • 파일 관련 API(업로드, 업데이트, 삭제 등)
    • 업로드 성공시 HTTP 200 코드 반환
    • 큰 용량의 파일의 경우 Multipart Upload 가능(개당 5GB)
    • 다운로드는 Torrent 지원
  • Becket관련 API(조회,생상,삭제 등)
  • 기타 기능(Lifecycle, Replication 등)

S3 객체의 구성

  • Key : 파일의 이름
  • Value : 파일의 데이터
  • Version ID : 파일의 버전 아이디
  • Metadata : 파일의 정ㅇ보를 담은 데이터
  • ACL : 파일의 권한을 담은 데이터
  • Torrents : 토렌트 공유를 위한 데이터

S3 버저닝

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

S3 일관성 모델

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

S3 티어

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

여기서부터 시험에 자주 출제되는 유형에 관한 내용

S3 보안설정

  • Bucket Policy
    • 버킷 단위
    • JSON 형식
  • ACL(Access Control List)
    • 파일 단위
  • Access Log 전송 가능
    • 다른 버킷 혹은 다른계정으로 전송 가능
  • MFA를 활용해 삭제 방지 가능

S3 암호화

S3의 데이터의 암호화는 3가지 암호화로 구성

  • ONn Transit(전송 중) : SSL/TLS(HTTPS)
  • At Rest(저장이 되었을 때)
    • SSE S3 : S3에서 알아서 암호화
    • SSE KMS KMS 서비스를 이용해 암호화
    • SSE C : 클라이언트에서 제공한 암호를 통해 암호화
  • 클라이언트가 직접 암호화

S3의 공유

S3의 공유는 3가지 방법으로 가능

  • Bucket Policy/ IAM
    • 프로그램 액세스만 가능
    • 버킷 단위
  • ACL
    • 프로그램 액세스만 가능
    • 파일 단위
  • IAM Cross Acount
    • 콘솔/ 프로그램 액세스 가능

S3 Cross Region Replication

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

S3 수명주기

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

S3 Transfer Acceleration

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

* 전세계에 리전을 포함해 더 많은 Edge Location이 흩어져 있는데 CloudFront와 더불어 근처에있는 사람들이 더 빠른 액세스를 할 수 있도록 하는 출장소 라고 생각할 수 있음

S3 Athena

S3를 SQL 언어로 조회할 수 있는 서비스

  • SQL쿼리 사용
  • Serverless
  • 로그를 조회하거나 분석하는데 주로 활용

댓글