AWS(Amazon Web Service)

[AWS] Amazon S3 - Event Notifications

yunseohhe 2024. 11. 1. 21:58

S3 Event Notifications

  • 이벤트란
      - 예를 들어 객체가 생성되었거나 객체가 삭제되었거나 객체가 복구되었거나 복제되는 것 등을 말한다.
  • S3:ObjectCreated, S3:ObjectRemoved, S3:ObjectRestore, S3:Replication 등의 이벤트의 유형을 필터링할 수 있다.
  • 객체 이름 필터링도 가능하다.
      - 예를 들어, .jpg로 끝나는 객체만 고려하고 싶다면 가능하다.
  • 이벤트 알림의 활용 사례
      - Amazon S3에서 일어나는 특정한 이벤트에 자동으로 반응하려는 경우나 S3에 업로드된 모든 이미지의 섬네일을 생성하려 할 수도 있다.
  • 원하는 만큼 S3 이벤트를 만들 수 있다.

(출처 : 구글이미지)

 

S3 Event Notifications - IAM Permissions

(출처 : 구글이미지)

  • 이벤트 알림이 작동하려면 IAM 권한을 가지고 있어야한다.
      - 예를 들어, S3 서비스는 데이터를 SNS 토픽에 전송하고 그렇게 하기 위해서 소위 SNS 리소스 정책이라는 것을 첨부한다.
  • SNS 리소스 정책은 사용자가 SNS 토픽에 첨부하는 IAM 정책이고, S3 버킷이 SNS 토픽에 직접 메시지를 전송하도록 허용해준다.
  • SQS를 사용할 경우에 SQS 리소스 액세스 정책을 만들어야되고, 이게 S3 서비스가 우리의 SQS Queue에 데이터를 전송하도록 허가해준다.
  • 마지막으로 람다 함수의 경우에는 역시 람다 리소스 정책을 람다 함수에 첨부해서 Amazon S3가 우리의 함수를 호출할 권한을 제공해야한다.
  • SNS, SQS, 람다 함수가 이벤트 알림 타킷이라는 점을 여기서 기억해야한다.

 

S3 Event Notifications with Amazon EventBridge

(출처 : 구글이미지)

  • 이벤트는 Amazon S3 버킷으로 갈 것이고, 또 Amazon EventBridge로 가게 된다
      = 무슨 이벤트든 결국 모두 Amazon EventBridge로 간다.
  • EventBridge에서 규칙을 설정할 수 있다.
      - 이 규칙들 덕분에 그 이벤트들을 18가지 AWS 서비스에 전송할 수 있다.
      - S3 이벤트 알림의 능력이 크게 향상된다. 
  • 메타데이터, 객체 사이즈, 이름으로 필터링을 하고 한꺼번에 다수의 대상에 전송이 가능해진다.
      - 예를 들면, Step Functions, Kinesis Streams, Friehose 등에 전송할 수 있다. 또는 아카이빙, 이벤트 중계, 안정적인 전달 등 Amazon EventBridge에서 바로 제공하는 기능을 사용할 수도 있다.

 

 

이 글에서 요점은 Amazon S3에서 일어나는 이벤트를 SNS, 람다 혹은 Amazon EventBridge에 전송해서 그런 이벤트에 반응할 수 있다는 것을 알아가면 된다!