Cloud/AWS Certified Solutions Architect - Asso

스토리지 - S3

Tony Lim 2023. 8. 8. 14:24
728x90

S3 - 개요 및 버킷 생성

데이터 저장 방식

오브젝트 스토리지 = s3

  • 오브젝트라고 불리는 개별 유닛에 데이터를 저장하는 스토리지 포맷
  • 각 유닛에는 고유의 식별자 혹은 키가 있어서 분산된 시스템 내 어디에 저장되어 있든지 상관없이 데이터를 찾을 수 있음
  • 각각의 오브젝트에는 키, 데이터 및 옵션 메타데이터가 포함

블록 스토리지 = EBS

  • 데이터를 고정된 사이즈의 블록으로 나누어 각각 고유한 식별자와 함께 저장하는 방식
  • 각 데이터 블록은 고유 식별자를 부여 받아 스토리지 시스템이 데이터 조각을 원하는 곳에 배치 가능
    예) 일부 데이터는 리눅스 환경에 저장하고 일부는 윈도우 장치에 저장

파일 스토리지 = EFS, FSx

  • 데이터는 계층적 파일 디렉터리 내의 폴더에서 파일로 저장
  • 해당 데이터에 액세스 해야하는 경우, 컴퓨터는 그 데이터를 찾기 위해 경로를 알아야함
  • 파일에 저장된 데이터는 제한된 양의 메타데이터 (해당 파일 자체가 보관된 정확한 위치를 알려주는 데이터) 를 사용해 구성 및 검색

 

S3 , 버킷 및 객체

  • 거의 무제한 저장 용량을 제공하는 객체 스토리지 서비스
  • 최소 3개의 가용영역에 데이터를 자동 분산 저장하기에 성능, 확장성, 가용성, 내구성이 높음
  • 대표적 사용사례 = 백업 및 복원, 재해 복구(DR) , 아카이브, 클라우드 스토리지, 정적 웹사이트 호스팅

amazon s3 서비스 자체는 글로벌 서비스라 오른쪽 상단에 리전을 고를 수 없다.

하지만 생성되는 bucket자체는 리전단위로 생성이 된다.

뭔말임?https://www.inflearn.com/questions/975983/s3-%EB%A6%AC%EC%A0%84%EA%B4%80%EB%A0%A8-%EC%A7%88%EB%AC%B8%EC%9D%B4-%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4


S3 - 버전 관리

  • 객체(파일)이 여러 버전을 가질 수 있음 - 활성화 해줘야함
  • 동일한 파일 이름을 업로드 하면 여러 버전으로 저장됨
  • 실수로 객체를 덮어쓰거나 삭제한 경우 이전 버전으로 복구 가능
  • 실수로 객체를 삭제하는것을 방지하기 위해 MFA Delete 옵션을 추가할 수 있음 (모바일 인증도 해줘야함)

 버전관리 활성화 전에 저장한건 처음 버전id 가 null이다.

삭제하면 삭제마킹만되고 복구할 수 있게 된다. 모든 versino들을 체크해서 삭제하면 영구적으로 삭제할 수 있다.


S3 - 암호화

  • 서버측 암호화 (SSE -Server side encryption) 데이터가 서버에 저장되기 전에 암호화
    • SSE-S3 = S3에서 관리하는 암호화
    • SSE_KMS = KMS(키관리서버) 에서 관리하는 암호화 , 키 관리 서버를 이용하므로 키를 자동 교체하거나 감사기능을 지원
    • SSE-C = client가 관리하는 암호화 , 데이터 전송시 반드시 HTTPs를 사용해야함
  • client측 암호화 = 데이터를 전송하기전에 클라이언트 사이드에서 암호화

SSE-C 는 이런상황에서 쓰일 수 있다. 클라이언트, 개발자 , 서버

클라이언트가 public , private key 다 생성하고 public key를 개발자에게줌

개발자는 public key로 s3 object 암호화해서 서버에 저장

클라이언트는 s3에서 object를 다운로드후 private key로 복호화

 


S3 - 버킷 access 정책

예전에 IAM 서비스에 했던것처럼 JSON으로 어떤 AWS 서비스에만 access 가능한지 정의 할 수 있다.


S3 - 정적 웹사이트 호스팅

정적웹 = 맨날 똑같은 내용을 보여주는 사이트

동적웹 = 접속할 떄마다 내용이 변함, 쇼핑몰, SNS

index.html , error html 2개가 필수이고 public access를 해야한다.

또한 s3 에 있는 사진을 로딩한다면 aws policy generator를 통해 정적호스팅해주는 S3(ARN) 으로 하여금
S3 getObject 권한을 가지게 해야줘야 한다.

CORS 가 지원되어 다른 웹주소(오리진) 에 버킷에 대한 엑세스를 공유할 수 있다.


엑세스 로깅

  • s3 버킷의 모든 활동을 파일로 만들어 s3 버킷에 저장하는 기능
  • amazon athena 같은 분석도구를 사용가능하다.

버킷이 달라야한다. 안그러면 무한 반복임

로그 파일이 로그버킷에 생성되는 시간이 존재함. 바로 생성되지 않음


S3 - Replication

s3 bucket간에 객체를 자동으로 복제함

  • 교차리전 복제 (CRR , CrossRegion Replication) = 재해복구 (DR) 
  • 동일 리전 복제(SRR , Same Region Replication) = 프로덕션과 테스트 계정간의 복제, 법적 준수때문에

버전관리가 원본, 대상 버킷 둘다 켜져야함

다른 AWS 계정의 버킷으로도 복제가 가능함

 

S3 - 스토리지 유형 (Storage Class)

IA = Infrequent Access

S3 standard

  • 짧은 지연 시간과 많은 처리량을 제공

S3 intelligent -tiering = 액세스 패턴을 에측할 수 없을 때

  • 스스로 엑세스 패턴을 모니터링해서 자주 조회되는놈은 비싼곳으로 반대는 싼곳으로
  • Frequent Access , Infrequent Access ,Archive Access , Deep Archive Access
    30 , 90, 180일 기준으로 오른쪽으로 흘러감

S3 standard-IA (빈번하지 않은 엑세스용)

  • 최소 과금 기간 30일 (30일이 끝나기 전에 객체를 삭제하면 30일 요금이 부과됨

S3 One Zone-IA (빈번하지 않은 엑세스용)

  • 최소 3개의 가용영영역에 데이터를 저장하는 다른 s3클래스와 달리 단일 가용영역에만 저장하며 비용이 s3 standard-iA 보다 저렴함
  • 가용성 , 복원력이 필요없는 고객에게 적합
  • 최소 과금 기간 30일

Glacier Instant Retrieval (아카이브용)

  • 저렴한 비용으로 장기 보관하는 백업 용도
  • 분기에 한번 액세스하는 오래된 아카이브 데이터 용도
  • 검색시간 = 밀리초내에 즉시 검색
  • 최소 과금 기간 90일

S3 Glacier Flexible Retrieval

  • 저렴한 비용으로 장기보관 하는 백업용도
  • 일 년에 한번 액세스하는 오래된 아카이브 데이터 용도
  • 검색 시간 = 몇 분 내지 몇 시간의 검색 시간소요
  • 최소 과금기간 90일

S3 Glacier Deep Archive

  • 가장 쌈
  • 일련에 한번 미만으로 액세스 하는 오래된 아카이브 데이터 용도
  • 7~10년이 상 데이터를 장기 보관하는 용도
  • 검색시간 = 몇시간
  • 최소 과금기간 180일


S3 - 수명 주기 정책 (Life Cycle Policy)

  • 객체가 저장되어 삭제될 떄까지의 수명주기를 비용효율적으로 저장 되도록 관리하는 기능
  • 버전관리가 활성화 되어 있을 경우 객체의 버전 별로 수명 주기 정책을 적용할 수 있음
  • s3 analytics = 액세스 패턴을 분석해서 standard -> standard IA 로 옮길 시점을 알려준다.

날짜와 스토리지클래스를 지정해서 수명주기를 관리할 수 있음


S3 - Glacier Vault Lock 

  • S3 Glacier Vault는 아카이브 데이터를 저장하는 컨테이너
  • S3 Glacier Vault Lock을 사용하여  파일 저장후 삭제, 편집을 못하도록 정책을 잠금
  • Write Once Read Many(WORM) 모델을 적용
  • Vault Lock을 사용하기 위해서는 Vault Lock 정책을 생성
  • Vault 정책이 생성된 이후 더 이상 변경이나 삭제가 불가
  • 데이터 보관 규정 준수 때문에 보통 사용함

 

S3 Object lock (S3객체 잠금)

객체 잠금을 사용하려면 버전관리가 활성화 되어야함

2가지 보관모드

  • 거버넌스 모드 = 필요에 따라 일부 사용자에게 보관 설정을 변겨하거나 객체를 삭제할 수 있는 권한을 부여할 수 있음
  • 규정준수 모드 = AWS 계정의 루트 사용자를 포함한 어떤 사용자도 덮어쓰거나 삭제 할 수 없음

legal hold(법적 보존)

  • 객체 버전을 덮어쓰거나 삭제할 수 없도록 하는 기능
  • 객체를 수정해야 하는 사용자의 IAM 정책에 s3 PutObjectLegalHold 권한을 추가하면 해당 사용자는
    객체를 수정, 삭제 가능

s3 기타기능

 

이벤트 알림 , event notification

  • s3의 이벤트가 발생할 때마다 알리는 기능
  • 이벤트는 객체의 생성, 복제, 복원 등이 있음
  • 생성된 이벤트 알림을 amazon sns , sqs, lambda 로 보낼 수 있음

 

s3 select & s3 glacier select

  • sql 구문을 사용해 s3 객체의 콘텐츠를 필터링하여 원하는 데이터만 가져오는 기능
  • 데이터를 검색하는데 필요한 비용을 절감하고 지연시간을 감소(성능 향상)

요청자 지불 버킷(Requested Pays)

  • 일반적으로 버킷에 데이터를 다운로드 하거나 업로드 할 때 비용은 버킷 소유자가 지불
  • 데이터 전송비용을 버킷 소유자가 아닌 요청자가 지불하게 하는 기능

미리서명된 url (pre signed url)

  • 미리 서명된 url을 사용하여 제한 된 시간동안 객체를 공유 또는 업로드하는 만료시간을 설정

 

전송 가속화 (amazon s3 transfer acceleration)

  • s3버킷의 객체를 사용자에게 더 빠르게 전송해 주는 기능
  • aws의 엣지로케이션을 활용해서 s3데이터를 사용자와 가까운 곳에 캐싱하여 전송
  • 전 세계 각지에서 중앙의 버킷으로 업로드하는 고객이 있는 경우에 사용

멀티 파트 업로드

  • 대용량의 파일을 분할하여 병렬로 s3에 업로드 하는 방식
  • 파트를 병렬로 업로드 하기에 빠른 처리 속도로 업로드 가능
  • 업로드가 실패하면 재전송 또는 수명 주기 정책을 통해 완료되지 않은 업로드 삭제 기능

s3 데이터 검색

  • athena , s3 select , redshift 등의 서비스를 사용해서 s3의 데이터를 다른 플랫폼으로 이동하지 않고 바로 검색 가능
  • sql 쿼리문을 사용해서 검색가능

aws transfer for sftp

  • s3 버킷을 저장소로 하는 sftp 서비스
  • sftp(secure file transfer protocol) 보안 파일 전송 프로토콜
  • 온-프레미스나 외부의 다른 시스템에서 sftp 를 이용하여 s3 버킷으로 파일을 전송하고 관리 가능

 

S3 access point

특정한 그룹 , 사용자 , 앱이 허용된 s3 데이터만 액세스 할 수 있게 하는 기능

에를들어 , 재무팀 사용자는 재무관련 s3데이터만 액세스 하여 crud가능

 

s3 object lambda

  • lambda 함수를 사용해 s3 객체의 데이터를 수정 및 처리하는 기능
  • s3객체의 개인 식별정보를 수정
  • s3 객체의 xml 형식을 json으로 변환하는 등의 데이터 형식 간 변환
  • 데이터 추가, 파일 압축/해제 , 이미지크기 조정 및 워터 마킹

s3 batch operation (배치작업)

  • 단일 요청으로 많은 수의 s3 객체를 간편하게 처리하는 기능
  • 예, 다른 버킷에 객체를 복사, 태그 또는 ACL(액세스 제어목록)을 설정, Glacier에서 복원을 시작, 각 객채별로 aws lambda함수 호출

 

 

 

728x90

'Cloud > AWS Certified Solutions Architect - Asso' 카테고리의 다른 글

글로벌 전송  (0) 2023.08.17
스토리지 - 기타  (0) 2023.08.14
EC2 스토리지  (0) 2023.08.07
EC2 Auto Scaling  (0) 2023.08.07
Elastic Load Balancing(ELB)  (0) 2023.08.04