Course Outline:
Module 1: Introduction to AWS DynamoDB
- Overview of DynamoDB: Key Features and Use Cases
- DynamoDB vs. Relational Databases (SQL)
- Core Concepts: Tables, Items, Attributes
- Primary Keys: Partition Keys and Sort Keys
- DynamoDB Data Types
- Provisioned vs. On-Demand Capacity Modes
- Setting up an AWS DynamoDB environment
- Creating a DynamoDB table using the AWS Management Console
Module 2: Getting Started with AWS SDK for JavaScript
- Setting Up the AWS SDK for JavaScript
- Configuring AWS Credentials
- Introduction to DynamoDB SDK Methods
- Working with DocumentClient vs. DynamoDB Client
- Initializing AWS SDK and setting up JavaScript project
- Using DocumentClient to interact with DynamoDB tables
Module 3: CRUD Operations in DynamoDB with JavaScript
- Creating Items with put Operation
- Reading Items with get Operation
- Updating Items with update Operation
- Deleting Items with delete Operation
- Batch Operations: BatchGetItem and BatchWriteItem
- Adding and reading data in DynamoDB with JavaScript
- Performing batch operations for efficient data processing
Module 4: Querying and Scanning Data
- Queries vs. Scans in DynamoDB
- Querying by Partition Key and Sort Key
- Using Filters, Expressions, and Conditions in Queries
- Pagination and Handling Large Datasets
- Best Practices for Query and Scan Performance
- Querying data with filters and expressions
- Implementing pagination for large dataset handling
Module 5: Data Modeling in DynamoDB
- Designing for NoSQL and DynamoDB: Data Modeling Basics
- Single Table Design vs. Multiple Table Design
- Secondary Indexes: Global and Local Secondary Indexes
- Normalization vs. Denormalization
- Optimizing Data Models for Read and Write Efficiency
- Creating Global and Local Secondary Indexes
- Implementing single-table design with multiple entities
Module 6: DynamoDB Performance Optimization
- Understanding DynamoDB Capacity Units (Read/Write)
- Strategies for Reducing Read and Write Costs
- Fine-Tuning with Provisioned Capacity and Auto-Scaling
- Implementing Caching with DynamoDB Accelerator (DAX)
- Configuring auto-scaling for DynamoDB tables
- Setting up and using DynamoDB Accelerator (DAX) for caching
Module 7: DynamoDB Streams and Triggers
- Introduction to DynamoDB Streams and Event-Driven Architecture
- Setting up Lambda Triggers with DynamoDB Streams
- Real-time Data Processing with DynamoDB Streams and Lambda
- Event Sourcing and Change Data Capture (CDC)
- Configuring a Lambda function trigger for DynamoDB Streams
- Processing real-time changes with a DynamoDB stream
Module 8: Backup, Restore, and Security
- DynamoDB Backup and Restore Options
- Point-in-Time Recovery (PITR)
- Access Control with IAM Roles and Policies
- Encryption at Rest and in Transit
- Setting up automatic backups for DynamoDB tables
- Configuring IAM roles and policies for table access control
Structured Labs and Project
- Lab: Creating a DynamoDB table with primary and secondary indexes
- Lab: Performing CRUD operations using AWS SDK for JavaScript
- Lab: Designing a single-table architecture with multiple entities
- Lab: Setting up DynamoDB Streams with Lambda triggers
- Lab: Configuring DAX for performance optimization
- Lab: Implementing backup and recovery solutions
Project: Build a JavaScript application that interacts with a DynamoDB database, implementing features such as data storage, querying, and real-time updates using streams and Lambda.
Training material provided: Yes (Digital format)
Additional Information
Any additional information about Labs / Software Installs required for the course