Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. Database SA, WWSO, AWS ::: AWS Data Roadshow 2023

Amazon Web Services Korea
Amazon Web Services KoreaAmazon Web Services Korea
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon DocumentDB
For Modern Applications
Donghoon Jang
Database Solution Architect
WWSO
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Modern Database ?
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
데이터에 대한 접근방식을 재고해야 하는 이유는 무엇인가?
데이터 접근에 대한 혁신적 변화
Data grows 10x
every 5 years
Transition from IT
to DevOps increases
rate of change
Purpose-built databases provide
optimized performance and cost
savings
Explosion of data Microservices changes data and
analytics requirements
Rapid rate of change
Dev Ops
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
현대화된 어플리케이션은?
Users 1M+
Data volume Terabytes–petabytes
Locality Global
Performance Microsecond latency
Request rate Millions per second
Access Mobile, IoT, devices
Scale Virtually unlimited
Economics Pay-as-you-go
Developer access Instance API access
Development Apps and storage
are decoupled
Online
gaming
Social
media
Media
streaming
e-commerce Shared
economy
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
현대화된 어플리케이션에 적합한 데이터 인프라는?
Built-in best practices
Routine maintenance
Automated patching
Industry compliance
Isolation and security
Backup and recovery
Push-button scaling
Advanced monitoring
Automatic fail-over
Schema design
Query optimization
Query construction
Built-in best practices
Routine maintenance
Automated patching
Industry compliance
Isolation and security
Automatic fail-over
Backup and recovery
Push-button scaling
Advanced monitoring
Query construction
Query Optimization
Schema design
You
Self managed Fully managed
You
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
현대화된 어플리케이션에 적합한 데이터 스토어는?
Moving to Open Database
+
Commercial-grade performance and reliability
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon Web Service Managed Database Services
DOCUMENT
Amazon DocumentDB
CACHING
Amazon ElastiCache
KEY- VALUE
Amazon DynamoDB
GRAPH
Amazon Neptune
LEDGER
Amazon QLDB
TIME- SERIES
Amazon TimeStream
WIDE COLUMN
Amazon KeySpaces
MEMORY
Amazon MemoryDB
Amazon
RDS
Amazon
Aurora
RELATIONAL
기본적으로 JSON
데이터 저장,
쿼리 및 인덱싱
유연한
인덱싱
유연한
스키마구조
Ad hoc 쿼리
기능
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
요구사항
• MongoDB와의 호환성
• 마이크로서비스를 독립적으로 확장
• 복잡한 순위 쿼리의 성능 향상
• 완전 관리형 데이터베이스 서비스로 원활한 마이그레이션
해결방안
• 55% 적은 인스턴스로 마이크로서비스를 확장 ( 클러스터/LoB)
• 순위 지정 쿼리의 지연 시간 16배 감소 : 읽기 전용 복제본 활용
• 최소한의 코드 변경 : MongoDB 호환성으로 60% 절감
효과
• 정전 횟수 : 0
• 대기 시간 : 500ms -> 80ms
• 운영 오버헤드: 50%
• 3개월 동안 100개 이상의 마이그레이션
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon DocumentDB
Architecture
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon DocumentDB: Cloud Native Architecture
호환성
복제
스토리지와 컴퓨팅의
분리
내구성
백업
Modern, cloud-native
database architecture
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Amazon DocumentDB: Cloud Native Architecture
Compute
2-96 cores
4-768 GB RAM
Instance
(replica)
Reads
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Backup
AZ 1 AZ 2 AZ 3
Amazon S3
Storage
Distributed storage volume
호환성
복제
스토리지와 컴퓨팅의
분리
내구성
백업
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
Instance
(replica)
Reads
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Distributed storage volume
호환성
Amazon
DocumentDB는
MongoDB API를
에뮬레이션
db.foo.find({}) {"x":1}
AZ 1 AZ 2 AZ 3
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Demo code
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
스토리지와 컴퓨팅의
분리
클라우드 네이티브
데이터베이스
아키텍처
Instance
(replica)
Reads
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Distributed storage volume
AZ 1 AZ 2 AZ 3
Compute
Storage
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
스토리지와 컴퓨팅의
분리
API
Query processor
Caching
Logging
Storage
Monolithic,
shared disk
architecture
기존 데이터베이스
아키텍처
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
스토리지와 컴퓨팅의
분리
API
Query processor
Caching
Logging
Storage
API
Query processor
Caching
Logging
Storage
확장하려면 전체
스택을 복사
API
Query processor
Caching
Logging
Storage
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
스토리지와 컴퓨팅의
분리
API
Query processor
Caching
Logging
Storage
Log writes
스토리지와 컴퓨팅의
분리
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
스토리지와 컴퓨팅의
분리
API
Query processor
Caching
Logging
Storage
Log writes
Compute layer
Storage layer
스토리지와 컴퓨팅의
분리
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
스토리지와 컴퓨팅의
분리
API
Query processor
Caching
Logging
Storage
Log writes
Decouple compute and storage
Compute layer
Storage layer
Scale compute
Scale storage
스토리지와 컴퓨팅의
분리
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
스토리지와 컴퓨팅의
분리
Distributed storage volume
AZ 1 AZ 2 AZ 3
Compute
Storage
Instance
(primary)
Reads
Writes
r6g.large
Instance
(replica)
Reads
r6g.large
Instance
(replica)
Reads
r6g.large
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
복제
ACK
db.foo.insert({’x’:1})
db.foo.insert({’x’:1}) ACK
Instance
(replica)
Reads
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Distributed storage volume
AZ 1 AZ 2 AZ 3
Compute
Storage
Eventual
consistency
Eventual
consistency
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
복제
Instance
(replica)
Reads
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Distributed storage volume
AZ 1 AZ 2 AZ 3
Compute
Storage
Eventual
consistency
Eventual
consistency
db.foo.find({}) {‘x’:1}
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Demo code
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
내구성
평균 복구 시간(mean
time-to-recovery )은
10GB를 복제하는
기능
Instance
(replica)
Reads
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Distributed storage volume
AZ 1 AZ 2 AZ 3
Compute
Storage
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Demo code
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Architecture
백업
Amazon S3로 연속
스트리밍
Backup
AZ 1 AZ 2 AZ 3
Amazon S3
Storage
Distributed storage volume
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Compute
Storage
Cost Optimization: Pricing
Distributed storage volume
Amazon S3
Backup: GiB/month (100% Free! $0.021/GiB)
4
Instance
(replica)
Reads
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Storage: GiB/month ($0.10/GiB)
3
Instances: Size/hr * count (db.t4g.medium $0.075/hr)
1
IOPS: Count ($0.20/million)
2
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Best Practices
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Number of instances determines availability target
Availability Target Total Instances Replicas Availability Zones
Recovery
Time
99% 1 0 1 8-10min
99.9% 2 1 2 <30sec
99.99% 3 2 3 <30sec
99.99% 4 3 3 <30sec
Best Practice: Use at least 2 replicas in different AZs for production deployments
Cluster Sizing: Availability
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Instance Size = Processing Power + Cache
Class vCPU Memory (GiB) Estimated Cache Size
(~2/3 of RAM)
t4g.medium 2 4 ~2.5GB
r6g.large 2 16 ~10.5GB
r6g.xlarge 4 32 ~21GB
r6g.2xlarge 8 64 ~42.5GB
r6g.4xlarge 16 128 ~85GB
r6g.8xlarge 32 256 ~171GB
r6g.12xlarge 48 384 ~256GB
r6g.16xlarge 64 512 ~341GB
r5.24xlarge 96 768 ~512GB
Best Practice: Ensure indices and working set fit in cache
Cluster Sizing: Instance Performance
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Recover to any time from 5 minutes ago until the Backup Retention Period
Best practice: set retention based on your Recovery Point Objective
Cluster Sizing: Backups
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Connecting: Endpoints
Distributed storage volume
AZ 1 AZ 2 AZ 3
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Instance
(replica)
Reads
"members":[
{
"_id":1,
"stateStr":"PRIMARY",
...
},
{
"_id":2,
"stateStr":"SECONDARY",
...
},
{
"_id":3,
"stateStr":"SECONDARY",
...
}
]
Application
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Best practice: Use cluster endpoint and connect as a replica set
Connecting: Replica Set Emulation
© 2023, Amazon Web Services, Inc. or its Affiliates.
Connecting: Failover
Distributed storage volume
AZ 1 AZ 2 AZ 3
Instance
(replica)
Reads
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Primary fails
© 2023, Amazon Web Services, Inc. or its Affiliates.
Connecting: Failover
Distributed storage volume
AZ 1 AZ 2 AZ 3
Instance
(replica)
Reads
Replica promoted to new primary
Instance
(primary)
Reads
Writes
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Instance
(Primary)
Distributed storage volume
AZ1 AZ2 AZ3
Reads
Instance
(Replica)
Instance
(Replica)
Reads
Writes
Reads
Containers
Up to
30000
Up to
30000
Up to
30000
Connection Limits
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Instance
(Primary)
Distributed storage volume
AZ1 AZ2 AZ3
Reads
Instance
(Replica)
Instance
(Replica)
Reads
Writes
Reads
Containers
Up to
4560
Up to
4560
Up to
4560
Cursor Limits
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Scaling: Dynamic Read Preference
Distributed storage volume
AZ 1 AZ 2 AZ 3
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
Instance
(replica)
Reads
Application
Override on each call
(readPreference: primary)
Default read preference
(readPreference:
secondaryPreferred)
© 2023, Amazon Web Services, Inc. or its Affiliates.
Scaling: Write Traffic
Distributed storage volume
AZ 1 AZ 2 AZ 3
Reads
Writes
Replica
db.r6g.large
Reads
Replica
db.r6g.large
Reads
Replica
db.r6g.large
Reads
Primary
db.r6g.4xlarge
Reads
Replica
db.r6g.4xlarge
Reads
Replica
db.r6g.4xlarge
Writes
© 2023, Amazon Web Services, Inc. or its Affiliates.
Compute
Storage
Scaling: Storage and I/O
Distributed storage volume
Grows automatically from
10 GiB - 128 TiB
AZ 1 AZ 2 AZ 3
Instance
(replica)
Reads
Instance
(primary)
Reads
Writes
Instance
(replica)
Reads
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
• Create billing alarms
• 50% spend
• 75% spend
• Cost Allocation Tags
Monitoring: Billing
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
BufferCacheHitRatio
IndexBufferCacheHitRatio
DatabaseConnections
DatabaseCursors
FreeableMemory
CPUUtilization
Monitoring: Instance Metrics
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
DBClusterReplicaLagMaximum
DatabaseCursorsTimedOut
VolumeWriteIOPs
VolumeReadIOPs
Opscounters
Monitoring: Cluster Metrics
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Auditing
DDL events
Auth events
Role Grants
Create alarms
Profiling
Slow queries
Monitoring: Auditing and Profiling
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
데이터베이스 로드를 측정하여
지난 시점의 시스템 활동 검토
• Average Active Sessions
• Wait States
• Operation level granularity
Complementary to profiling
Monitoring: Performance Insights
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
• Indexes come with a cost
• Constrain indexes to those
necessary for common queries
• 5 per collection max
rule of thumb
• 1% selectivity goal
rs0:PRIMARY> db.collName.getIndexes()
[
{
"v":2,
"key":{
"_id":1
},
"name":"_id_",
"ns":"tournament.results"
},
{
"v":2,
"key":{
"user_id":1
},
"name":"user_id_1",
"ns":"tournament.results"
}
]
Indexing
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
• Verify indexes fit in memory
• Monitor IndexBufferCacheHitRatio
rs0:PRIMARY> db.collName.stats()
{
"ns":"tournament.results",
"count":39549,
"size":7000173,
"avgObjSize":177.303,
"storageSize":8609792,
"capped":false,
"nindexes":2,
"totalIndexSize":5472256,
"indexSizes":{
"_id_":2760704,
"user_id_1":2711552
},
"ok":1
}
Indexing: Caching
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Drop unused indexes where possible
rs0:PRIMARY> db.collName.aggregate([{$indexStats:{}}]).pretty()
{
"name":"user_id_1",
"key":{
"user_id":1
},
"host":"docdb2019.us-east-2.docdb.amazonaws.com:27017",
"accesses":{
"ops":NumberLong(0),
"since":ISODate("2020-01-15T06:57:38Z")
}
}
Indexing: Unused Indexes
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
• Stops for up to 7 days; cluster then restarts automatically
• While Stopped :
• No instance costs
• Storage costs continue
• Backup costs do not increase
Cost Optimization: Start/Stop Cluster
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Cost Optimization: I/O
• 적절한 인스턴스 크기 선택
▪ Working set and indices should fit in cache
▪ Monitor metrics to ensure cache is appropriately sized
– BufferCacheHitRatio and IndexBufferCacheHitRatio
– Should be >90%
• Special Case : TTL 워크로드
▪ TTL 인덱스는 데이터를 삭제하기 위해 I/O를 발생시킴
▪ Instead use a collection per day
– Query all collections for the data of interest
– Drop entire collection when the data “expires” (No I/O cost to drop a collection)
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Cost Optimization: Storage and Backup
• 필요한 데이터만 저장
▪ 미사용 인덱스 식별
▪ 불필요한 데이터 식별
– 문서 내 불필요한 필드
– 불필요한 문서
• 필요한 백업만 유지
▪ Snapshot 에 주의
– 더 이상 필요하지 않은 항목 제거
▪ 복구 지점 목표 검토
– 백업 보존 기간을 적절하게 조정
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Security group B
VPC
Security group A
Application DocumentDB Cluster
Security group B:
• Inbound (min): TCP (27017)
Security group A:
• Outbound (min): TCP (27017)
Security Groups
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Role Scope Role Name Description Actions
Database read
Read any collection in a
DB
collStats, dbStats, find,
listCollections, …
Database readWrite
Read and write any
collection in a DB
createCollection,, createIndex,
insert, remove, update, …
Cluster readAnyDatabase
Read any collection in any
DB
listChangeStreams,
listDatabases, [actions in read]
Cluster readWriteAnyDatabase
Read or write any
collection in any DB
listChangeStreams,
listDatabases, [actions in
readWrite]
Cluster clusterMonitor
Read access for
monitoring tools
listSessions, serverStatus, top,
dbStats, …
RBAC – Built-in Roles
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
RBAC – User Defined Roles
• Roles 은 사용자가 DB 리소스에서 수행할 수 있는 작업을 결정
• User-defined roles 은 조직의 요구 사항에 따라 RBAC 역할을 사용자 지정할 수 있는 유연성을
제공
• 세분화된 액세스 제어(일명 최소 권한 액세스)로 사용자를 생성할 수 있음
• 특정 작업/API에 대한 액세스를 제한하는 역할 생성
• 특정 컬렉션에 대한 액세스를 제한하는 역할 생성
• 기존 사용자 정의 역할에 기본 제공 역할 또는 작업에 대한 액세스를 추가할 수 있음
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
• Use TLS in-transit
• KMS-backed at-rest
encryption
Encryption
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
AWS Secrets Manager
Amazon DocumentDB
Application
Lambda Rotation
Function
Retrieve credentials
Login with credentials
Update credentials
Trigger update
Integration with AWS Secrets Manager
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Data Modeling
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
What is it ?
물리적 또는 논리적으로 고유하게
식별할 수 있는 추상화 개체
Entities for an e-commerce application
Data modeling concepts - Entities
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
➢ One to one
➢ One to many
➢ Many to many
Data modeling concepts - Relationships
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Data modeling concepts – Normalized or Denormalized
Embed model
{
"username": "john",
"userId": 1234,
"access": {
"level": 2,
"group": "dba"
},
"contact":{
"phone": "123-24212",
"email": "john@domain.tld"
}
}
Embedded sub-doc
Embedded sub-doc
{
"username": "john",
"userId": 1234
}
{
"userId": 1234,
"phone": "123-24212",
"email": "john@domain.tld"
}
{
"userId": 1234,
"group": "dba",
"level": 2
}
User document
Reference model
Contact document
Access document
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
• Optimize the access patterns
• Better document structure
• Simplify queries
• Less indexes
What is it ?
다양한 사용 사례에 적용하고
재사용할 수 있는 데이터 모델링
기술
Data modeling concepts – Design pattern
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Data modeling
methodology
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
응용
프로그램
요구 사항
설명
엔터티 및
관계 식별
디자인 패턴
적용
Schema
model
Methodology - Phases
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
PHASE 1
워크로드 식별
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
응용
프로그램
요구 사항
설명
INPUT
• 요구사항 문서
• 시나리오
• 지표 및 로그
• 기존 NoSQL 모델 마이그레이션
또는 리팩터링
• 가정
• 어플리케이션 요구 사항 및 데이터 사용 방법 정의
• 액세스 패턴, 읽기vs 쓰기 식별
• 가장 중요한 쿼리 식별
• 데이터 크기 추정
• 오래된 데이터에 대한 일관성 요구 사항 및 허용
오차를 식별
Methodology – Identify workload
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
시나리오 예제 :
온라인 블로그 웹 사이트에서 작성자는 모든 기사에 대한 기사
및 댓글을 게시하거나 읽을 수 있습니다. 각 기사에는 태그가
있을 수 있으며 하나 이상의 범주에 속할 수 있음
CRUD Operation Type Frequency (peak) Avg doc size Max Latency
New blog added/updated Write 100/month 500 KB < 500ms
New comment added
Author added
Write
Write
5000/month
30/month
32 KB
2 KB
< 150ms
<100ms
Blog views Read 10000/day/blog 5ms
Author logs in
Read 200/day 10ms
응용
프로그램
요구 사항
설명
Methodology – Identify operations
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
PHASE 2
엔터티 및 관계 식별
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
엔터티 및 관계 식별
Embedding
or
Referencing ?
Methodology – Identify relationships
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Authors
• id
• name
• email
Blogs
• id
• title
• date
• text
Categories
• id
• name
Tags
• id
• name
Comments
• id
• date
• text
Blogs
• id
• title
• date
• text
Authors
• id
• name
• email
Categories
• id
• name
Tags
• id
• name
Comments
• id
• date
• text
Duplication of
authors data
Query by blogs
Query by authors
Methodology – Model by access pattern
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
id
Authors
•
• name
• email
Query by blogs and authors
Authors 데이터 중복 방지
Blogs
• id
• title
• date
• text
• author_id
Categories
• id
• name
Tags
• id
• name
Comments
• id
• date
• text
Methodology – Model by access pattern
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Blogs
• id
• title
• date
• text
• author_id
Categories
• id
• name
Tags
• id
• name
Comments
• id
• date
• text
Blogs -> Comments – one to many unbounded
comments 를 다른 컬렉션으로 분리하고 여러
쪽에 참조를 유지.
Blogs
• id
• title
• date
• text
• author_id
Categories
• id
• name
Tags
• id
• name
Comments
• id
• date
• text
• blog_id
Methodology – Model by relationship type 1:M
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Courses
{
”course_id": <objectId>,
"name": <string>,
"instructors": [
List[inst_id]
]
}
Instructors
{
"inst_id": <objectId>,
"name": <string>,
"courses": [
List[course_id]
]
}
Two-way embedding
Courses
{
”course_id": <objectId>,
"name": <string>,
}
Students
{
”student_id": <objectId>,
"name": <string>,
"courses": [
List[course_id]
]
}
Many to many bounded Many to many unbounded
Courses -> Instructors Courses -> Students
Methodology – Model by relationship type N:M
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Access pattern or relationship type Recommended model
- Need all related data in one query
- One to one relationship
- One to many, where many is bounded Embedded
- A portion of data is rarely accessed
- Data that is frequently updated and growing
- One to many potentially unbounded Reference
- Many to many Combination of both
Embedding vs. Referencing - How to choose ?
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
PHASE 3
Identify and apply design
patterns
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
{
"name": <string>,
"price": <int>,
"specs": [
{k:"size", v: <string>},
{k:"weight", v: <string>},
{k:"colour", v: <string>},
{k:"material", v: <string>}
]
}
Only one index needed:
➢ { "specs.k": 1, "specs.v": 1 }
// Item document
{
"name": <string>,
"price": <int>,
"size": <string>,
"weight": <string>,
"colour": <string>,
"material": <string>
}
4 indexes needed:
➢ {"size": 1}
➢ {"weight": 1}
➢ {"colour": 1}
➢ {"material": 1}
Attribute pattern
Challenge:
• Many similar fields
• Fields present only in a subset of
documents
Use cases:
• Catalogs, Inventory
Methodology – Apply design pattern
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
// Blogs collection
{
"id": <objectId>,
"title": <string>,
"date": <date>,
"text": <string>,
"author_id": <objectId>,
"last_comments": [
List[Last 20 comments]
]
}
// Comments collection
{
"id": <objectId>,
"date": <date>,
"text": <string>,
"blog_id": <objectId>
}
Subset pattern
Challenge:
• Documents too large
• Working set doesn’t fit in RAM
Use cases:
• Whenever a significant data inside
a document that is rarely needed
Methodology – Apply design pattern
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
// Items
{
"id": <objecId>,
"name": <string>,
"description": <string>,
"specs": [
{"k": <string>,
"v": <string>
}
],
"category": [
List[categories]
]
}
Counting items for each category will
require to read all items and group per
category
“Cache” the count when a new item is
inserted
// items_category_count
db.itemsitems_category_count.update(
{_id: "books"},
{$inc: {count: 1}}
)
Computed pattern
Challenge:
• Repeated calculations
• Read intensive workload
Use cases:
• Catalogs, IoT, Mobile, Real
time analysis
Methodology – Apply design pattern
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
// Invoices
{
"invoice_id": <objectId>,
"customer_id": <objectId>,
"customer_info": {
"fullName": <string>,
"street": <string>,
"city": <string>,
"zipcode": <string>
}
}
// Customers
{
"customer_id": <objectId>,
"fullName": <string>,
"street": <string>,
"city": <string>,
"zipcode": <string>,
"email": <string>,
"phone": <string>
}
You need to manage duplication:
• Duplicate only needed fields and that do
not change often
Extended reference
Challenge:
• Too many roundtrips to
database or joins
Use case:
• Catalog, Mobile apps, E-
commerce
Methodology – Apply design pattern
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Bucket pattern
// SensorData
{
"device_id": 4523,
"ts": ISODate("2023-03-10T10:00"),
"temp": 20
},
{
"device_id": 4523,
"ts": ISODate("2023-03-10T10:01"),
"temp": 20
},
{
"device_id": 4523,
"ts": ISODate("2023-03-10T10:02"),
"temp": 21
}
Bucket per hour
Combine with
computed pattern
//SensorData
"device
"date": ISODate("2023-03-10T10"),
"temp": [
{"ts": ISODate("2023-03-10T10:00"), "temp": 20},
{"ts": ISODate("2023-03-10T10:00"), "temp": 20},
{"ts": ISODate("2023-03-10T10:00"), "temp": 21},
],
"temp_count": 3,
"temp_sum": 61
Challenge:
• Large documents or too
many documents
Use cases:
• IoT
• Historical data
• Lots of data associated with
one entity
Methodology – Apply design pattern
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Current & Next
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
A few highlights from recent releases
2019 2020 2021 2022 2023
Frankfurt
Secrets Manager
DDL
auditing
Aggregation
operators
Launch
Sydney
London
Canada t3 instances
Cross-region
snapshot copy
RBAC user-defined
roles
JDBC driver
Geospatial
Performance
Insights (preview)
Elastic Clusters
Slow query logger
Aggregation
operators
RBAC Free trial
Aggregation
operators
MongoDB 4.0
Acid transactions
Fast database
cloning
Per-second billing
Tokyo
Seoul
Change streams
Mumbai
Paris
Singapore Glue ETL Global clusters Milan
DML auditing
Decimal128
support
Start/stop cluster
Deletion protection
Aggregation
operators
Increase cursor &
connection limits
Graviton2
AWS Backup
Dynamic volume
resizing
MongoDB 5.0
Lambda ESM
Client-side field
level encryption
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
db.foo.findOne() {“x”:1}
Global replication: Up to 5 secondary regions
Low replica lag: Typically < 1 sec
Fast recovery: Typically < 1 min downtime
Compatibility: Version 4.0 and later
Global reader instances: Up to 90
db.foo.insertOne({“x”:1})
Reads
Reads
Writes
Reads
Replication
Service
(primary region)
Ohio
Reads
Reads
Replication
Service
(secondary region)
Oregon
Reads
Reads
Replication
Service
(secondary region)
Tokyo
Global Clusters
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Elastic Cluster architecture
db.foo.find(
{
order_id:1
})
{
“order_id”:1,
“name”:”Amazon”
}
db.foo.insert(
{
order_id: 2
})
{“inserted_id”:2}
Shard-1
Compute capacity
Writes
Reads
Distributed storage volume
Shard-2
Compute capacity
Writes
Reads
Distributed storage volume
Shard-n
Compute capacity
Writes
Reads
Distributed storage volume
Elastic Cluster
Request Router and Service
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
What’s Next?
“Amazon DocumentDB resources”
https://aws.amazon.com/documentdb/resources/
“Amazon DocumentDB immersion day workshop”
https://documentdb-immersionday.workshop.aws/
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Q&A
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark.
Thank you!
1 de 86

Recomendados

Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::... por
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Amazon Web Services Korea
114 visualizações29 slides
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ... por
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...Amazon Web Services Korea
306 visualizações24 slides
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,... por
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Amazon Web Services Korea
97 visualizações29 slides
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance... por
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon Web Services Korea
190 visualizações32 slides
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature... por
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Web Services Korea
154 visualizações46 slides
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci... por
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Amazon Web Services Korea
484 visualizações65 slides

Mais conteúdo relacionado

Mais procurados

AWS Summit Seoul 2023 | 진짜로 코드 없이 기계학습 모델을 만드는 것이 가능하다구요? SageMaker로 No/Low 코... por
AWS Summit Seoul 2023 | 진짜로 코드 없이 기계학습 모델을 만드는 것이 가능하다구요? SageMaker로 No/Low 코...AWS Summit Seoul 2023 | 진짜로 코드 없이 기계학습 모델을 만드는 것이 가능하다구요? SageMaker로 No/Low 코...
AWS Summit Seoul 2023 | 진짜로 코드 없이 기계학습 모델을 만드는 것이 가능하다구요? SageMaker로 No/Low 코...Amazon Web Services Korea
150 visualizações48 slides
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L... por
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...Amazon Web Services Korea
355 visualizações27 slides
AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례 por
AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례
AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례Amazon Web Services Korea
208 visualizações61 slides
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기 por
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기Amazon Web Services Korea
786 visualizações29 slides
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노... por
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...Amazon Web Services Korea
306 visualizações47 slides
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ... por
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...Amazon Web Services Korea
265 visualizações18 slides

Mais procurados(20)

AWS Summit Seoul 2023 | 진짜로 코드 없이 기계학습 모델을 만드는 것이 가능하다구요? SageMaker로 No/Low 코... por Amazon Web Services Korea
AWS Summit Seoul 2023 | 진짜로 코드 없이 기계학습 모델을 만드는 것이 가능하다구요? SageMaker로 No/Low 코...AWS Summit Seoul 2023 | 진짜로 코드 없이 기계학습 모델을 만드는 것이 가능하다구요? SageMaker로 No/Low 코...
AWS Summit Seoul 2023 | 진짜로 코드 없이 기계학습 모델을 만드는 것이 가능하다구요? SageMaker로 No/Low 코...
Amazon Web Services Korea150 visualizações
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L... por Amazon Web Services Korea
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...
Amazon Web Services Korea355 visualizações
AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례
AWS Summit Seoul 2023 | 스타트업의 서버리스 기반 SaaS 데이터 처리 및 데이터웨어하우스 구축 사례
Amazon Web Services Korea208 visualizações
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기 por Amazon Web Services Korea
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
Amazon Web Services Korea786 visualizações
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노... por Amazon Web Services Korea
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
Amazon Web Services Korea306 visualizações
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ... por Amazon Web Services Korea
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...
Amazon Web Services Korea265 visualizações
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special... por Amazon Web Services Korea
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon DynamoDB - Use Cases and Cost Optimization - 발표자: 이혁, DynamoDB Special...
Amazon Web Services Korea183 visualizações
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS por Amazon Web Services Korea
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
Amazon Web Services Korea7.8K visualizações
AWS Modern Infra with Storage Roadshow 2023 - Day 2 por Amazon Web Services Korea
AWS Modern Infra with Storage Roadshow 2023 - Day 2AWS Modern Infra with Storage Roadshow 2023 - Day 2
AWS Modern Infra with Storage Roadshow 2023 - Day 2
Amazon Web Services Korea174 visualizações
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev... por Amazon Web Services Korea
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...
Amazon Web Services Korea219 visualizações
AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인... por Amazon Web Services Korea
AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...
AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...
Amazon Web Services Korea347 visualizações
AWS Summit Seoul 2023 | 천만 사용자를 위한 카카오의 AWS Native 글로벌 채팅 서비스 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 천만 사용자를 위한 카카오의 AWS Native 글로벌 채팅 서비스AWS Summit Seoul 2023 | 천만 사용자를 위한 카카오의 AWS Native 글로벌 채팅 서비스
AWS Summit Seoul 2023 | 천만 사용자를 위한 카카오의 AWS Native 글로벌 채팅 서비스
Amazon Web Services Korea291 visualizações
AWS Summit Seoul 2023 | Amazon Neptune 및 Elastic을 이용한 추천 서비스 및 검색 플랫폼 구축하기 por Amazon Web Services Korea
AWS Summit Seoul 2023 | Amazon Neptune 및 Elastic을 이용한 추천 서비스 및 검색 플랫폼 구축하기AWS Summit Seoul 2023 | Amazon Neptune 및 Elastic을 이용한 추천 서비스 및 검색 플랫폼 구축하기
AWS Summit Seoul 2023 | Amazon Neptune 및 Elastic을 이용한 추천 서비스 및 검색 플랫폼 구축하기
Amazon Web Services Korea291 visualizações
AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정 por Amazon Web Services Korea
AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정
AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정
Amazon Web Services Korea153 visualizações
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례 por Amazon Web Services Korea
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
Amazon Web Services Korea443 visualizações
AWS Summit Seoul 2023 | SK쉴더스: AWS Native Security 서비스를 활용한 경계보안 por Amazon Web Services Korea
AWS Summit Seoul 2023 | SK쉴더스: AWS Native Security 서비스를 활용한 경계보안AWS Summit Seoul 2023 | SK쉴더스: AWS Native Security 서비스를 활용한 경계보안
AWS Summit Seoul 2023 | SK쉴더스: AWS Native Security 서비스를 활용한 경계보안
Amazon Web Services Korea177 visualizações
AWS Summit Seoul 2023 | 바람을 예측하여 재생에너지 산업을 발전시키는 GS E&R의 새로운 여정 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 바람을 예측하여 재생에너지 산업을 발전시키는 GS E&R의 새로운 여정AWS Summit Seoul 2023 | 바람을 예측하여 재생에너지 산업을 발전시키는 GS E&R의 새로운 여정
AWS Summit Seoul 2023 | 바람을 예측하여 재생에너지 산업을 발전시키는 GS E&R의 새로운 여정
Amazon Web Services Korea160 visualizações
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti... por Amazon Web Services Korea
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...
Amazon Web Services Korea323 visualizações
AWS Summit Seoul 2023 | 가격은 저렴, 성능은 최대로! 확 달라진 Amazon EC2 알아보기 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 가격은 저렴, 성능은 최대로! 확 달라진 Amazon EC2 알아보기AWS Summit Seoul 2023 | 가격은 저렴, 성능은 최대로! 확 달라진 Amazon EC2 알아보기
AWS Summit Seoul 2023 | 가격은 저렴, 성능은 최대로! 확 달라진 Amazon EC2 알아보기
Amazon Web Services Korea313 visualizações

Similar a Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. Database SA, WWSO, AWS ::: AWS Data Roadshow 2023

Amazon Aurora - Rajeev Chakrabarti por
Amazon Aurora - Rajeev ChakrabartiAmazon Aurora - Rajeev Chakrabarti
Amazon Aurora - Rajeev ChakrabartiAmazon Web Services
522 visualizações44 slides
Amazon Aurora por
Amazon AuroraAmazon Aurora
Amazon AuroraAmazon Web Services
541 visualizações54 slides
AWS 신규 데이터베이스 서비스 분석 - 강민석 솔루션즈아키텍트 , AWS :: AWS Summit Seoul 2019 por
AWS 신규 데이터베이스 서비스 분석 - 강민석 솔루션즈아키텍트 , AWS :: AWS Summit Seoul 2019AWS 신규 데이터베이스 서비스 분석 - 강민석 솔루션즈아키텍트 , AWS :: AWS Summit Seoul 2019
AWS 신규 데이터베이스 서비스 분석 - 강민석 솔루션즈아키텍트 , AWS :: AWS Summit Seoul 2019Amazon Web Services Korea
2K visualizações67 slides
Amazon Aurora (MySQL, Postgres) por
Amazon Aurora (MySQL, Postgres)Amazon Aurora (MySQL, Postgres)
Amazon Aurora (MySQL, Postgres)AWS Germany
559 visualizações50 slides
SRV308 Deep Dive on Amazon Aurora por
SRV308 Deep Dive on Amazon AuroraSRV308 Deep Dive on Amazon Aurora
SRV308 Deep Dive on Amazon AuroraAmazon Web Services
3.2K visualizações55 slides
Managed Relational Databases por
Managed Relational DatabasesManaged Relational Databases
Managed Relational DatabasesAmazon Web Services
234 visualizações44 slides

Similar a Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. Database SA, WWSO, AWS ::: AWS Data Roadshow 2023(20)

Amazon Aurora - Rajeev Chakrabarti por Amazon Web Services
Amazon Aurora - Rajeev ChakrabartiAmazon Aurora - Rajeev Chakrabarti
Amazon Aurora - Rajeev Chakrabarti
Amazon Web Services522 visualizações
AWS 신규 데이터베이스 서비스 분석 - 강민석 솔루션즈아키텍트 , AWS :: AWS Summit Seoul 2019 por Amazon Web Services Korea
AWS 신규 데이터베이스 서비스 분석 - 강민석 솔루션즈아키텍트 , AWS :: AWS Summit Seoul 2019AWS 신규 데이터베이스 서비스 분석 - 강민석 솔루션즈아키텍트 , AWS :: AWS Summit Seoul 2019
AWS 신규 데이터베이스 서비스 분석 - 강민석 솔루션즈아키텍트 , AWS :: AWS Summit Seoul 2019
Amazon Web Services Korea2K visualizações
Amazon Aurora (MySQL, Postgres) por AWS Germany
Amazon Aurora (MySQL, Postgres)Amazon Aurora (MySQL, Postgres)
Amazon Aurora (MySQL, Postgres)
AWS Germany559 visualizações
SRV308 Deep Dive on Amazon Aurora por Amazon Web Services
SRV308 Deep Dive on Amazon AuroraSRV308 Deep Dive on Amazon Aurora
SRV308 Deep Dive on Amazon Aurora
Amazon Web Services3.2K visualizações
Managed Relational Databases por Amazon Web Services
Managed Relational DatabasesManaged Relational Databases
Managed Relational Databases
Amazon Web Services234 visualizações
Serverless Architectural Patterns por Amazon Web Services
Serverless Architectural PatternsServerless Architectural Patterns
Serverless Architectural Patterns
Amazon Web Services620 visualizações
Databases & Analytics - re:Invent Come to London 2.0 por Amazon Web Services
Databases & Analytics - re:Invent Come to London 2.0Databases & Analytics - re:Invent Come to London 2.0
Databases & Analytics - re:Invent Come to London 2.0
Amazon Web Services242 visualizações
STG301_Deep Dive on Amazon S3 and Glacier Architecture por Amazon Web Services
STG301_Deep Dive on Amazon S3 and Glacier ArchitectureSTG301_Deep Dive on Amazon S3 and Glacier Architecture
STG301_Deep Dive on Amazon S3 and Glacier Architecture
Amazon Web Services7.2K visualizações
Scaling Up To and Beyond 10M Users por Amazon Web Services
Scaling Up To and Beyond 10M UsersScaling Up To and Beyond 10M Users
Scaling Up To and Beyond 10M Users
Amazon Web Services149 visualizações
Build on Amazon Aurora with MySQL Compatibility (DAT348-R4) - AWS re:Invent 2018 por Amazon Web Services
Build on Amazon Aurora with MySQL Compatibility (DAT348-R4) - AWS re:Invent 2018Build on Amazon Aurora with MySQL Compatibility (DAT348-R4) - AWS re:Invent 2018
Build on Amazon Aurora with MySQL Compatibility (DAT348-R4) - AWS re:Invent 2018
Amazon Web Services677 visualizações
Build Data Lakes & Analytics on AWS: Patterns & Best Practices por Amazon Web Services
Build Data Lakes & Analytics on AWS: Patterns & Best PracticesBuild Data Lakes & Analytics on AWS: Patterns & Best Practices
Build Data Lakes & Analytics on AWS: Patterns & Best Practices
Amazon Web Services277 visualizações
Build Data Lakes and Analytics on AWS: Patterns & Best Practices por Amazon Web Services
Build Data Lakes and Analytics on AWS: Patterns & Best PracticesBuild Data Lakes and Analytics on AWS: Patterns & Best Practices
Build Data Lakes and Analytics on AWS: Patterns & Best Practices
Amazon Web Services2.2K visualizações
Amazon Aurora: Deep Dive - SRV308 - Chicago AWS Summit por Amazon Web Services
Amazon Aurora: Deep Dive - SRV308 - Chicago AWS SummitAmazon Aurora: Deep Dive - SRV308 - Chicago AWS Summit
Amazon Aurora: Deep Dive - SRV308 - Chicago AWS Summit
Amazon Web Services900 visualizações
How UCSD Simplified Data Protection with Rubrik and AWS (STG207-S) - AWS re:I... por Amazon Web Services
How UCSD Simplified Data Protection with Rubrik and AWS (STG207-S) - AWS re:I...How UCSD Simplified Data Protection with Rubrik and AWS (STG207-S) - AWS re:I...
How UCSD Simplified Data Protection with Rubrik and AWS (STG207-S) - AWS re:I...
Amazon Web Services616 visualizações
Storage Data Management: Tools and Templates to Seamlessly Automate and Optim... por Amazon Web Services
Storage Data Management: Tools and Templates to Seamlessly Automate and Optim...Storage Data Management: Tools and Templates to Seamlessly Automate and Optim...
Storage Data Management: Tools and Templates to Seamlessly Automate and Optim...
Amazon Web Services536 visualizações
Amazon Aurora and AWS Database Migration Service por Amazon Web Services
Amazon Aurora and AWS Database Migration ServiceAmazon Aurora and AWS Database Migration Service
Amazon Aurora and AWS Database Migration Service
Amazon Web Services1.9K visualizações

Mais de Amazon Web Services Korea

AWS Modern Infra with Storage Roadshow 2023 - Day 1 por
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1Amazon Web Services Korea
102 visualizações173 slides
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A... por
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...Amazon Web Services Korea
120 visualizações36 slides
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal... por
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon Web Services Korea
140 visualizações57 slides
From Insights to Action, How to build and maintain a Data Driven Organization... por
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...Amazon Web Services Korea
163 visualizações27 slides
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ... por
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...Amazon Web Services Korea
272 visualizações26 slides
AWS Summit Seoul 2023 | 생성 AI 모델의 임베딩 벡터를 이용한 서버리스 추천 검색 구현하기 por
AWS Summit Seoul 2023 | 생성 AI 모델의 임베딩 벡터를 이용한 서버리스 추천 검색 구현하기AWS Summit Seoul 2023 | 생성 AI 모델의 임베딩 벡터를 이용한 서버리스 추천 검색 구현하기
AWS Summit Seoul 2023 | 생성 AI 모델의 임베딩 벡터를 이용한 서버리스 추천 검색 구현하기Amazon Web Services Korea
452 visualizações56 slides

Mais de Amazon Web Services Korea(15)

AWS Modern Infra with Storage Roadshow 2023 - Day 1 por Amazon Web Services Korea
AWS Modern Infra with Storage Roadshow 2023 - Day 1AWS Modern Infra with Storage Roadshow 2023 - Day 1
AWS Modern Infra with Storage Roadshow 2023 - Day 1
Amazon Web Services Korea102 visualizações
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A... por Amazon Web Services Korea
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
Amazon Web Services Korea120 visualizações
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal... por Amazon Web Services Korea
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon Web Services Korea140 visualizações
From Insights to Action, How to build and maintain a Data Driven Organization... por Amazon Web Services Korea
From Insights to Action, How to build and maintain a Data Driven Organization...From Insights to Action, How to build and maintain a Data Driven Organization...
From Insights to Action, How to build and maintain a Data Driven Organization...
Amazon Web Services Korea163 visualizações
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ... por Amazon Web Services Korea
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
Amazon Web Services Korea272 visualizações
AWS Summit Seoul 2023 | 생성 AI 모델의 임베딩 벡터를 이용한 서버리스 추천 검색 구현하기 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 생성 AI 모델의 임베딩 벡터를 이용한 서버리스 추천 검색 구현하기AWS Summit Seoul 2023 | 생성 AI 모델의 임베딩 벡터를 이용한 서버리스 추천 검색 구현하기
AWS Summit Seoul 2023 | 생성 AI 모델의 임베딩 벡터를 이용한 서버리스 추천 검색 구현하기
Amazon Web Services Korea452 visualizações
AWS Summit Seoul 2023 | Amazon EKS 데이터 전송 비용 절감 및 카오스 엔지니어링 적용 사례 por Amazon Web Services Korea
AWS Summit Seoul 2023 | Amazon EKS 데이터 전송 비용 절감 및 카오스 엔지니어링 적용 사례AWS Summit Seoul 2023 | Amazon EKS 데이터 전송 비용 절감 및 카오스 엔지니어링 적용 사례
AWS Summit Seoul 2023 | Amazon EKS 데이터 전송 비용 절감 및 카오스 엔지니어링 적용 사례
Amazon Web Services Korea345 visualizações
AWS Summit Seoul 2023 | 실시간 CDC 데이터 처리! Modern Transactional Data Lake 구축하기 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 실시간 CDC 데이터 처리! Modern Transactional Data Lake 구축하기AWS Summit Seoul 2023 | 실시간 CDC 데이터 처리! Modern Transactional Data Lake 구축하기
AWS Summit Seoul 2023 | 실시간 CDC 데이터 처리! Modern Transactional Data Lake 구축하기
Amazon Web Services Korea414 visualizações
AWS Summit Seoul 2023 | 12가지 디자인 패턴으로 알아보는 클라우드 네이티브 마이크로서비스 아키텍처 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 12가지 디자인 패턴으로 알아보는 클라우드 네이티브 마이크로서비스 아키텍처AWS Summit Seoul 2023 | 12가지 디자인 패턴으로 알아보는 클라우드 네이티브 마이크로서비스 아키텍처
AWS Summit Seoul 2023 | 12가지 디자인 패턴으로 알아보는 클라우드 네이티브 마이크로서비스 아키텍처
Amazon Web Services Korea327 visualizações
AWS Summit Seoul 2023 | AWS에서 OpenTelemetry 기반의 애플리케이션 Observability 구축/활용하기 por Amazon Web Services Korea
AWS Summit Seoul 2023 | AWS에서 OpenTelemetry 기반의 애플리케이션 Observability 구축/활용하기AWS Summit Seoul 2023 | AWS에서 OpenTelemetry 기반의 애플리케이션 Observability 구축/활용하기
AWS Summit Seoul 2023 | AWS에서 OpenTelemetry 기반의 애플리케이션 Observability 구축/활용하기
Amazon Web Services Korea251 visualizações
AWS Summit Seoul 2023 | 갤럭시 규모의 서비스를 위한 Amazon DynamoDB의 역할과 비용 최적화 방법 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 갤럭시 규모의 서비스를 위한 Amazon DynamoDB의 역할과 비용 최적화 방법AWS Summit Seoul 2023 | 갤럭시 규모의 서비스를 위한 Amazon DynamoDB의 역할과 비용 최적화 방법
AWS Summit Seoul 2023 | 갤럭시 규모의 서비스를 위한 Amazon DynamoDB의 역할과 비용 최적화 방법
Amazon Web Services Korea223 visualizações
AWS Summit Seoul 2023 | 기업 고객 대상 기계학습 기반 콜센터 도입을 위한 여정 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 기업 고객 대상 기계학습 기반 콜센터 도입을 위한 여정AWS Summit Seoul 2023 | 기업 고객 대상 기계학습 기반 콜센터 도입을 위한 여정
AWS Summit Seoul 2023 | 기업 고객 대상 기계학습 기반 콜센터 도입을 위한 여정
Amazon Web Services Korea87 visualizações
AWS Summit Seoul 2023 | 바쁘다 바빠, 현대사회! Amazon Kendra로 원하는 자료를 적재적소에 찾아서 활용하기 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 바쁘다 바빠, 현대사회! Amazon Kendra로 원하는 자료를 적재적소에 찾아서 활용하기AWS Summit Seoul 2023 | 바쁘다 바빠, 현대사회! Amazon Kendra로 원하는 자료를 적재적소에 찾아서 활용하기
AWS Summit Seoul 2023 | 바쁘다 바빠, 현대사회! Amazon Kendra로 원하는 자료를 적재적소에 찾아서 활용하기
Amazon Web Services Korea253 visualizações
AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기
AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기
Amazon Web Services Korea305 visualizações
AWS Summit Seoul 2023 | 아마존의 공급망 전략을 배워보고, 우리 회사에 적용하기 por Amazon Web Services Korea
AWS Summit Seoul 2023 | 아마존의 공급망 전략을 배워보고, 우리 회사에 적용하기AWS Summit Seoul 2023 | 아마존의 공급망 전략을 배워보고, 우리 회사에 적용하기
AWS Summit Seoul 2023 | 아마존의 공급망 전략을 배워보고, 우리 회사에 적용하기
Amazon Web Services Korea155 visualizações

Último

Business Analyst Series 2023 - Week 4 Session 7 por
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7DianaGray10
146 visualizações31 slides
Ransomware is Knocking your Door_Final.pdf por
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfSecurity Bootcamp
98 visualizações46 slides
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... por
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...ShapeBlue
183 visualizações18 slides
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... por
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...ShapeBlue
120 visualizações17 slides
"Node.js Development in 2024: trends and tools", Nikita Galkin por
"Node.js Development in 2024: trends and tools", Nikita Galkin "Node.js Development in 2024: trends and tools", Nikita Galkin
"Node.js Development in 2024: trends and tools", Nikita Galkin Fwdays
33 visualizações38 slides
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... por
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...ShapeBlue
171 visualizações28 slides

Último(20)

Business Analyst Series 2023 - Week 4 Session 7 por DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10146 visualizações
Ransomware is Knocking your Door_Final.pdf por Security Bootcamp
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdf
Security Bootcamp98 visualizações
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... por ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue183 visualizações
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... por ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue120 visualizações
"Node.js Development in 2024: trends and tools", Nikita Galkin por Fwdays
"Node.js Development in 2024: trends and tools", Nikita Galkin "Node.js Development in 2024: trends and tools", Nikita Galkin
"Node.js Development in 2024: trends and tools", Nikita Galkin
Fwdays33 visualizações
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... por ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue171 visualizações
"Surviving highload with Node.js", Andrii Shumada por Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays58 visualizações
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... por ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue141 visualizações
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023 por BookNet Canada
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
BookNet Canada44 visualizações
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue por ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue137 visualizações
Business Analyst Series 2023 - Week 4 Session 8 por DianaGray10
Business Analyst Series 2023 -  Week 4 Session 8Business Analyst Series 2023 -  Week 4 Session 8
Business Analyst Series 2023 - Week 4 Session 8
DianaGray10145 visualizações
Digital Personal Data Protection (DPDP) Practical Approach For CISOs por Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash162 visualizações
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... por Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Jasper Oosterveld35 visualizações
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... por ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue162 visualizações
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... por ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue108 visualizações
"Package management in monorepos", Zoltan Kochan por Fwdays
"Package management in monorepos", Zoltan Kochan"Package management in monorepos", Zoltan Kochan
"Package management in monorepos", Zoltan Kochan
Fwdays34 visualizações
Qualifying SaaS, IaaS.pptx por Sachin Bhandari
Qualifying SaaS, IaaS.pptxQualifying SaaS, IaaS.pptx
Qualifying SaaS, IaaS.pptx
Sachin Bhandari1.1K visualizações
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue por ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue207 visualizações
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue por ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue139 visualizações
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT por ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue208 visualizações

Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. Database SA, WWSO, AWS ::: AWS Data Roadshow 2023

  • 1. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon DocumentDB For Modern Applications Donghoon Jang Database Solution Architect WWSO
  • 2. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Modern Database ?
  • 3. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 데이터에 대한 접근방식을 재고해야 하는 이유는 무엇인가? 데이터 접근에 대한 혁신적 변화 Data grows 10x every 5 years Transition from IT to DevOps increases rate of change Purpose-built databases provide optimized performance and cost savings Explosion of data Microservices changes data and analytics requirements Rapid rate of change Dev Ops
  • 4. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 현대화된 어플리케이션은? Users 1M+ Data volume Terabytes–petabytes Locality Global Performance Microsecond latency Request rate Millions per second Access Mobile, IoT, devices Scale Virtually unlimited Economics Pay-as-you-go Developer access Instance API access Development Apps and storage are decoupled Online gaming Social media Media streaming e-commerce Shared economy
  • 5. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 현대화된 어플리케이션에 적합한 데이터 인프라는? Built-in best practices Routine maintenance Automated patching Industry compliance Isolation and security Backup and recovery Push-button scaling Advanced monitoring Automatic fail-over Schema design Query optimization Query construction Built-in best practices Routine maintenance Automated patching Industry compliance Isolation and security Automatic fail-over Backup and recovery Push-button scaling Advanced monitoring Query construction Query Optimization Schema design You Self managed Fully managed You
  • 6. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 현대화된 어플리케이션에 적합한 데이터 스토어는? Moving to Open Database + Commercial-grade performance and reliability
  • 7. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon Web Service Managed Database Services DOCUMENT Amazon DocumentDB CACHING Amazon ElastiCache KEY- VALUE Amazon DynamoDB GRAPH Amazon Neptune LEDGER Amazon QLDB TIME- SERIES Amazon TimeStream WIDE COLUMN Amazon KeySpaces MEMORY Amazon MemoryDB Amazon RDS Amazon Aurora RELATIONAL 기본적으로 JSON 데이터 저장, 쿼리 및 인덱싱 유연한 인덱싱 유연한 스키마구조 Ad hoc 쿼리 기능
  • 8. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 요구사항 • MongoDB와의 호환성 • 마이크로서비스를 독립적으로 확장 • 복잡한 순위 쿼리의 성능 향상 • 완전 관리형 데이터베이스 서비스로 원활한 마이그레이션 해결방안 • 55% 적은 인스턴스로 마이크로서비스를 확장 ( 클러스터/LoB) • 순위 지정 쿼리의 지연 시간 16배 감소 : 읽기 전용 복제본 활용 • 최소한의 코드 변경 : MongoDB 호환성으로 60% 절감 효과 • 정전 횟수 : 0 • 대기 시간 : 500ms -> 80ms • 운영 오버헤드: 50% • 3개월 동안 100개 이상의 마이그레이션
  • 9. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon DocumentDB Architecture
  • 10. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon DocumentDB: Cloud Native Architecture 호환성 복제 스토리지와 컴퓨팅의 분리 내구성 백업 Modern, cloud-native database architecture
  • 11. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Amazon DocumentDB: Cloud Native Architecture Compute 2-96 cores 4-768 GB RAM Instance (replica) Reads Instance (primary) Reads Writes Instance (replica) Reads Backup AZ 1 AZ 2 AZ 3 Amazon S3 Storage Distributed storage volume 호환성 복제 스토리지와 컴퓨팅의 분리 내구성 백업
  • 12. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture Instance (replica) Reads Instance (primary) Reads Writes Instance (replica) Reads Distributed storage volume 호환성 Amazon DocumentDB는 MongoDB API를 에뮬레이션 db.foo.find({}) {"x":1} AZ 1 AZ 2 AZ 3
  • 13. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Demo code
  • 14. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 스토리지와 컴퓨팅의 분리 클라우드 네이티브 데이터베이스 아키텍처 Instance (replica) Reads Instance (primary) Reads Writes Instance (replica) Reads Distributed storage volume AZ 1 AZ 2 AZ 3 Compute Storage
  • 15. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 스토리지와 컴퓨팅의 분리 API Query processor Caching Logging Storage Monolithic, shared disk architecture 기존 데이터베이스 아키텍처
  • 16. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 스토리지와 컴퓨팅의 분리 API Query processor Caching Logging Storage API Query processor Caching Logging Storage 확장하려면 전체 스택을 복사 API Query processor Caching Logging Storage
  • 17. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 스토리지와 컴퓨팅의 분리 API Query processor Caching Logging Storage Log writes 스토리지와 컴퓨팅의 분리
  • 18. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 스토리지와 컴퓨팅의 분리 API Query processor Caching Logging Storage Log writes Compute layer Storage layer 스토리지와 컴퓨팅의 분리
  • 19. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 스토리지와 컴퓨팅의 분리 API Query processor Caching Logging Storage Log writes Decouple compute and storage Compute layer Storage layer Scale compute Scale storage 스토리지와 컴퓨팅의 분리
  • 20. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 스토리지와 컴퓨팅의 분리 Distributed storage volume AZ 1 AZ 2 AZ 3 Compute Storage Instance (primary) Reads Writes r6g.large Instance (replica) Reads r6g.large Instance (replica) Reads r6g.large
  • 21. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 복제 ACK db.foo.insert({’x’:1}) db.foo.insert({’x’:1}) ACK Instance (replica) Reads Instance (primary) Reads Writes Instance (replica) Reads Distributed storage volume AZ 1 AZ 2 AZ 3 Compute Storage Eventual consistency Eventual consistency
  • 22. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 복제 Instance (replica) Reads Instance (primary) Reads Writes Instance (replica) Reads Distributed storage volume AZ 1 AZ 2 AZ 3 Compute Storage Eventual consistency Eventual consistency db.foo.find({}) {‘x’:1}
  • 23. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Demo code
  • 24. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 내구성 평균 복구 시간(mean time-to-recovery )은 10GB를 복제하는 기능 Instance (replica) Reads Instance (primary) Reads Writes Instance (replica) Reads Distributed storage volume AZ 1 AZ 2 AZ 3 Compute Storage
  • 25. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Demo code
  • 26. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Architecture 백업 Amazon S3로 연속 스트리밍 Backup AZ 1 AZ 2 AZ 3 Amazon S3 Storage Distributed storage volume
  • 27. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Compute Storage Cost Optimization: Pricing Distributed storage volume Amazon S3 Backup: GiB/month (100% Free! $0.021/GiB) 4 Instance (replica) Reads Instance (primary) Reads Writes Instance (replica) Reads Storage: GiB/month ($0.10/GiB) 3 Instances: Size/hr * count (db.t4g.medium $0.075/hr) 1 IOPS: Count ($0.20/million) 2
  • 28. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Best Practices
  • 29. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Number of instances determines availability target Availability Target Total Instances Replicas Availability Zones Recovery Time 99% 1 0 1 8-10min 99.9% 2 1 2 <30sec 99.99% 3 2 3 <30sec 99.99% 4 3 3 <30sec Best Practice: Use at least 2 replicas in different AZs for production deployments Cluster Sizing: Availability
  • 30. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Instance Size = Processing Power + Cache Class vCPU Memory (GiB) Estimated Cache Size (~2/3 of RAM) t4g.medium 2 4 ~2.5GB r6g.large 2 16 ~10.5GB r6g.xlarge 4 32 ~21GB r6g.2xlarge 8 64 ~42.5GB r6g.4xlarge 16 128 ~85GB r6g.8xlarge 32 256 ~171GB r6g.12xlarge 48 384 ~256GB r6g.16xlarge 64 512 ~341GB r5.24xlarge 96 768 ~512GB Best Practice: Ensure indices and working set fit in cache Cluster Sizing: Instance Performance
  • 31. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Recover to any time from 5 minutes ago until the Backup Retention Period Best practice: set retention based on your Recovery Point Objective Cluster Sizing: Backups
  • 32. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Connecting: Endpoints Distributed storage volume AZ 1 AZ 2 AZ 3 Instance (primary) Reads Writes Instance (replica) Reads Instance (replica) Reads "members":[ { "_id":1, "stateStr":"PRIMARY", ... }, { "_id":2, "stateStr":"SECONDARY", ... }, { "_id":3, "stateStr":"SECONDARY", ... } ] Application
  • 33. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Best practice: Use cluster endpoint and connect as a replica set Connecting: Replica Set Emulation
  • 34. © 2023, Amazon Web Services, Inc. or its Affiliates. Connecting: Failover Distributed storage volume AZ 1 AZ 2 AZ 3 Instance (replica) Reads Instance (primary) Reads Writes Instance (replica) Reads Primary fails
  • 35. © 2023, Amazon Web Services, Inc. or its Affiliates. Connecting: Failover Distributed storage volume AZ 1 AZ 2 AZ 3 Instance (replica) Reads Replica promoted to new primary Instance (primary) Reads Writes
  • 36. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Instance (Primary) Distributed storage volume AZ1 AZ2 AZ3 Reads Instance (Replica) Instance (Replica) Reads Writes Reads Containers Up to 30000 Up to 30000 Up to 30000 Connection Limits
  • 37. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Instance (Primary) Distributed storage volume AZ1 AZ2 AZ3 Reads Instance (Replica) Instance (Replica) Reads Writes Reads Containers Up to 4560 Up to 4560 Up to 4560 Cursor Limits
  • 38. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Scaling: Dynamic Read Preference Distributed storage volume AZ 1 AZ 2 AZ 3 Instance (primary) Reads Writes Instance (replica) Reads Instance (replica) Reads Application Override on each call (readPreference: primary) Default read preference (readPreference: secondaryPreferred)
  • 39. © 2023, Amazon Web Services, Inc. or its Affiliates. Scaling: Write Traffic Distributed storage volume AZ 1 AZ 2 AZ 3 Reads Writes Replica db.r6g.large Reads Replica db.r6g.large Reads Replica db.r6g.large Reads Primary db.r6g.4xlarge Reads Replica db.r6g.4xlarge Reads Replica db.r6g.4xlarge Writes
  • 40. © 2023, Amazon Web Services, Inc. or its Affiliates. Compute Storage Scaling: Storage and I/O Distributed storage volume Grows automatically from 10 GiB - 128 TiB AZ 1 AZ 2 AZ 3 Instance (replica) Reads Instance (primary) Reads Writes Instance (replica) Reads
  • 41. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. • Create billing alarms • 50% spend • 75% spend • Cost Allocation Tags Monitoring: Billing
  • 42. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. BufferCacheHitRatio IndexBufferCacheHitRatio DatabaseConnections DatabaseCursors FreeableMemory CPUUtilization Monitoring: Instance Metrics
  • 43. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. DBClusterReplicaLagMaximum DatabaseCursorsTimedOut VolumeWriteIOPs VolumeReadIOPs Opscounters Monitoring: Cluster Metrics
  • 44. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Auditing DDL events Auth events Role Grants Create alarms Profiling Slow queries Monitoring: Auditing and Profiling
  • 45. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 데이터베이스 로드를 측정하여 지난 시점의 시스템 활동 검토 • Average Active Sessions • Wait States • Operation level granularity Complementary to profiling Monitoring: Performance Insights
  • 46. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. • Indexes come with a cost • Constrain indexes to those necessary for common queries • 5 per collection max rule of thumb • 1% selectivity goal rs0:PRIMARY> db.collName.getIndexes() [ { "v":2, "key":{ "_id":1 }, "name":"_id_", "ns":"tournament.results" }, { "v":2, "key":{ "user_id":1 }, "name":"user_id_1", "ns":"tournament.results" } ] Indexing
  • 47. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. • Verify indexes fit in memory • Monitor IndexBufferCacheHitRatio rs0:PRIMARY> db.collName.stats() { "ns":"tournament.results", "count":39549, "size":7000173, "avgObjSize":177.303, "storageSize":8609792, "capped":false, "nindexes":2, "totalIndexSize":5472256, "indexSizes":{ "_id_":2760704, "user_id_1":2711552 }, "ok":1 } Indexing: Caching
  • 48. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Drop unused indexes where possible rs0:PRIMARY> db.collName.aggregate([{$indexStats:{}}]).pretty() { "name":"user_id_1", "key":{ "user_id":1 }, "host":"docdb2019.us-east-2.docdb.amazonaws.com:27017", "accesses":{ "ops":NumberLong(0), "since":ISODate("2020-01-15T06:57:38Z") } } Indexing: Unused Indexes
  • 49. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. • Stops for up to 7 days; cluster then restarts automatically • While Stopped : • No instance costs • Storage costs continue • Backup costs do not increase Cost Optimization: Start/Stop Cluster
  • 50. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Cost Optimization: I/O • 적절한 인스턴스 크기 선택 ▪ Working set and indices should fit in cache ▪ Monitor metrics to ensure cache is appropriately sized – BufferCacheHitRatio and IndexBufferCacheHitRatio – Should be >90% • Special Case : TTL 워크로드 ▪ TTL 인덱스는 데이터를 삭제하기 위해 I/O를 발생시킴 ▪ Instead use a collection per day – Query all collections for the data of interest – Drop entire collection when the data “expires” (No I/O cost to drop a collection)
  • 51. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Cost Optimization: Storage and Backup • 필요한 데이터만 저장 ▪ 미사용 인덱스 식별 ▪ 불필요한 데이터 식별 – 문서 내 불필요한 필드 – 불필요한 문서 • 필요한 백업만 유지 ▪ Snapshot 에 주의 – 더 이상 필요하지 않은 항목 제거 ▪ 복구 지점 목표 검토 – 백업 보존 기간을 적절하게 조정
  • 52. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Security group B VPC Security group A Application DocumentDB Cluster Security group B: • Inbound (min): TCP (27017) Security group A: • Outbound (min): TCP (27017) Security Groups
  • 53. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Role Scope Role Name Description Actions Database read Read any collection in a DB collStats, dbStats, find, listCollections, … Database readWrite Read and write any collection in a DB createCollection,, createIndex, insert, remove, update, … Cluster readAnyDatabase Read any collection in any DB listChangeStreams, listDatabases, [actions in read] Cluster readWriteAnyDatabase Read or write any collection in any DB listChangeStreams, listDatabases, [actions in readWrite] Cluster clusterMonitor Read access for monitoring tools listSessions, serverStatus, top, dbStats, … RBAC – Built-in Roles
  • 54. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. RBAC – User Defined Roles • Roles 은 사용자가 DB 리소스에서 수행할 수 있는 작업을 결정 • User-defined roles 은 조직의 요구 사항에 따라 RBAC 역할을 사용자 지정할 수 있는 유연성을 제공 • 세분화된 액세스 제어(일명 최소 권한 액세스)로 사용자를 생성할 수 있음 • 특정 작업/API에 대한 액세스를 제한하는 역할 생성 • 특정 컬렉션에 대한 액세스를 제한하는 역할 생성 • 기존 사용자 정의 역할에 기본 제공 역할 또는 작업에 대한 액세스를 추가할 수 있음
  • 55. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. • Use TLS in-transit • KMS-backed at-rest encryption Encryption
  • 56. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. AWS Secrets Manager Amazon DocumentDB Application Lambda Rotation Function Retrieve credentials Login with credentials Update credentials Trigger update Integration with AWS Secrets Manager
  • 57. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Data Modeling
  • 58. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. What is it ? 물리적 또는 논리적으로 고유하게 식별할 수 있는 추상화 개체 Entities for an e-commerce application Data modeling concepts - Entities
  • 59. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. ➢ One to one ➢ One to many ➢ Many to many Data modeling concepts - Relationships
  • 60. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Data modeling concepts – Normalized or Denormalized Embed model { "username": "john", "userId": 1234, "access": { "level": 2, "group": "dba" }, "contact":{ "phone": "123-24212", "email": "john@domain.tld" } } Embedded sub-doc Embedded sub-doc { "username": "john", "userId": 1234 } { "userId": 1234, "phone": "123-24212", "email": "john@domain.tld" } { "userId": 1234, "group": "dba", "level": 2 } User document Reference model Contact document Access document
  • 61. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. • Optimize the access patterns • Better document structure • Simplify queries • Less indexes What is it ? 다양한 사용 사례에 적용하고 재사용할 수 있는 데이터 모델링 기술 Data modeling concepts – Design pattern
  • 62. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Data modeling methodology
  • 63. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 응용 프로그램 요구 사항 설명 엔터티 및 관계 식별 디자인 패턴 적용 Schema model Methodology - Phases
  • 64. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. PHASE 1 워크로드 식별
  • 65. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 응용 프로그램 요구 사항 설명 INPUT • 요구사항 문서 • 시나리오 • 지표 및 로그 • 기존 NoSQL 모델 마이그레이션 또는 리팩터링 • 가정 • 어플리케이션 요구 사항 및 데이터 사용 방법 정의 • 액세스 패턴, 읽기vs 쓰기 식별 • 가장 중요한 쿼리 식별 • 데이터 크기 추정 • 오래된 데이터에 대한 일관성 요구 사항 및 허용 오차를 식별 Methodology – Identify workload
  • 66. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 시나리오 예제 : 온라인 블로그 웹 사이트에서 작성자는 모든 기사에 대한 기사 및 댓글을 게시하거나 읽을 수 있습니다. 각 기사에는 태그가 있을 수 있으며 하나 이상의 범주에 속할 수 있음 CRUD Operation Type Frequency (peak) Avg doc size Max Latency New blog added/updated Write 100/month 500 KB < 500ms New comment added Author added Write Write 5000/month 30/month 32 KB 2 KB < 150ms <100ms Blog views Read 10000/day/blog 5ms Author logs in Read 200/day 10ms 응용 프로그램 요구 사항 설명 Methodology – Identify operations
  • 67. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. PHASE 2 엔터티 및 관계 식별
  • 68. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. 엔터티 및 관계 식별 Embedding or Referencing ? Methodology – Identify relationships
  • 69. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Authors • id • name • email Blogs • id • title • date • text Categories • id • name Tags • id • name Comments • id • date • text Blogs • id • title • date • text Authors • id • name • email Categories • id • name Tags • id • name Comments • id • date • text Duplication of authors data Query by blogs Query by authors Methodology – Model by access pattern
  • 70. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. id Authors • • name • email Query by blogs and authors Authors 데이터 중복 방지 Blogs • id • title • date • text • author_id Categories • id • name Tags • id • name Comments • id • date • text Methodology – Model by access pattern
  • 71. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Blogs • id • title • date • text • author_id Categories • id • name Tags • id • name Comments • id • date • text Blogs -> Comments – one to many unbounded comments 를 다른 컬렉션으로 분리하고 여러 쪽에 참조를 유지. Blogs • id • title • date • text • author_id Categories • id • name Tags • id • name Comments • id • date • text • blog_id Methodology – Model by relationship type 1:M
  • 72. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Courses { ”course_id": <objectId>, "name": <string>, "instructors": [ List[inst_id] ] } Instructors { "inst_id": <objectId>, "name": <string>, "courses": [ List[course_id] ] } Two-way embedding Courses { ”course_id": <objectId>, "name": <string>, } Students { ”student_id": <objectId>, "name": <string>, "courses": [ List[course_id] ] } Many to many bounded Many to many unbounded Courses -> Instructors Courses -> Students Methodology – Model by relationship type N:M
  • 73. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Access pattern or relationship type Recommended model - Need all related data in one query - One to one relationship - One to many, where many is bounded Embedded - A portion of data is rarely accessed - Data that is frequently updated and growing - One to many potentially unbounded Reference - Many to many Combination of both Embedding vs. Referencing - How to choose ?
  • 74. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. PHASE 3 Identify and apply design patterns
  • 75. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. { "name": <string>, "price": <int>, "specs": [ {k:"size", v: <string>}, {k:"weight", v: <string>}, {k:"colour", v: <string>}, {k:"material", v: <string>} ] } Only one index needed: ➢ { "specs.k": 1, "specs.v": 1 } // Item document { "name": <string>, "price": <int>, "size": <string>, "weight": <string>, "colour": <string>, "material": <string> } 4 indexes needed: ➢ {"size": 1} ➢ {"weight": 1} ➢ {"colour": 1} ➢ {"material": 1} Attribute pattern Challenge: • Many similar fields • Fields present only in a subset of documents Use cases: • Catalogs, Inventory Methodology – Apply design pattern
  • 76. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. // Blogs collection { "id": <objectId>, "title": <string>, "date": <date>, "text": <string>, "author_id": <objectId>, "last_comments": [ List[Last 20 comments] ] } // Comments collection { "id": <objectId>, "date": <date>, "text": <string>, "blog_id": <objectId> } Subset pattern Challenge: • Documents too large • Working set doesn’t fit in RAM Use cases: • Whenever a significant data inside a document that is rarely needed Methodology – Apply design pattern
  • 77. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. // Items { "id": <objecId>, "name": <string>, "description": <string>, "specs": [ {"k": <string>, "v": <string> } ], "category": [ List[categories] ] } Counting items for each category will require to read all items and group per category “Cache” the count when a new item is inserted // items_category_count db.itemsitems_category_count.update( {_id: "books"}, {$inc: {count: 1}} ) Computed pattern Challenge: • Repeated calculations • Read intensive workload Use cases: • Catalogs, IoT, Mobile, Real time analysis Methodology – Apply design pattern
  • 78. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. // Invoices { "invoice_id": <objectId>, "customer_id": <objectId>, "customer_info": { "fullName": <string>, "street": <string>, "city": <string>, "zipcode": <string> } } // Customers { "customer_id": <objectId>, "fullName": <string>, "street": <string>, "city": <string>, "zipcode": <string>, "email": <string>, "phone": <string> } You need to manage duplication: • Duplicate only needed fields and that do not change often Extended reference Challenge: • Too many roundtrips to database or joins Use case: • Catalog, Mobile apps, E- commerce Methodology – Apply design pattern
  • 79. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Bucket pattern // SensorData { "device_id": 4523, "ts": ISODate("2023-03-10T10:00"), "temp": 20 }, { "device_id": 4523, "ts": ISODate("2023-03-10T10:01"), "temp": 20 }, { "device_id": 4523, "ts": ISODate("2023-03-10T10:02"), "temp": 21 } Bucket per hour Combine with computed pattern //SensorData "device "date": ISODate("2023-03-10T10"), "temp": [ {"ts": ISODate("2023-03-10T10:00"), "temp": 20}, {"ts": ISODate("2023-03-10T10:00"), "temp": 20}, {"ts": ISODate("2023-03-10T10:00"), "temp": 21}, ], "temp_count": 3, "temp_sum": 61 Challenge: • Large documents or too many documents Use cases: • IoT • Historical data • Lots of data associated with one entity Methodology – Apply design pattern
  • 80. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Current & Next
  • 81. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. A few highlights from recent releases 2019 2020 2021 2022 2023 Frankfurt Secrets Manager DDL auditing Aggregation operators Launch Sydney London Canada t3 instances Cross-region snapshot copy RBAC user-defined roles JDBC driver Geospatial Performance Insights (preview) Elastic Clusters Slow query logger Aggregation operators RBAC Free trial Aggregation operators MongoDB 4.0 Acid transactions Fast database cloning Per-second billing Tokyo Seoul Change streams Mumbai Paris Singapore Glue ETL Global clusters Milan DML auditing Decimal128 support Start/stop cluster Deletion protection Aggregation operators Increase cursor & connection limits Graviton2 AWS Backup Dynamic volume resizing MongoDB 5.0 Lambda ESM Client-side field level encryption
  • 82. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. db.foo.findOne() {“x”:1} Global replication: Up to 5 secondary regions Low replica lag: Typically < 1 sec Fast recovery: Typically < 1 min downtime Compatibility: Version 4.0 and later Global reader instances: Up to 90 db.foo.insertOne({“x”:1}) Reads Reads Writes Reads Replication Service (primary region) Ohio Reads Reads Replication Service (secondary region) Oregon Reads Reads Replication Service (secondary region) Tokyo Global Clusters
  • 83. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Elastic Cluster architecture db.foo.find( { order_id:1 }) { “order_id”:1, “name”:”Amazon” } db.foo.insert( { order_id: 2 }) {“inserted_id”:2} Shard-1 Compute capacity Writes Reads Distributed storage volume Shard-2 Compute capacity Writes Reads Distributed storage volume Shard-n Compute capacity Writes Reads Distributed storage volume Elastic Cluster Request Router and Service
  • 84. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. What’s Next? “Amazon DocumentDB resources” https://aws.amazon.com/documentdb/resources/ “Amazon DocumentDB immersion day workshop” https://documentdb-immersionday.workshop.aws/
  • 85. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Q&A
  • 86. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Confidential and Trademark. Thank you!