1
느슨하게 결합된 서비스로 설계
경량화된 컨테이너 또는 서버리스 서비스
상태 비저장(Stateless) 서비스와 상태 저장(Stateful) 서비스로 분리하여 설계
탄력적이고 회복력 있는 셀프서비스 인프라
서버 및 운영 체제 종속성은 격리되어 관리
2
현대화?
애플리케이션을 컨테이너로 이동하는 것을 고려?
관리형 AWS컨테이너 서비스로 이동하여 운영 단순화 관리 줄이자
새로운 애플리케이션이나 기능 구축?
람다와 같은 서버리스 사용 권장한다.
1
당근 마켓은 월평균 1,600만 명 사용자 접속
2
채팅 데이터 분리하기
데이터 베이스 리서치 진행?
매지니드 서비스 일 것
최대한 운영 시간을 아낄 것
데이터 용량 확장이 용이할 것
결과
다이나모 디비 사용
성능은 수 ms 보장함
1
일반적인 SQL을 사용하지 못함
데이터를 가져오기 위해선 쿼리와 스캔으로 가져와야 함
쿼리는 인덱스를 건 아이템만 가져올 수 있음
스캔으로 필터를 걸 수 있음
단지, 실제 데이터를 전부 읽으면서 필터링해서 가져오므로 비용 발생함. 실서비스에서는 사용하지 않음.
처음에 스캔만 사용해 서비스를 구현한다면 비용 문제 발생.
인덱스를 잘해야 하므로 고민이 필요함.
풀 스캔으로 전체 데이터에서 필터링하고 싶은 경우 다이나모 기능으로는 거의 불가능함.
2
다이나모 디비를 사용한다면 별도의 분석을 위한 데이터 파이프라인을 구축해야 한다.
API 서버 만듦
Internal API 만듦
테스트 케이스 구축
gRPC 구축
WebSocket 구축
REST API 구축
ElastiCache-Redis 사용
다이나모 디비를 실시간으로 처리하기 위한 다이나모 디비 스트림 - 24시간 저장.
원하는 곳에 적재하기 위한 람다 이벤트 버퍼
이벤트 버퍼를 받아 스토리지에 저장하는 파이어호스
데이터 웨어 하우스의 스토리지 역할을 하는 s3
데이터 보기는 아테나
AWS Glue 사용
AWS Step Function 사용
apache Airflow사용
별도의 분석을 위한 데이터 파이프라인을 구축
Fluentbit를 통해 매니지드 카프카로 보냄
당근 마켓 채팅 데이터 분리하기 확인 하자
다이나모 디비 사용하면서 어려운 점 인지하자.
채팅 데이터를 다른 서비스에서 활용하기 확인하자
https://brunch.co.kr/@topasvga/2439
감사합니다.