참고
DynamoDB
NOTE
완전 관리형 서버리스 데이터베이스!
DynamoDB 테이블 형식
•
데이터가 다중 AZ간에 복제되어 가용성이 높다.
•
NoSQL DB이며, 관계형은 아니지만 Transaction지원
•
초당 수백만 개의 요청을 처리하고, 수조 개의 행을 처리하는 등 처리속도가 빠르고 일관성 높음
•
DynamoDB는 테이블로 구성되며 DB가 이미 존재하는 서비스로 따로 생성하지 않아도됨
•
DynamoDB 항목의 최대 크기는 400KB
•
스키마를 빠르게 전개해야할 때 유용하다.
•
읽기 / 쓰기 용량 설정 모드
◦
프로비저닝 된 모드(기본)
▪
초당 읽기 / 쓰기 요청 수를 예측해서 미리 지정
▪
미리 용량을 계획하고 읽기 용량 단위와 쓰기 용량 단위만큼 비용지불
▪
오토 스케일링 기능으로 테이블 로드에 따라 조정할 수 있음
▪
비용절감을 원할 때 사용
◦
온디맨드 모드
▪
읽기 / 쓰기 워크로드에 따라 자동으로 확장
▪
워크로드를 예측할 수 없거나 급격히 증가하는 경우에 유용
▪
사용한 만큼 지불함
DynamoDB 고급기능
NOTE
DynamoDB Acclerator(DAX)
•
DynamoDB를 위한 고가용성의 완전 관리형 무결절 인메모리 캐시
•
DAX는 캐시 데이터에 마이크로초 수준의 지연시간을 제공
•
집계 결과 저장에는 ElasticCache가 좋고, 대용량의 연산을 저장할 때는 DynamoDB가 좋음
DynamoDB - 스트림 처리
•
테이블의 CRUD를 포함한 모든 사항에 스트림 생성 가능
•
실시간으로 사용 분석, 파생 테이블 삽입, 리전 간 복제 가능
•
DynamoDB 테이블 변경 사항에 대해 Lambda 함수 실행 가능
DynamoDB Global Tables
애플리케이션이 모든 리전에서 테이블을 읽고 쓸 수 있음!
•
여러 리전에 걸쳐 데이터를 이용할 때 지연 시간을 줄이려고 사용
•
다중 활성 복제
DynamoDB – Time To Live (TTL)
•
타임스탬프 만료 후에 자동으로 아이템을 삭제할 수 있는 기능
•
웹 세션 핸들링이나 일정 기간 이후 데이터 삭제규정을 따라야 할 때 사용
AWS Step Function
NOTE
Serverless Workflow를 시각적으로 구성할 수 있는 기능! Lambda 함수를 오케스트레이션 할 때 사용한다.
•
시퀀스, 병렬, 조건, 타임아웃, 오류처리 등..
•
사용사례
◦
주문 이행
◦
데이터 처리
◦
웹 애플리케이션