Implementing DAX on an Existing DynamoDB Solution

30 minutes
  • 3 Learning Objectives

About this Hands-on Lab

In this lab, we are presented with a site that is struggling under load because the backing DynamoDB table has had its Read and Write provisioning drastically reduced to avoid incurring significant cost. To correct this, we will provision a DynamoDB Accelerator (DAX) cluster and modify the Lambda functions in the site architecture to implement caching to return the site to a functional state.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Launch a DynamoDB Accelerator (DAX) Cluster
  1. Navigate to DynamoDB.
  2. Click Dashboard in the left-hand menu.
  3. Click Create cluster.
  4. Set the following values:
    • Cluster name: tatourneycache
    • Node type: dax.t2.small
    • Cluster size: 1
    • IAM Service role for DynamoDB access: Create new
      • IAM role name: DAXtoDynamoDB
      • IAM policy name: DAXtoDynamoDBPolicy
      • IAM role policy: Read/Write
      • Target DynamoDB table: TaTourneyStats
    • Subnet group: Create new
      • Name: tatourney
      • VPC: Select the provided VPC
      • Subnets: Check both subnets listed
    • Security group: default (not the cfst- one)
  5. Click Launch cluster.
Modify `getTaStats` Lambda Function
  1. Navigate to the Lambda service.
  2. Select the function with getTaStats in the name.
  3. Modify the function to utilize the DAX client in place of the Boto3 DynamoDB client.

Note: If you’re not comfortable editing code, a modified version of this function is available at the GitHub link on the lab page.

Modify `taStreamProcessor` Lambda Function
  1. Navigate to the Lambda service.
  2. Select the function with taStreamProcessor in the name.
  3. Modify the function to replace the Boto3 DynamoDB client with the DAX client.

Note: If you’re not comfortable editing code, a modified version of this function is available at the GitHub link on the lab page.

Additional Resources

The Linux Academy AWS Training Architect Tournament site has become very popular within Linux Academy. Unfortunately, this means operating the site has become prohibitively expensive.

The backing table has had its read capacity units set to 1, and we've been instructed not to change it. On the other hand, we have received permission to create a DynamoDB Accelerator(DAX) cluster to implement caching to restore functionality to the site and generally improve performance as well as reduce the monthly cost of running the site.

The code used for the solution in this lab can be found on GitHub.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?