On-Demand Backup and Restore
Start course

This course explores Amazon Web Service's DynamoDB and teaches you how to architect DynamoDB setups—with an emphasis on high availability—ensuring that your internet-scale applications are always available. The course begins by looking at the various option offered by DynamoDB, before moving onto on-demand backup and restore, and rounding off by looking at point in time recovery. In each section, there is a real-world demonstration from the AWS platform which walks you through the topics covered.

If you have any feedback, queries, or suggestions relating to this course, please contact us at

Learning Objectives

  • Understand how to provision and configure DynamoDB in a manner that ensures it is highly available and able to serve all read and write requests to it.

Intended Audience

This course has been created for those who are responsible for architecting DynamoDB setups.


To get the most from this course you should be familiar with basic NoSQL concepts, and DynamoDb concepts such as Tables, Items, and Attributes. Consider watching our dedicated “Working with Amazon DynamoDB” course and/or review the “10 Things You Should Know” about DynamoDB blog post, before taking this course.

Source Code

The following GitHub repository is referenced within this course:


On demand backups allow you to request a full backup of a table, as it is at the very moment the backup request is made. On demand backups are manually requested, and can be performed either through the AWS DynamoDB console or by using the AWS CLI.

On demand backups are useful in the following situations:

  1. Table corruption - rare but possible
  2. Long term regulatory, compliance, and/or auditing data requirements
  3. Testing scenarios

Scheduling on demand backups provides you with the ability to restore table data back to a point in time. On demand backups can be requested anytime and there is no limit to the number of them nor their retention period. On demand backups remain in the account until they are explicitly requested to be deleted by an administrator.

Backups when requested and performed typically finish within seconds, and have zero impact on the table performance and availability.

Let’s perform a quick demonstration of performing an on demand backup using the AWS CLI.

Jumping into the terminal, I’ll execute the “aws dynamodb create-backup” command specifying it to back up the “cloudacademy-courses” table located in the us-west-2 region, and give it the backup name “backup1.”

aws dynamodb create-backup \

    --region us-west-2 \

    --table-name cloudacademy-courses \

    --backup-name backup1

This has resulted in the following output which indicates that the backup is being created.

We can then run the “aws dynamodb describe-backup” command specifying the backup arn and copying the backup arn from the previous output.

This time we can see that the backup is now available and ready.

We can also jump in the AWS DynamoDB console and select the Backups option on the table to view all table backups including the backup we just made.

Lets now restore it within the console. To do so I’ll select it and then click the restore button. I’ll give it the name “cloudacademy-courses-backup”. I’ll leave all defaults as is and then simply click the restore table button. And with that our backup is now getting restored. This typically takes approximately 2 to 5 minutes to become available.

I’ll skip the demo along to the point where the backup has completed restoring. Clicking on the newly restored table, and then selecting the items tab - we can indeed see that it contains all of the items captured at the time the backup was created.

About the Author
Learning Paths

Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.

Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).