AWS

[AWS] DynamoDB - Streams

어코링 2024. 2. 14. 19:56
DynamoDB Streams

 

★ DynamoDB 테이블에서 일어나는 일들(삽입, 수정, 삭제 등)이 일어날 시 시간적 순서에 맞게 Streams에 기록(Log)

★ Log는 즉각 암호화가 일어나며 24시간동안 보관됨

주로 이벤트를 기록하고 이벤트 발생을 외부로 알리는 용도 (eg. Lambda Function)

이벤트 전 & 후에 대한 상황 보관

어플리케이션 : 웹사이트, 핸드폰 앱 etc

이 어플리케이션은 두개의 AWS SDK와 연동이 되어있다.

하나는 DynamoDB API이며 DynamoDB 테이블과 직접 소통하는 역할을 담당한다.

소통 : 테이블에 데이터를 넣거나 삭제하는 것

이 API는 하나의 고유한 DynamoDB 엔드포이트와 연결되어진다.

하나의 API는 하나의 엔드포인트와 연결할 수 있다.

또 다른 API인 DynamoDB Streams API는 완전 다른 DynamoDB 스트림 엔드포인트와 연결되어진다.

예를 들어 온라인 쇼핑몰을 운영한다 가정하자.

한 고객이 쇼핑몰에서 어떤 아이템을 구매하려면 쇼핑몰에서 인보이스를 만들어줄 것이다.

그리고 그 인보이스는 DynamoDB 테이블에 저장이 될 것이고 이런 데이터 삽입 역시 이벤트를 DynamoDB Stream이 인식하고 Lambda 함수가 발동한다.

새로운 인보이스가 생길 때마다 Lambda 함수가 발동

물건 구매가 이루어질 것을 감지한 Lambda 함수는 SNS로 메시지로 전송시킨다.

이 SNS는 메시지를 또 만들어 SQS라는 곳으로 보낸다.

그럼 물건을 구매한 소비자는 결제창을 볼 것이다.

결제창에 뜰 정보는 SNS로부터 가져와 줄 것이다.

결제를 누르면 구매완료

 

이처럼 DynamoDB Stream을 사용하여 DynamoDB 테이블에 어떤 이벤트가 발생됐을 때 대응할 수 있는 효율적인 아키덱처를 만드는 것이 가능해진다.

 


DynamoDB 메인 콘솔

테이블 상세

 DynamoDB Stream 세부정보

 DynamoDB Stream 관리 click

키만 보기 : 어떤데이터가 삽입되거나 변경될 시 그 데이터의 프라이머리 키만 보여달라.

새 이미지 : 이벤트가 발생한 후에 무엇이 변경되었는지에 대한 정보를 알려달라.

이전 이미지 : 이벤트가 발생되기 전에 대한 것을 알려달라. default 선택

새 이미지와 이전 이미지 : 둘다 알려달라.

활성화 click

ARN 생성됨

ARN을 복사해서 엔드포인트를 사용하여 Lambda 함수를 만들어서 이 ARN을 연결시켜주면된다.

https://eocoring.tistory.com/42

 

[AWS] Lambda 실습 (Lambda 함수 생성, test)

https://ap-northeast-2.console.aws.amazon.com/lambda/home?region=ap-northeast-2#/functions https://ap-northeast-2.console.aws.amazon.com/lambda/home?region=ap-northeast-2#/functions ap-northeast-2.console.aws.amazon.com Lambda 대시보드에 들어간다.

eocoring.tistory.com

⭡ Lambda 함수를 만드는 것은 여기에