Programming

[AWS, Certified Developer Associate] S3 - LifeCycle, 이벤트 알림, 성능, Select 및 Glacier Select, 객체 태그, 메타 데이터

S3 - LifeCycle

  • Transaction Actions
    • 생성한지 60일 후 Standard IA로 이동
    • 6개월 후 아카이빙을 위해 Glacier로 이동
  • Expiration Actions
    • 일정 기간 후 객체가 삭제되도록 처리
    • ex) 1년 후 액세스 로그 파일 삭제 / 버저닝을 활성화해 이전 버전 삭제
  • 특정 접두사 규칙 / 태그에 적용해 버킷 내 특정 경로에만 적용되도록 처리 가능

 

S3 - 이벤트 알림

  • Event : 객체 생성 / 삭제 / 복원 / 복제
  • 이벤트 필터링 가능 (확장자가 jpg)
  • ex) S3에 업로드되는 모든 이미지의 썸네일 생성
    • 이벤트 알림 생성 후 SNS / SQS / Lambda 으로 보내 처리 가능
  • IAM 권한 필요
    • S3의 IAM 역할 사용 X
    • ex) SNS에 전송 시 SNS 주제로 SNS Resource (Access) Policy 첨부
  • w/ EventBridge
    • EventBridge 내 규칙 설정 -> 18 종류의 AWS 서비스를 목적지로 이벤트 전송 가능
    • S3 -> EventBridge -> AWS Service 
    • 이벤트 알림 기능 향상
    • 더 많은 필터링 옵션 : 메타데이터, 객체크기, 이름 필터링 가능
    • 여러 목적지로 전송 가능 (Step Functions, Kinesis Streams, Firehose 등)
    • 이벤트 보관, 재현, 안정적 전송 기능 제공

 

S3 - 성능

  • 버킷의 접두사당 초당 3500 PUT/COPY/POST/DELETE와 5500 GET/HEAD 요청 처리 가능
  • 성능 향상 1) 멀티파트 업로드
    • 100MB 이상 파일의 경우 멀티파트 업로드 권장
    • 5GB 이상 파일의 경우 필수
    • 멀티파트 업로드는 업로드 병렬화를 통해 대역폭 극대화 > 전송속도 향상
  • 성능 향상 2) S3 Transfer Acceleration
    • AWS 엣지 로케이션으로 파일을 전송
    • 엣지 로케이션은 대상 지역의 S3 버킷으로 데이터 전달해 전송속도 향상
    • 멀티파트 업로드와 호환됨
    • (File in USA) - public www -> (Edge Location USA) - private AWS -> (S3 Bucket Australia)
    • 퍼블릭 인터넷 양 최소화 / 프라이빗 네트워크 극대화 > 전송속도 향상
  • 성능 향상 3) S3 Byte-Range Fetch
    • 특정 바이트 범위만큼 병렬화 작업으로 GET 요청
    • 다운로드 속도 극대화

 

S3 - Select 및 Glacier Select

  • S3에서 검색 후 필터링으로 데이터를 많이 검색해야 하는 이슈
  • SQL을 사용해 서버측 필터링 수행
  • 간단한 SQL문을 통해 row & column으로 필터링해 클라이언트 측 CPU cost 감소
  • 400% 빠름 / 80% 비용절감

 

S3 - 객체 태그 및 메타데이터

  • 메타데이터
    • 객체 생성 및 업로드 시 메타데이터도 할당 가능
    • 사용자 정의 메타데이터 업로드 시 x-amz-meta- 로 시작하는 이름 부여 필요
    • 메타데이터는 객체 검색 시 검색 가능
    • 객체 자체에 대한 정보를 제공
      • Content-Type / Content-Length / x-amz-meta-origin: paris 등
  • 객체 태그
    • 객체에 대한 key-value 형식으로 지정
    • 권한 세부화 / 액세스 부여 등을 구분 가능
  • 메타데이터와 객체태그 검색 / 필터링 불가 
    • 외부 DB(dynamoDB 등)을 통해 인덱스를 구축해야함

 

 


Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!