AWS Advanced Drivers

Documentation for AWS Advanced JDBC, Python, Node.js, Go, .NET, and ODBC Drivers

AWS Advanced Drivers

The AWS Advanced Drivers are wrapper libraries that enhance standard database drivers with AWS-specific features for Amazon Aurora and RDS. They intercept database calls and add functionality like fast failover, IAM authentication, and intelligent connection management without requiring application code changes.

How They Work

The wrappers use a plugin architecture that sits between your application and the underlying database driver. When your application makes a database call, the wrapper intercepts it, applies configured plugins, and forwards it to the actual driver.

Application → AWS Wrapper → Plugins → Database Driver → Database

Plugin Pipeline

Each wrapper implements a plugin pipeline where plugins execute in sequence:

  1. Connection Interception: Wrapper captures connection requests
  2. Plugin Execution: Each enabled plugin processes the request
  3. Driver Delegation: Final call goes to the underlying driver
  4. Response Processing: Plugins can modify responses on the way back

Available Wrappers

Core Features

Failover Plugin

Detects database failures and automatically reconnects to a healthy instance in Aurora clusters.

How it works:

Configuration:

IAM Authentication Plugin

Generates and uses AWS IAM authentication tokens instead of passwords.

How it works:

Benefits:

Secrets Manager Plugin

Retrieves database credentials from AWS Secrets Manager.

How it works:

Configuration:

Read/Write Splitting Plugin

Routes queries to appropriate endpoints based on operation type.

How it works:

Benefits:

Host Monitoring Plugin

Tracks connection health and performance metrics.

How it works:

Connection String Format

Each wrapper uses a specific format to enable the wrapper functionality:

JDBC:

jdbc:aws-wrapper:postgresql://host:port/database

Python:

AwsWrapperConnection.connect(config, driver_dialect='pg8000')

Node.js:

new AwsPgClient({ host, database, plugins: '...' })

Go:

aws-wrapper:postgres://host:port/database?plugins=...

Plugin Configuration

Enable plugins via connection properties:

plugins=failover,iam,secretsManager,readWriteSplitting

Plugins execute in the order specified. Common configurations:

Performance Considerations

Best Practices

  1. Enable only needed plugins - Each plugin adds overhead
  2. Configure appropriate timeouts - Balance between fast failover and false positives
  3. Use connection pooling - Reduces IAM token generation overhead
  4. Monitor plugin metrics - Track failover frequency and success rates
  5. Test failover scenarios - Verify behavior during actual failures

Getting Started

Choose your language and follow the specific installation and configuration guide.