PoshJosh's Blog

Amazon DynamoDB Accelerator (DAX)

April 04, 2020

Acronyms

DAX - DynamoDB Accelerator IAM - Identity and Access Management VPC - Virtual Private Cloud VPN - Virtual Private Network

TL;DR

Scroll down to the end of the article and read the takeaways.

What is DynamoDB Accelerator (DAX)

Amazon DynamoDB Accelerator (DAX) is a fully managed, highly available, in-memory cache for DynamoDB that delivers up to a 10x performance improvement (from milliseconds to microseconds) even at millions of requests per second.

DAX does all the heavy lifting required to add in-memory acceleration to your DynamoDB tables, without requiring developers to manage cache invalidation, data population, or cluster management.

You do not need to modify application logic, since DAX is compatible with existing DynamoDB API calls.

Enable DAX via the AWS Management Console or SDK

Benefits of Enabling DAX

  • Extreme Performance

    • DynamoDB = consistent single-digit millisecond latency
    • DynamoDB + DAX = response times in microseconds for millions of requests per second for read-heavy workloads.
  • Highly Scalable. You can start with a three-node DAX cluster and scale up to 10 nodes

giving you millions of requests per second.

  • Fully Managed. DAX is fully managed by AWS just like DynamoDB

  • Ease of Use. DAX is tightly integrated with Amazon DynamoDB – you simply

provision a DAX cluster, use the DAX client SDK to point your existing DynamoDB API calls at the DAX cluster, and let DAX handle the rest. Because DAX is API-compatible with DynamoDB, there is no need to make any functional application code changes.

  • Cost Savings. You may be able to reduce the provisioned read capacity of

DynamoDB and lower overall operational cost, because the retrieval of cached data reduces the read load on existing DynamoDB tables.

  • Flexible. DAX enables you to provision one DAX cluster for multiple DynamoDB

tables, multiple DAX clusters for a single DynamoDB table or somewhere in between giving you maximal flexibility.

  • Secure. DAX fully integrates with AWS services to enhance security. You can

use Identity and Access Management (IAM) to assign unique security credentials to each user and control each user’s access to services and resources. Amazon CloudWatch enables you to gain system-wide visibility into resource utilization, application performance, and operational health. Integration with AWS CloudTrail enables you to easily log and audit changes to your cluster configuration. DAX supports Amazon Virtual Private Cloud (VPC) for secure and easy access from your existing applications. Tagging provides you additional visibility to help you manage your DAX clusters.

How DAX Works

Amazon DynamoDB Accelerator (DAX) is designed to run within an Amazon Virtual Private Cloud (Amazon VPC) environment.

An Amazon VPC service defines a virtual network that closely resembles a traditional data center. With a VPC, you have control over its IP address range, subnets, routing tables, network gateways, and security settings.

You can launch a DAX cluster in your virtual network (VPC) and control access to the cluster by using Amazon VPC security groups.

Diagram showing a high-level overview of DAX

Diagram shows a high-level overview of DAX. Source: docs.aws.amazon.com

  • Enable DAX via the AWS Management Console or SDK

  • Deploy your application with the DAX client.

  • At runtime, the DAX client directs all of your application’s DynamoDB API

requests to the DAX cluster. If DAX can process one of these API requests directly, it does so. Otherwise, it passes the request through to DynamoDB.

Takeaways

  • Amazon DynamoDB Accelerator (DAX) is a fully managed service.

  • DAX delivers up to a 10x performance improvement (from milliseconds to

microseconds) even at millions of requests per second.

  • You do not need to modify application logic, since DAX is compatible with

existing DynamoDB API calls.

  • You can launch a DAX cluster in your virtual network (VPC) and control access

to the cluster by using Amazon VPC security groups.

  • Steps to enable and use DAX:

    • Enable DAX via the AWS Management Console or SDK

    • Deploy your application with the DAX client.

    • At runtime, the DAX client directs all of your application’s DynamoDB API

    requests to the DAX cluster. If DAX can process one of these API requests directly, it does so. Otherwise, it passes the request through to DynamoDB.

References


Written byChinomso IkwuagwuExcélsior

Limited conversations with distributed systems.

Modifying legacy applications using domain driven design (DDD)

Gherkin Best Practices

Code Review Best Practices

Hacking Cypress in 9 minutes

Some common mistakes when developing java web applications

How to make a Spring Boot application production ready

SQL JOINS - A Refresher

Add Elasticsearch to Spring Boot Application

Add entities/tables to an existing Jhipster based project

CSS 3 Media Queries - All over again

Maven Dependency Convergence - quick reference

Amazon SNS Quick Reference

AWS API Gateway Quick Reference

Amazon SQS Quick Reference

AWS API Gateway Quick Reference

AWS Lambda Quick Reference

Amazon DynamoDB - Quick Reference

Amazon Aurora

Amazon Relational Database Service

AWS Database Services

AWS Security Essentials

Amazon Virtual Private Cloud Connectivity Options

Summary of AWS Services

AWS Certified Solutions Architect - Quick Reference

AWS CloudFront FAQs - Curated

AWS VPC FAQs - Curated

AWS EC2 FAQs - Curated

AWS Achritect 5 - Architecting for Cost Optimization

AWS Achritect 4 - Architecting for Performance Efficiency

AWS Achritect - 6 - Passing the Certification Exam

AWS Achitect 3 - Architecting for Operational Excellence

AWS Achitect 2 - Architecting for Security

AWS Achitect 1 - Architecting for Reliability

Amazon DynamoDB Accelerator (DAX)

Questions and Answers - AWS Certified Cloud Architect Associate

Questions and Answers - AWS Certified Cloud Architect Associate

AWS Connectivity - PrivateLink, VPC-Peering, Transit-gateway and Direct-connect

AWS - VPC peering vs PrivateLink

Designing Low Latency Systems

AWS EFS vs FSx

AWS Regions, Availability Zones and Local Zones

AWS VPC Endpoints and VPC Endpoint Services (AWS Private Link)

AWS - IP Addresses

AWS Elastic Network Interfaces

AWS Titbits

Jenkins on AWS - Automation

Jenkins on AWS - Setup

Jenkins on AWS - Best practices

Introduction to CIDR Blocks

AWS Lamda - Limitations and Use Cases

AWS Certified Solutions Architect Associate - Part 10 - Services and design scenarios

AWS Certified Solutions Architect Associate - Part 9 - Databases

AWS Certified Solutions Architect Associate - Part - 8 Application deployment

AWS Certified Solutions Architect Associate - Part 7 - Autoscaling and virtual network services

AWS Certified Solutions Architect Associate - Part 6 - Identity and access management

AWS Certified Solutions Architect Associate - Part 5 - Compute services design

AWS Certified Solutions Architect Associate - Part 4 - Virtual Private Cloud

AWS Certified Solutions Architect Associate - Part 3 - Storage services

AWS Certified Solutions Architect Associate - Part 2 - Introduction to Security

AWS Certified Solutions Architect Associate - Part 1 - Key services relating to the Exam

AWS Certifications - Part 1 - Certified solutions architect associate

AWS Virtual Private Cloud (VPC) Examples

Curated info on AWS Virtual Private Cloud (VPC)

Notes on Amazon Web Services 8 - Command Line Interface (CLI)

Notes on Amazon Web Services 7 - Elastic Beanstalk

Notes on Amazon Web Services 6 - Developer, Media, Migration, Productivity, IoT and Gaming

Notes on Amazon Web Services 5 - Security, Identity and Compliance

Notes on Amazon Web Services 4 - Analytics and Machine Learning

Notes on Amazon Web Services 3 - Managment Tools, App Integration and Customer Engagement

Notes on Amazon Web Services 2 - Storages databases compute and content delivery

Notes on Amazon Web Services 1 - Introduction

AWS Auto Scaling - All you need to know

AWS Load Balancers - How they work and differences between them

AWS EC2 Instance Types - Curated

Amazon Web Services - Identity and Access Management Primer

Amazon Web Services - Create IAM User

Preparing Jenkins after Installation

Jenkins titbits, and then some

Docker Titbits

How to Add Chat Functionality to a Maven Java Web App

Packer - an introduction

Terraform - an introduction

Versioning REST Resources with Spring Data REST

Installing and running Jenkins in Docker

Automate deployment of Jenkins to AWS - Part 2 - Full automation - Single EC2 instance

Automate deployment of Jenkins to AWS - Part 1 - Semi automation - Single EC2 instance

Introduction to Jenkins

Software Engineers Reference - Dictionary, Encyclopedia or Wiki - For Software Engineers