brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Sep 30. 2024

3333. 채널톡,RDBMS-NoSQL

AWS 서밋 2024, 채널코퍼레이션 사례

다이나모 DB를 메엔 디비로 사용해보자



<1> 다이나모 DB

<2> SQS

<3> 채널톡 , 고객 연락처 서비스, 마케팅 기능

<4> 기존 문제점 4가지

<5> 스파이크 트래픽을 처리하기 위한 SQS




<1> 다이나모 DB


메인 DB를 다이나모 DB로 사용함!!!


다이나모 DB는 버전이 없다 = 유지보수가 필요 없다.



1

다이나모 디비?


일관된 10밀리초 미만의 읽기 및 쓰기 성능.

글로벌 테이블로 복제 가능.

다이나모 DB 를  S3로 , S3를 다이나모 DB로 내보내기.




<2> SQS


버전이 없다 = 유지보수가 필요 없다.


1

간편

규모에 맞는 안정성

보안

비용 효율적인 확장성.



2

SQS 대기열 2가지?


표준 대기열 = 무제한 처리, 최소 한 번 전달

FIFO 대기열 = 높은 처리량, 정확히 한 번 처리, 선입 선출 전달.





<3> 채널톡 , 고객 연락처 서비스, 마케팅 기능



1

마케팅 기능 ?


이벤트 기반으로 메시지를 보내는 캠페인 기능.

고객의 행동 기반으로 하는 아웃바운드 메시지 기능


2

일회성 메시지 기능.






<4> 기존 문제점 4가지



1

스파이크 트래픽과 비용 비효율 = 낭비 되는 자원 발생

부하 전파 - 특정 테이블에 부하 발생

오퍼레이션 호환성

마이그레이션




2

해결 방안?

다이나모 디비 사용함.



스파이크 트래픽과 비용 비효율 = 낭비 되는 자원 발생  

=> 요청당 과금


부하 전파 - 특정 테이블에 부하 발생

=> 독립적인 테이블 설계


오퍼레이션 호환성

=> 채널톡 채팅의 주요 구성 요소 ?   

채팅방(챗) , 챗 뱃지(안읽은 메시지) , 매니저 뱃지 (총 안읽은 메시지 표시)

다이나모 디비는 카운트가 없다.

새로운 테이블 전략이 필요했다. = 매니저 뱃지를 표시하는 필드를 만듬.


마이그레이션

=> 다이나모 디비의 병렬 스캔 아이디 차용. BatchWriteIem 사용




3

추가 개선?


DynamoDBEmbedded 활용

테이블 생성 및 삭제 반복

20여배 속도 향상




<5> 스파이크 트래픽을 처리하기 위한 SQS


트래픽 버퍼

완전 관리형

적절한 키 디자인




감사합니다.




                    

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari