D2-10. S3 Event Notifications

D2-10. S3 Event Notifications

in

1. Amazon S3 (Simple Storage Service)

Amazon S3는 인터넷을 위한 확장성이 매우 뛰어난 객체 스토리지(Object Storage) 서비스입니다.

파일 시스템(폴더/디렉터리)과 달리, 데이터를 객체(Object) 라는 단위로 버킷(Bucket) 이라는 고유한 이름의 컨테이너에 저장합니다.

1-1. 핵심 구성 요소

항목 설명
버킷 (Bucket) 객체(데이터)를 저장하는 최상위 컨테이너입니다.버킷 이름은 AWS의 모든 리전에서 전역적으로 고유해야 합니다.
객체 (Object) S3에 저장되는 **실제 데이터(파일)**입니다.객체는 데이터 자체와 해당 데이터에 대한 메타데이터(설명 데이터)로 구성됩니다.
키 (Key) 버킷 내에서 객체를 고유하게 식별하는 이름(파일 경로) 입니다.
주요 용도 웹사이트 호스팅, 백업 및 아카이빙, 데이터 레이크 (Athena, Macie 분석 대상), 애플리케이션 데이터 저장, CloudTrail 로그 저장 등

2. S3 Event Notifications

S3 Event Notifications는 S3 버킷에서 특정 이벤트(예: 객체 생성, 삭제)가 발생했을 때, 이를 대상 서비스로 전송하여 자동화된 워크플로우를 트리거하는 기능입니다.

2-1. Event 및 필터링

이미지 업로드 시 썸네일 자동 생성, 데이터 업로드 시 데이터베이스 메타데이터 업데이트, 객체 삭제 시 로그 기록 등 이벤트 기반 자동화에 사용됩니다.

항목 설명
이벤트 유형 ObjectCreated, ObjectRemoved, ObjectRestore, Replication 등 다양한 버킷 활동이 이벤트로 감지될 수 있습니다.
필터링 이벤트가 발생할 객체를 접두사접미사로 필터링할 수 있습니다.

2-2. 전송 방식

1). Classic

S3가 대상 서비스에 이벤트를 보낼 수 있도록, 대상 서비스의 리소스 기반 정책을 수정해야 합니다.

  • SNS Topic
  • SQS Queue
  • Lambda Function

주의할 점은 일반적으로 이벤트 전달 시간이 몇 초 ~ 몇 분 이상이 걸릴 수 있습니다.

2). EventBridge 통합

모든 S3 이벤트는 별도 설정 없이 기본적으로 EventBridge의 Default Event Bus로 전송됩니다.

Classic 방식보다 강력하고 유연한 기능이 제공됩니다.

  • 고급 필터링: 객체 메타데이터, 크기 등으로 필터링
  • 다중 대상: 18개 이상의 AWS 서비스로 전달 가능
  • EventBridge 기능 활용: 이벤트 아카이브 및 재전송, 신뢰성 높은 전달 가능