This document discusses Auto Scaling in Amazon DynamoDB. It provides an overview of DynamoDB Auto Scaling, including how it removes the need to manually provision and adjust throughput capacity. It describes the console experience and API actions for Auto Scaling. It also explains how Auto Scaling works under the hood, powered by Application Auto Scaling and CloudWatch. Best practices for Auto Scaling such as optimizing for daily scale down limits are also covered.
4. Amazon DynamoDB
• NoSQL Database
• Fully-managed
• Massive and seamless scalability
• Response times in microseconds
• Highly available
• Integration with AWS Services
• Pay-as-you-go model
5. DynamoDB Journey
Dec ‘04:
Suffers
outage
Oct ‘07:
Dynamo paper
published
Jan ‘12:
DynamoDB
General
Availability
Q3 ‘16:
Leader in Gartner
MQ, Forrester
Wave
Today:
• Available in 16 regions
• Millions of tables, several >100TB
• 10’s of PBs of data; Trillions of
requests/month
Tier-0 service powering most of Amazon
6. Fully Managed NoSQL Database Service
Databases hosted on premise Database hosted on Amazon EC2
Managed by You
Managed by AWS
Amazon DynamoDB
8. • Millions of
reads/sec from
single DAX
cluster
• Unlimited items
and storage
• Auto scale
throughput based
on consumption
• Consistent, single
digit millisecond
latency
• Optimized for
analytics
workloads with
native indexing
• Microsecond
response times
with DynamoDB
Accelerator (DAX)
• Control user
access at items
and attributes
level
• SOC, PCI, ISO,
FedRAMP (Mod &
High), HIPAA
BAA, DoD IL4
• Monitor with
CloudWatch
metrics & logging
with CloudTrail
• Client-side
encryption library
• Secure, private
VPC endpoints
• Designed for
99.99% high
availability (HA)
• Built-in replication
across 3 zones
• Fully-managed
• Perpetual free tier
• Pay-as-you-grow
for capacity and
storage
independently
• Track table level
spending with
Tagging
• Purge data
automatically
(Time To Live)
• Event-driven
programming with
Triggers &
Lambda
• Advanced
analytics with
EMR & Amazon
Redshift
• Full-text query
support with
Amazon
Elasticsearch
Service
• Real-time stream
processing with
Amazon Kinesis
• DMS connector
for MongoDB to
DynamoDB
Scalability Performance Security Availability &
Data Protection
Manageability &
TCO
Dev Platform &
Tools
11. Overview
• Removes the guesswork out of provisioning
adequate capacity for new workloads
• Reduces operational burden of monitoring and
adjusting capacity as application demands change
• Scales up capacity as application request rates
accelerate ensuring optimal performance
• Scales down capacity as application request rates
slow down reducing costs
• No additional costs for Auto Scaling
• Fully-managed, automatic scaling of
throughput capacity for read and write of
tables and global secondary indexes
• Set only target utilization % (consumed
capacity/provisioned capacity), minimum and
maximum limits
• Configurable from management console,
CLI, and SDK
• Works with existing tables and GSI; Enabled
by default for new tables
• Full visibility into scaling activities from
console
• Powered by Application Auto Scaling which
also supports EC2, ECS, EMR, AppStream
Feature Key Benefits
17. • RegisterScalableTarget: Registers or updates a scalable target (Table or GSI)
• DeregisterScalableTarget: Deregister a scalable target and delete its scaling policies
• PutScalingPolicy: Create new or Update existing policy of scalable target
• DeleteScalingPolicy: Delete a policy
• DescribeScalingPolicies: Get policies description, filtered by table, GSI, read, write
• DescribeScalableTargets: Get information of the table or GSI being scaled
• DescribeScalingActivities: Get 6 weeks’ scaling activities history of a table or GSI
Application AutoScaling API Actions
18. How Auto Scaling Works
1. User creates Application Auto Scaling policy for a
table
2. DynamoDB publishes consumed capacity metrics to
Amazon CloudWatch.
3. If consumed capacity exceeds target utilization (or
falls below target), Amazon CloudWatch triggers an
alarm
4. The CloudWatch alarm invokes Application Auto
Scaling to evaluate your scaling policy
5. Application Auto Scaling sends UpdateTable
API request to DynamoDB to adjust table's
provisioned throughput
6. DynamoDB processes the UpdateTable request
increasing (or decreasing) table's provisioned
throughput capacity so that it approaches your
target utilization.
19. • Auto Scaling is best suited for predictable, gradually changing traffic patterns
• Start with default settings for new tables/GSI, and make adjustments over time
• Optimize for the daily scale down limits, currently, nine per day
• For known time window of traffic spikes, disable Auto Scaling and update manual
provisioning programmatically
• Apply same settings to GSI as tables, for optimal query performance
Best Practices
20. Getting Started with DynamoDB:
https://aws.amazon.com/dynamodb/
http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/Welcome.html
Getting Started with DynamoDB Auto Scaling:
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html
Additional Resources
Hi, I am Vijay Natarajan, and I am a principal product manager focusing on Auto Scaling, DynamoDB Accelerator and Developer Experience for Amazon DynamoDB in Amazon Web Services
As some of you joining today are new to DynamoDB, we’ll spend some time in getting to know DynamoDB, and then switch to the main topic of the webinar, Auto Scaling in DynamoDB.
DynamoDB DB is a fully-managed key-value/document store NoSQL service, that offers single-digit millisecond response times at any scale. What that means is that you can start with a single table, add attributes and items to the table without being bound to a schema or particular data types, unlike relational databases, grow the table to hundreds of terabtyes, without any degradation in performance, which is guaranteed to be in single-digit microseconds with DAX or milliseconds directly to DynamoDB. DynamoDB data is automatically replicated to two additional Azs in a region for high availability and integrated with other AWS services , like CW for monitoring, CloudTrail for logging, Elasticsearch for free-text search, and stream processing with Kinesis, event driven programming with Lambda, to name a few. DynamoDB allows you to scale your throughput up or down, anytime and you pay only for what you provision, billed hourly. So, with Auto Scaling, which we would cover shortly, only capacity required by your application is provisioned, and you pay only what is provisioned for each hour for reads and writes separately.
December 6, 2004. Amazon.com website had multi-hour outage. Peak time for retail. 2004: still at a time where not everybody was shopping online like do now
Root cause – scaled beyond relational database capabilities. Stepped back and considered new way
DynamoDB paper, seminal work defining what was dubbed NoSQL movement
Now, in addition to Retail Website, Amazon Marketplace, Fulfillment Centers, Alexa.
DynamoDB is tier-0 dependency for MOST of Amazon.
This is the easy-to-use database. You get performance without tuning. You get scalability and multi-az replication without designing a distributed system. You get ongoing security upgrades, software improvements, cost reduction efforts, monitoring…without any effort at all.
We built Dynamo to just work so you can focus on your app.
Here is how we think about DynamoDB. As all of Amazon now runs on DynamoDB and our customers rely on us for running their mission critical applications, It behooves upon us to think about our investments and roadmap priorities in a balanced manner. These are the six investment pillars that guides our investments, now lets take a look at our generally available features under each of these pillars
We are seeing DynamoDB usage across multiple customer verticals.
The chart shown here is an actual chart from one of our customers. With auto-scaling the customer has reduced TCO by over 50%.
The chart shown here is an actual chart from one of our customers. With auto-scaling the customer has reduced TCO by over 50%.