SlideShare a Scribd company logo
DynamoDB의 안과 밖
정민영
AWSKRUG
DynamoDB의 바깥
Amazon DynamoDB는 완벽하게 관리되는
NoSQL 데이터베이스 서비스로, 원활한 확장성과
함께 빠르고 예측 가능한 성능을 제공합니다.
DynamoDB는 분산 데이터베이스를 운영하고 조정
하는 데 따른 관리 부담을 줄이며, 따라서 하드웨어
프로비저닝, 설정 및 구성, 복제, 소프트웨어 패치 또
는 클러스터 조정에 대해 걱정할 필요가 없습니다
DynamoDB는 테이블의 데이터와 트래픽을 충분한 수
의 서버로 자동 분산하여 처리량 및 스토리지 요구 사
항을 처리하면서도 일관되고 빠른 성능을 유지합니다.
모든 데이터가 SSD(Solid State Disk)에 저장되고
AWS 리전의 여러 가용 영역에 걸쳐 자동 복제되기 때
문에 확실한 고가용성과 데이터 내구성을 보입니다.
안 쓸 수 없는 DDB
• 관리형이면서
• 성능을 예측하여 설계할 수 있고
• 일관된 성능을 보장하는데
• 고가용성과 내구성까지?
인생이 그렇게 쉬울리가
DynamoDB에 관한
가장 흔한 질문
왜 돈낸만큼
성능이 나오지 않나요?
왜 처리량에 여유가 있는데
쓰로팅이 발생하나요?
DDB의 특징에 대한
바른 이해?
• DDB는 고유의 특징과 제약을 동시에 지님
• 특히 일관된 성능(=Latency)를 제공하는데 주력
• ex) 성능 지연 대신 요청 거부(Throttling)
DDB의 가장 큰 장점
DDB 특징/제약의 원흉
일관된 성능 제공
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
??
일관된 성능을 제공하기 위한
DDB의 안쪽
Throughput
• 테이블의 읽기(RCU)와 쓰기(WCU)에 원하는 만큼
의 처리량을 설정
• RCU와 WCU는 각기 독립적으로 설정
• 1 WCU = 1KB/sec
• 1 RCU = 4KB/sec **
• DDB는 항목의 일관성에 대하여 2가지 옵션을 제공.
• Strongly vs Eventually
• 1 RCU는 최대 4KB의 항목에 대하여, Strongly 조건으
로 1/sec, Eventually 조건으로 2/sec
• ex) 6KB 항목에 대해서 100회 읽기를 Strongly/
Eventually 각 수행할 경우 필요 RCU
• Ceiling(6KB/4KB) * 100 = 2 * 1 * 100 = 200
• Ceiling(6KB/4KB) / 2 * 100 = 2 / 2 * 100 = 100
파티셔닝
• DDB는 일관된 성능을 제공하기 위해 한 테이블을 여러개의 파
티션으로 분산
• 파티션의 갯수는 Throughput과 테이블의 크기로 결정
• 어떤 항목이 어떤 파티션에 저장될지는 분산키(Hash Key)에
의해 결정
• 파티션의 갯수를 결정하는 공식
• MAX((RCU/3000+WCU/1000), Table Size(GB)/10GB)
• MAX((5000/3000+500/1000), 8/10) = MAX(3, 1) = 3
00 55 A954 AA FF
Hash table
• Hash key uniquely identifies an item
• Hash key is used for building an unordered hash index
• Table can be partitioned for scale
00 FF
Id = 1
Name = Jim
Hash (1) = 7B
Id = 2
Name = Andy
Dept = Engg
Hash (2) = 48
Id = 3
Name = Kim
Dept = Ops
Hash (3) = CD
Key Space
그렇다면….
• 매우 고르게 분포하는 분산키를 사용하고 (Uniform
distribution Hash key)
• 적절한 처리량을 설정하면 아무 문제 없겠구나!
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
DDB의 함정
1. 설정한 Throughput은
모든 파티션에 균등 분배된다
읽기와 쓰기에서 분산키의
인기도가 다를 수 있음
(Hot Key)
Example: hot keysPartition
Time
Heat
2. 한번 증가한 파티션
은 줄어들지 않는다
Throughput
확장의 고민요소
= 파티션당 RCU/WCU
는 갈수록 줄어들 수 있음
RCU/WCU가 여유 있는
데 쓰로팅 발생의 주 원인
Throughput을 무조건
늘리는 대응의 위험성
3. LSI는 테이블의
WCU를 소모한다
평균 항목 크기 계산에
서 흔히 놓치는 지점
사용되지 않는
Throughput은 저장된다
고 들었는데요?
Burst capacity is built-in
0
400
800
1200
1600
CapacityUnits
Time
Provisioned Consumed
“Save up” unused capacity
Consume saved up capacity
Burst capacity: 300 seconds
(1200 × 300 = 3600 CU)
Burst capacity may not be sufficient
0
400
800
1200
1600
CapacityUnits
Time
Provisioned Consumed Attempted
Burst capacity: 300 seconds
(1200 × 300 = 3600 CU)
Throttled requests
Don’t completely depend on burst capacity… provision sufficient throughput
하지만 이것도
전부 파티션 단위
제발 패치좀….
• DDB의 Throughput은 테이블 단위로 설정하지만*
파티션에 균등 분배됨. 즉 사실상 Throughput은 파
티션 단위의 설정.
• 별도의 요청 없이는 파티션 상황을 추적하기 어려워
Throughput 설계에 어려움이 많음
• Throughput 감소가 4회/24시간 제약
• * GSI제외
그럼에도 불구하고….
장점도 뚜렷한 DDB
• Latency를 일정하게 낮게 관리할 수 있는건 매우 큰
장점
• 저장 용량에 신경쓰지 않고 이용 가능
• Rich한 자료형 지원으로 복잡한 고급 기능 처리 가능
나름의 BP들
테이블 관리
• 명백하게 인기 있는 항목(Hot)과 덜 인기 있는 항목
(Cold)을 분리할 수 있다면, 테이블을 분리
• ex) 시계열 데이터의 경우 연-월 혹은 연-월-일 단
위의 테이블 분리
• 과거 테이블의 경우 쓰기 혹은 읽기가 발생하지 않
을 수 있어 비용 절감
• Index에 모든 Attribute를 포함시키지 않고 LSI 보다
GSI로 대체
50% 이상 버퍼
https://github.com/sebdah/dynamic-dynamodb
DynamoDB Stream
• DDB에서 Scan은 매우 비싸고 Query도 Get에 비하
면 상대적으로 고 비용
• 키 혹은 내용 검색을 위해서 DDB Stream과
ElasticSearch를 연계해서 이용하는 방법 고려
• 테이블을 분산시키는 경우등에도 유용
Q&A
Reference
• http://www.slideshare.net/
AmazonWebServices/deep-dive-amazon-
dynamodb
• http://www.slideshare.net/
AmazonWebServices/deep-dive-on-amazon-
dynamodb
• https://docs.aws.amazon.com/ko_kr/
amazondynamodb/latest/developerguide/
Introduction.html

More Related Content

PDF
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
PDF
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PDF
Amazon Aurora 100% 활용하기
PDF
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
PDF
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
PDF
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
PDF
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
PDF
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
Amazon Aurora 100% 활용하기
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...

What's hot (20)

PDF
Amazon Aurora Deep Dive (김기완) - AWS DB Day
PDF
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
PDF
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
PDF
20200811 AWS Black Belt Online Seminar CloudEndure
PDF
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
PDF
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
PDF
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
PDF
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
PDF
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
PDF
AWS 9월 웨비나 | Amazon Aurora Deep Dive
PDF
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
PDF
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
PDF
개발자가 알아야 할 Amazon DynamoDB 활용법 :: 김일호 :: AWS Summit Seoul 2016
PPTX
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
PDF
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...
PDF
AWS BlackBelt AWS上でのDDoS対策
PDF
AWS Control Tower
PDF
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
PDF
AWSで実現するバックアップとディザスタリカバリ
PDF
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Aurora Deep Dive (김기완) - AWS DB Day
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
20200811 AWS Black Belt Online Seminar CloudEndure
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
AWS 9월 웨비나 | Amazon Aurora Deep Dive
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
개발자가 알아야 할 Amazon DynamoDB 활용법 :: 김일호 :: AWS Summit Seoul 2016
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...
AWS BlackBelt AWS上でのDDoS対策
AWS Control Tower
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
AWSで実現するバックアップとディザスタリカバリ
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Ad

Similar to DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니) (20)

PDF
20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)
PDF
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
PDF
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
PPTX
AWS RDS, DYNAMO
PDF
[2016 데이터 그랜드 컨퍼런스] 2 1(빅데이터). 티맥스 빅데이터시대,더욱중요해진dw를위한어플라이언스전략
PDF
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
PDF
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
PPTX
AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)
PDF
[2017 Windows on AWS] AWS 를 활용한 SQL Server 최적 활용 방안
PDF
DynamoDB를 게임에서 사용하기 – 김성수, 박경표, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
PDF
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
PDF
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
DOCX
MySQL_SQL_Tunning_v0.1.3.docx
PPTX
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
PDF
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
PDF
Amazon RDS 서비스 활용하기 - 신규 기능 중심으로 (윤석찬) :: AWS 월간 웨비나
PDF
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
PPT
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
PDF
SQL Azure 실무 도입하기
PDF
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
AWS RDS, DYNAMO
[2016 데이터 그랜드 컨퍼런스] 2 1(빅데이터). 티맥스 빅데이터시대,더욱중요해진dw를위한어플라이언스전략
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)
[2017 Windows on AWS] AWS 를 활용한 SQL Server 최적 활용 방안
DynamoDB를 게임에서 사용하기 – 김성수, 박경표, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
MySQL_SQL_Tunning_v0.1.3.docx
10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
Amazon RDS 서비스 활용하기 - 신규 기능 중심으로 (윤석찬) :: AWS 월간 웨비나
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
SQL Azure 실무 도입하기
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
Ad

More from AWSKRUG - AWS한국사용자모임 (20)

PDF
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
PPTX
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
PDF
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
PDF
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
PDF
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
PDF
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
PPTX
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
PDF
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
PDF
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
PDF
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
PDF
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
PDF
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
PDF
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
PDF
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
PDF
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
PDF
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
PDF
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
PPTX
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
PDF
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
PDF
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C) :: AWS Community Day Online 2020
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C) :: AWS Community Day Online 2020

DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)