Using ElastiCache to Improve DynamoDB Performance

45 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 an ElastiCache cluster and modify the Lambda functions in the site architecture to implement a simple caching scheme that returns the site to a functional state.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Launch an ElastiCache Cluster
  1. Navigate to ElastiCache.
  2. Click Get Started Now.
  3. Set the Cluster Engine to Memcached.
  4. Provide a name for the cluster (e.g., tatourneycache).
  5. Set the Cluster Node to t2.small.
Modify the getTaStats Lambda Function
  1. Navigate to Lambda.
  2. Select the function with GetTaStats in the name.
  3. Using the GitHub repo code, modify the function in editme.py to implement read-through data caching.
Modify the taStreamProcessor Lambda Function
  1. Navigate to Lambda.
  2. Select the function with taStreamProcessor in the name.
  3. Using GitHub repo code, modify the function in editme.py to implement cache invalidation when records in the TaTourneyStats table are updated.

Additional Resources

The Linux Academy AWS Training Architect Tournament site has become very popular within Linux Academy. Unfortunately, this means that 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 got permission to create a small ElastiCache cluster to implement a caching scheme that restores functionality to the site and generally improves performance. This will also reduce the monthly cost of running the site.

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

Logging In

Log in to the AWS Management Console as cloud_user using the credentials provided on the hands-on lab overview page.

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?