-
[AWS] DynamoDB - StreamsAWS 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 함수를 만드는 것은 여기에
'AWS' 카테고리의 다른 글
[AWS] API Gateway (0) 2024.02.14 [AWS] API (0) 2024.02.14 [AWS] DynamoDB - DAX (0) 2024.02.14 [AWS] DynamoDB 실습 (0) 2024.02.14 [AWS] DynamoDB - Query vs Scan (0) 2024.02.14