High performance and scale with Amazon DynamoDB

Introduction

In this course, you create a restaurant-review application whose users rate restaurants and leave reviews. Other users can then browse these reviews to find popular restaurants.

In this lesson, you build the core service for rating and reviewing restaurants. Users can review or rate restaurants, and other users can browse reviews and ratings when choosing a restaurant.

For this service, you’ll use Amazon DynamoDB, a NoSQL database from AWS. This lesson teaches you how to use a fully managed DynamoDB table in your application. First, you learn why you would want to use DynamoDB. Then you work through the steps to create a DynamoDB table and use it in your application. At the end of this lesson, you should feel confident in your ability to use DynamoDB in your application.

Time to complete: 3045 minutes

Purpose-built Databases - DynamoDB (34:13)
Why use DynamoDB?

DynamoDB is a fully managed NoSQL database that provides fast, consistent performance at any scale. It has a flexible billing model, tight integration with infrastructure as code, and a hands-off operational model.

DynamoDB has become the database of choice for two categories of applications:

  • High-scale applications: DynamoDB was built for scale. It is based on the learning from Amazon engineers as they scaled the Amazon.com retail infrastructure to handle worldwide scale. DynamoDB is used at scale by many engineering teams, from fast-growing startups such as Airbnb and Lyft to enormous enterprises such as Capital One and Samsung. DynamoDB can provide the same consistent performance at any scale, so you won't need to refactor your database as your data grows.
  • Serverless applications: DynamoDB is popular with developers building serverless applications with services such as AWS Lambda and AWS API Gateway. The ephemeral compute nature of Lambda is difficult for traditional databases to handle. DynamoDB has an HTTP connection model and AWS Identity and Access Management (IAM) authentication that works well with serverless compute. Additionally, DynamoDB has a pay-per-use pricing option that fits well in the serverless world.

Though DynamoDB is the database of choice for high-scale and serverless applications, it can work for nearly all online transaction processing (OLTP) application workloads. DynamoDB can handle relationships between entities as well as complex filtering and sorting requirements.

Lesson contents

In this lesson, you learn how to build a service that uses DynamoDB for data storage. This lesson has five parts.

In this lesson, you saw how to prepare for data modeling with DynamoDB, how to plan your data model, and how to implement your data model in your application code. You should feel confident in your ability to use DynamoDB in your application.