[레포트]S3 이벤트 알림 및 EventBridge를 통해 확장 가능한 아키텍처 구축 #STG326 #AWSreInvent

2023.12.20

안녕하세요, 클래스메소드의 서은우 입니다.

현지에서 참가 중인 AWS re:Invent 2023의 "Build scalable architectures with S3 Event Notifications & EventBridge" 세션을 듣고 그 내용을 블로그를 통해 소개하고자합니다.

개요

In this chalk talk, learn how to use Amazon S3 Event Notifications with Amazon EventBridge to build scalable data ingestion architectures for use cases such as data lake, security analysis of existing and new objects, and backup and replication of S3 objects.

이 chalk talk 강연에서는 Amazon EventBridge와 함께 Amazon S3 Event Notifications를 사용하여 데이터 레이크, 기존 개체 및 새 개체의 보안 분석, S3 개체의 백업 및 복제와 같은 사용 사례를 위한 확장 가능한 데이터 수집 아키텍처를 구축하는 방법에 대해 알아봅니다.

SPEAKERS

  • Andrew Peace
  • Girish Chanchlani

아젠다

  • Customer problem
  • Amazon S3 Event Notifications
  • Amazon EventBridge
  • Demo architectures
  • Key takeaways

세션 내용

Let's solve a problem together

비디오 프로세싱 어플리케이션을 예를 들어 보면, 로우 비디오 파일을 저장하고 변환시키고 변환된 비디오 파일을 스토리지에 저장하는 것과 같은 로직을 생각할 수 있습니다.

이와 같은 로직의 어플리케이션을 이벤트 기반 아키텍처를 사용하여 다시 설계하면, 사진과 같은 S3 이벤트 알림 기반의 로직을 작성할 수 있습니다. S3 버킷에 대한 오브젝트의 생성, 변화 등의 이벤트를 트리거로 Amazon EventBridge나 Lambda와 같은 서비스와 연계할 수 있는 것입니다.

S3 Event Notifications with EventBridge

다음 사진은 S3 Event Notification과 Amazon EventBridge를 사용한 아키텍처의 간단한 예시입니다. S3 Event Notification은 버킷 레벨에서 작동하며, 다음과 같은 이벤트 타입을 Amazon EventBridge에서 사용할수 있습니다.

  • 오브젝트: 생성, 삭제
  • 복구: 시작, 완료, 만료
  • 태깅: 추가, 삭제
  • S3 Intelligent-Tiering: 액세스 티어 변경
  • ACL: 업데이트
  • 스토리지 클래스: 스토리지 클래스 변경

EventBridge는 같은 이벤트에 대해 여러 규칙들을 설정할 수 있으며 유연한 설정과 관리가 가능합니다. 또한 SNS, Lambda를 포함하여 20개 이상의 서비스와 연계하는 것이 가능합니다.

Demo architectures

3가지의 데모 아키텍처를 통해 S3 Event Notifications와 EventBridge의 좀 더 구체적인 활용 방법을 알아보도록하겠습니다.

Object created event notification use cases

Object created 이벤트를 트리거로하는 ETL 아키텍처를 작성할 수 있습니다.

유저는 EventBridge를 사용하여 S3 버킷에서 발생하는 Object created 이벤트를 트리거로 PII redaction, Video transcoding, ELT processing 을 처리하기 위한 규칙을 생성할 수 있습니다. 이 사례는 손 쉽게 ELT 작업을 위한 AWS Glue, Athena, QuickSight 와 같은 서비스들을 연계할 수 있음을 알 수 있었습니다.

Malware detection application architecture

또한, 발생한 이벤트를 다른 계정에 전송하는 계정 간 이벤트 전송 기능을 사용하여, 멀웨어 탐지 어플리케이션을 위한 아키텍처를 작성할 수 있습니다.

Object created 이벤트가 발생하면 어플리케이션 계정은 보안 계정으로 해당 이벤트를 전송합니다. 그리고 보안 계정에서 안전하게 생성된 오브젝트에 대한 검사를 진행하고 검사가 끝난 오브젝트에는 태그를 추가하고, 감염 위험이 있는 오브젝트는 별도의 오브젝트에 복사하여 저장하는 아키텍처입니다.

Backup application architecture

마지막으로 백업 어플리케이션의 아키텍처입니다.

EventBridge는 파일의 생성, 삭제 이벤트인 Object created, Deleted 이벤트를 트리거로합니다. EventBridge는 백업/복구를 실행하는 로직을 실행하고 아카이브 계층인 Glacier에 저장되어 있는 백업 데이터를 복구합니다. 그리고 데이터가 복구 되면서 발생하는 Object Restore Initiated/Completed 이벤트를 다시 트리거로 할 수 있습니다.

감상

본 세션을 통해 S3 이벤트 알림을 트리거로한 EventBridge 아키텍처에 대해 배울 수 있었습니다.

저도 이전에 다른 AWS 서비스의 이벤트를 트리거로하여 EventBridge를 사용해 본적이 있지만, S3 이벤트 알림을 활용한 아키텍처는 처음 알게 되었는데요, 이로 인해 앞으로 더욱 다양한 아키텍처에 EventBridge의 사용을 생각해볼 수 있게 된 것 같습니다.