article thumbnail image
Published 2023. 5. 28. 14:50

스토리지 클래스간 데이터 이동

  • 스토리지 클래스 간에 객체를 이동시킬 수 있다
  • 자신보다 아래있는 계층으로 이동할 수 있다
  • 수동으로 옮기거나 라이프사이클을 활용하여 자동으로 옮길 수 있다

각 클래스가 무슨 역할을 하는지 이해하면 됨

 

Lifecycle Rules

  • Transition Actions(전환 작업) - 다른 스토리지 클래스로 객체를 전환하도록 구성
    • 60일 후에 Standard IA로 옮기도록 설정 등
  • Expiration Actions(만료 작업) - 일정 시간이 지나면 객체가 삭제 또는 만료되도록 설정
    • 365일 후에 로그 파일을 삭제
    • 한달 후 이전 버전의 파일을 삭제
    • 완료되지 않은 멀티파트 업로드 부분을 삭제

특정 접두사를 사용해 Rules를 전체 혹은 일부 경로에만 적용할 수 있고 특정 객체 태그에만 지정 가능

 

가상의 시나리오 → 이런식으로 문제가 출제된다는 사실을 인지하면 된다

썸네일 이미지는 엑세스가 많지 않고 재생성이 쉬움

소스 이미지는 액세스가 많고 재생성이 어렵다

  • 소스 이미지를 스탠다드로 설정하다가 라이프 사이클 설정을 통해60일 뒤해 Glacier로 전환
  • 썸네일은 One Zone IA로 두고 60일 이후 만료 혹은 삭제 시킨다
  • 썸네일과 소스 이미지는 접두사를 통해 구분시킬 수 있음

 

30일 이내엔 객체 삭제시 즉시 복구, 365 이내에는 48시간내에 복구할 수 있도록 설계

  • 우선 S3 Versioning을 통해 삭제 마커를 활용해야 한다
  • 객체의 이전 버전을 Standard IA로 옮김 → 최상위 버전엔 두지 않는다
  • 그런 다음 Glacier Deep Archive로 옮겨야 함

 

Storage Class Analysis

객체를 전환하는데 최적의 기간을 정하는 방법

  • S3 Analytics를통해 적합한 스토리지 클래스로 전환할 때 사용할 수 있음
  • Standard와 Standard IA용 권장사항을 제공
    • One Zone IA or Glacier은 해당 없다
  • S3 Analytics를 사용하면 권장사항과 통계를 csv 파일로 제공한다
  • 보고서는매일 업데이트 되며 24~48시간까지 데이터 분석 시간이 걸림

이를 통해 개선 방안을 찾을 수 있다

 

 

S3 - Requester Pays (요청자 지불)

버킷 소유자가 버킷과 관련된 모든 Amazon S3 스토리지 및 데이터 전송 비용을 지불한다

  • 요청자가 데이터 다운로드 비용을 지불
  • 대량의 데이터셋을 다른 계정과 공유하려는 경우 유용하다
    • 요청자가 익명이어서는 안되며 AWS 인증을 받아야함

 

S3 Event Notifications

  • 객체가 생성된 경우, 삭제, 복원, 복제가 발생된 경우 이벤트가 발생함
  • 이벤트 필터링 가능(.jpg로 발생한 이벤트)
  • S3 특정 이벤트에 자동으로 반응하게 할 수 있다
  • 예시) 업로드 되는 사진의 섬네일을 만드려고 하면 이벤트 알림을 만들어서 설정 가능
  • 원하는 만큼의 이벤트 생성과 어디로든 보낼 수 있다

 

S3 Event Notifications with Amazon EventBridge

위 3개 말고도 최근 Amazon EventBridge와 통합됐다

 

 

  • 이벤트가 S3 버켓으로 이동하면 종류와 상관없이 모든 이벤트는 EventBridge를 거친다
  • 여기서 Event Rule을 설정할 수 있고 룰에 따라 18개가 넘는 AWS 서비스에 알람을 보낼 수 있다
  • 고급 필터링 옵션을 더 많이 설정 가능하고 더 많은 목적지, 많은 기능을 활용 가능

중요한 점은 Amazone S3에서 발생하는 모든 이벤트에 반응할 수 있다

 

실습

S3의 이벤트 알림을 받는다는 설정을 SQS, Lamda 등 각 AWS 서비스에서 허용 설정을 해야 한다

 

Baseline Performance (기준 성능)

  • S3는 요청이 아주 많을 때 자동으로 확장된다
  • S3로부터 첫 번째 바이트를 수신하는데 지연시간도 100~200밀리초 사이로 아주 빠르다
  • 버킷 내 접두사(prefix)당 초당 적어도 3,500개의 PUT/COPY/POST/DELETE 요청 또는 5,500개의 GET/HEAD 요청을 지원한다
  • 버킷 내에서 접두사 수에 제한은 없다
  • prefix 예시
    • file이라는 객체와 bucket사이에 모든 것이 접두사가 된다
    • bucket/folder1/sub1/file → /folder1/sub1/
    • bucket/folder1/sub2/file → /folder1/sub2/
    • bucket/1/file → /1/
    • bucket/2/file → /2/
  • 위 접두사 예시에 읽기 요청을 균등하게 처리할 수 있으면 GET/HEAD 요청을 초당 22,000개를 처리할 수 있다

 

S3 Performance - 성능과 최적화 방법

  • 100MB를 넘는 파일은 멀티-파트 업로드 하는게 좋고 5GB가 넘으면 필수
  • 멀티파트 업로드는 업로드를 병렬화하기 떄문에 전송 속도를높여 대역폭을 최대화 할 수 있다

 

S3 Transfer Acceleration - 업로드와 다운로드를 위한 전송 가속화

  • 공용 인터넷으로 연결되는 경우 AWS 엣지 로케이션으로 전송하여 전송속도를 높이고 이후 데이터를 프라이빗 aws 네트워크를 통해 대상 리전에 있는 S3 버킷으로 전달
    • 엣지 로케이션은 리전보다 훨씬 많다 약 200개로 계속 증가하고 있다
  • 멀티파트 업로드와 같이 사용할 수 있다
  • 공용 인터넷을 최소화하고 프라이빗 AWS 네트워크 사용량을 늘림으로써 전송속도 최적화

 

S3 Byte-Range Fetches 파일을 수신하고 읽는 효율적인 방법

  • 특정 바이트 범위를 요청하여 Get 요청을 병렬화
  • 특정 바이트 범위를 가져오는데 실패한 경우 더 작은 단위로 재시도
    • 실패 한다고 해도 복원력이 높다
  • 다운로드 속도를높일 수 있다

 

파일의 일부분만 가져와 파일의 정보를 읽을 수 있다

 

 

S3 Select & Glacier Select

s3에서 파일을 검색할 때 검색한 다음 필터링하면 너무 많은 데이터를 검색하게 된다

  • Server-side filtering을 통해 더 적은 수의 데이터를 검색할 수 있고 이는 성능 향상을 가져옴
  • SQ문에서 간단히 행과열을 사용해 필터링 가능
  • 네트워크 전송이 줄기 때문에 데이터 검색과 필터링에 드는 클라이언트 측의 CPU 비용도 줄어든다
  • S3 Select 이전에는 모든 데이터를 검색한 후 애플리케이션에서 필터링을 통해 필요한 찾음
  • S3 select를 사용하면 Amazon S3가 대신 파일을 필터링 해주고 필요한 데이터만 검색할 수 있다

간단한 필터링에 S3 Select & Glacier Select를 사용하면 좋다

 

 

S3 Batch Operations

  • 단일 요청으로 기존 S3 객체에서 대량 작업을 수행하는 서비스
    • 많은 S3 객체의 메타데이터와 프로퍼티 수정
    • S3 버킷간 객체 복사
    • 암호화되지 않은 모든 객체 암호화 가능
    • ACL, 태그 수정
    • S3 Glacier에서 한 번에 많은 객체 복원
    • 람다 함수를 호출하여 배치 연산의 각 객체에서 커스텀한 작업 수행 가능
  • 객체 목록에서 원하는 작업은 무엇이든지 수행할 수 있다.
  • 작업은 객체의 목록, 수행할 작업과 작업에 대한 옵션 매개 변수로 구성
  • 직접 스크립트를 짜지 않고 배치 연산을 사용하는 이유
    • 재시도 관리
    • 진행사항 추적, 작업 완료 알림
    • 보고서 생성
  • S3 Inventory라는 기능을 사용해 객체 목록을 불러오고 Select를 사용해 객체를 필터링
  • S3 배치 작업에 수행할 작업, 매개변수와 함께 객체 목록 전달
  • 배치작업 수행

유스케이스

  • S3 Inventory를 사용해 암호화되지 않은 모든 객체를 찾는다
  • Batch 연산을 통해 한 번에 모두 암호화

 

'TIL > AWS' 카테고리의 다른 글

AWS CloudFront  (0) 2023.05.30
AWS S3 보안  (0) 2023.05.29
Amazon S3  (0) 2023.05.28
애플리케이션을 빠르게 인스턴스화 & Elastic Beanstalk  (0) 2023.05.27
AWS Route 53  (0) 2023.05.25
복사했습니다!