AWS Database Blog
Nine Entertainment’s journey: Achieving 98% cost savings with Amazon ElastiCache Serverless for Valkey
In this post we demonstrate how Nine Entertainment achieved a 98% cost reduction by migrating to Amazon ElastiCache Serverless for Valkey while improving scalability and eliminating manual intervention during peak events.
Automated JDBC query caching with the AWS Advanced JDBC Wrapper
Today, we’re announcing the Remote Query Cache Plugin for the AWS Advanced JDBC Wrapper. The plugin handles query caching automatically. It intercepts JDBC queries, caches results in Amazon ElastiCache for Valkey, and serves subsequent identical queries from cache. Your only application change is prefixing queries with SQL hints. In this post, we show you how to use Amazon CloudWatch Database Insights to identify queries to cache, configure the Remote Query Cache Plugin in your Java applications, and monitor cache effectiveness using Amazon CloudWatch.
Building an AI-powered grid investigation agent with Aurora DSQL and Amazon Bedrock AgentCore
In this post, we show how to build an Amazon Aurora DSQL database agent that other AI agents can discover and query through natural language using the A2A protocol. You’ll walk through how to build and deploy this using Amazon Bedrock AgentCore capabilities, including AgentCore Runtime for hosting, AgentCore Gateway for tool access via MCP, and the Strands Agents SDK for agent logic.
Improving generative AI accuracy with vector and graph search hybrid queries
In this post, we discuss the differences between vector search and graph search, how to combine the two for hybrid querying, and use cases that benefit from hybrid querying.
Getting started with Change Data Capture in Amazon Aurora DSQL
In this post, we demonstrate how to configure Aurora DSQL Change Data Capture and stream database changes into Kinesis Data Streams. You will learn how CDC works, how to configure a streaming pipeline, and how to consume change events. By the end of this post, you will have a working CDC pipeline that streams database changes into a durable event stream that downstream applications can process.
Upgrade strategies for Amazon RDS for MySQL 8.0 to 8.4
This post is part of a two-part series on upgrading RDS for MySQL 8.0 to 8.4. Here, we cover the end of standard support timeline, extended support costs, upgrade methods, and key best practices. For a step-by-step implementation guide, see Best practices for upgrading RDS for MySQL 8.0 to 8.4 with prechecks, Blue/Green, and rollback.
Best practices for upgrading Amazon RDS for MySQL 8.0 to 8.4 with prechecks, Blue/Green, and rollback
In this post, you learn how to build a complete upgrade workflow for RDS for MySQL 8.0 to 8.4, covering pre-upgrade compatibility checks, Amazon RDS Blue/Green Deployments for minimal downtime, and a rollback strategy for added protection.
How HotelTrader cut inter-AZ cost 95% and latency by 49% with Valkey GLIDE on Amazon ElastiCache
In this post, you learn how HotelTrader reduced inter-availability zone data transfer costs by 95% and improved average latency by 49% by migrating from the Redis Lettuce client to Valkey GLIDE on Amazon ElastiCache. The post walks through how HotelTrader identified hidden cross-AZ data transfer costs in their multi-AZ ElastiCache cluster, implemented Valkey GLIDE’s AZ-affinity read strategy to route requests to local replicas, optimized throughput with request batching, and executed a zero-downtime migration using A/B testing over 15 days.
Zero-downtime DynamoDB construct migration: from Table to TableV2 with cdk orphan
In this post, we show you how to use the new cdk orphan command to safely migrate a DynamoDB table from the Table construct to TableV2 with zero downtime. Your data stays intact, streams keep flowing, and your application remains available throughout the process.
Filter, transform, and load your DynamoDB table exports using AWS Glue
In this post, we show how you can load (import) an Amazon DynamoDB full or incremental table export into a second DynamoDB table with precise control over what gets loaded, at what write rate, and with the ability to observe the progress. This technique helps drive large-scale data migrations and synchronizations where you want maximum control.









