발표영상 다시보기: https://youtu.be/BIm8E6XnXmQ
모던 애플리케이션 개발을 위해서 이벤트 드리븐 아키텍처가 많은 관심을 받고 있습니다. AWS는 이벤트 드리븐 아키텍처를 보다 쉽게 구현하고 운영할 수 있도록 도구와 인프라에 투자했습니다. 이 세션에서는 이벤트가 무엇이며, 비동기 처리가 필요한 이유와 AWS가 지원하는 애플리케이션 통합 서비스를 선택하는 방법과 각 서비스를 소개합니다. 이 세션이 끝나면 분산 환경의 마이크로서비스 아키텍처를 효율적으로 구성할 수 있게 됩니다.
18. ‘이벤트’ 란?
• 발생한 사건을 표현하는 메시지 형식
• 중요한 정보, 이벤트 자체에 충분한 정보를 포함.
• 불변—과거의 메시지를 변경할 수 없음을 보장
• 과거 시제의 동사로 표현됨. 예, “새로운 주문이 생성되었다”
• 이벤트 생성 시스템은 이벤트가 어떻게 처리되는지 관여하지 않음.
24. 이벤트 드리븐 구조가 적합?
1. 트랜잭션 정보가 포함된 이벤트를 전달하고 있습니까?
“0973482 계정이 ID가
238479r8732인 전기밥솥을
구매함. $131.32, Visa
승인번호 341513, 프라임
배송, 밴쿠버 조지아st 510W로
전달.
25. 이벤트 드리븐 구조가 적합?
1. 트랜잭션 정보가 포함된 이벤트를 전달하고 있습니까?
2. 추가 비용 없이 적용 가능한 유용한 정보입니까?
26. 이벤트 드리븐 구조가 적합?
1. 트랜잭션 정보가 포함된 이벤트를 전달하고 있습니까?
2. 추가 비용 없이 적용 가능한 유용한 정보입니까?
3. 강력하게 분리된 마이크로 서비스를 위해 필요한가요?
27. 이벤트 드리븐 구조가 적합?
1. 트랜잭션 정보가 포함된 이벤트를 전달하고 있습니까?
2. 추가 비용 없이 적용 가능한 유용한 정보입니까?
3. 강력하게 분리된 마이크로 서비스를 위해 필요한가요?
4. Pub Sub 구조가 필요한가요?
Photo: Terje Skjerdal
29. Pub/Sub을 지원하는 AWS 서비스
Amazon Simple
Notification Service
(Amazon SNS)
서버리스 Pub/Sub
Amazon MQ
관리형 메시지
브로커
Amazon Kinesis
Data Streams
Amazon Managed
Streaming for Kafka
데이터 스트리밍
Amazon
EventBridge
36. Amazon EventBridge vs. SNS
항 목 Amazon EventBridge Amazon SNS
소 스
90 개 이상의 AWS 서비스
21 SaaS 어플리케이션
커스텀 어플리케이션
30 AWS 서비스
커스텀 어플리케이션
타 겟 17 AWS 서비스 2 AWS 서비스 + 4 웹 & 모바일 엔드포인트
확 장 룰 당 5개 타겟 토픽 당 백만 이상의 구독을 지원
필터링 모든 이벤트 본문을 룰로 적용 가능 메시지 속성만 사용 가능
지연 시간 중간값 560ms 중간값 25ms
요 금
AWS 이벤트 소스는 무료
AWS 타겟 전달은 무료
백만 커스텀 또는 SaaS 이벤트 백만 건당
$1.00
AWS 서비스(SQS, Lambda) 전달은 무료
토픽별 백만건 당 $0.50
모바일 푸시 백만 건당 $0.50, HTTP/S 백만 건당
$0.60
이메일 십만 건당 $2, SMS은 지역마다 다름
39. 메시지 채널
지점간 (큐) 게시자-구독자 (토픽)
단일 수신자가 메시지 수신
확장에 용이
최대 트래픽 제한에 용이
수신자
송신자
큐
40. 메시지 채널
지점간 (큐) 게시자-구독자 (토픽)
다중 구독자가 수신
내구성 있는 구독자 구성
구독자
게시자
토픽
단일 수신자가 메시지 수신
확장에 용이
최대 트래픽 제한에 용이
수신자
송신자
큐
41. 메시지 채널
지점간 (큐) 게시자-구독자 (토픽)
큐 기능의 AWS 서비스:
Amazon Simple Queue Services (SQS)
서버리스 & 클라우드 네이티브
토픽 기능의 AWS 서비스:
Amazon Simple Notification Service (Amazon SNS)
Amazon EventBridge
서버리스 & 클라우드 네이티브
수신자
송신자
구독자
게시자
Amazon SQS Amazon SNS
42. 메시지 채널
지점간 (큐) 게시자-구독자 (토픽)
큐 기능의 AWS 서비스(비 서버리스):
Amazon MQ (managed Apache Active MQ)
JMS, AMQP 등의 프로토콜을 사용하는 앱에 사용
토픽 기능의 AWS 서비스(비 서버리스):
Amazon MQ (managed Apache Active MQ)
JMS, AMQP 등의 프로토콜을 사용하는 앱에 사용
수신자
송신자
구독자
게시자
Amazon MQ Amazon MQ
48. 메시지 채널
정확히 한번? 그런데!
메시지는 소비됐으나 처리가 완료되지 않은 경우는
어떻게 처리할까요?
→ 시스템은 여전히 중복된 메시지를 처리할 수 있어야
합니다
→ 메시지는 멱등성을 가진 방식으로 처리될 수 있어야
합니다
메시지 전달 QoS
적어도 한번
최대 한번
정확히 한번
큐
수신자발신자
51. 메시지 라우팅
메시지 필터 대기자 목록
연관된 집합의 메시지만 수신함
구독자에 의해 제어됨
게시자는 메시지 처리에 관여하지 않음
구독자
게시자
토픽
색상 = 파랑
색상 = 노랑
52. 메시지 라우팅
대기자 목록
연관된 집합의 구독자에게만 전달됨
발신자 또는 별도의 컴포넌트가 제어함
잠재적인 커플링이 추가됨
구독자
게시자
대기자 목록
메시지 필터
연관된 집합의 메시지만 수신함
구독자에 의해 제어됨
게시자는 메시지 처리에 관여하지 않음
구독자
게시자
토픽
색상 = 파랑
색상 = 노랑
60. Key Takeway
이벤트 드리븐 아키텍처는 마이크로서비스간의 느슨한 결합을 가능하게 합니다.
이벤트는 발생한 사건을 표현하는 형식이고, Pub/Sub 방식으로 다대다 전달이
가능합니다.
적절한 통합 서비스 및 패턴을 사용하여 어플리케이션을 통합합니다.
큐는 메시지 전달에 버퍼 역할을 수행하여 게시자와 구독자의 메시지 생성 및 처리
속도의 차이를 극복하게 합니다.