AWS Advanced Drivers

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

Features

← Back to Home

Failover Plugin

The Failover Plugin provides fast detection and recovery from database failures in Aurora clusters.

How It Works

  1. Topology Discovery: Wrapper queries Aurora cluster to discover all instances and their roles (writer/reader)
  2. Health Monitoring: Continuously monitors connection health using lightweight queries
  3. Failure Detection: Detects failures through connection errors, timeouts, or health check failures
  4. Failover Execution: When writer fails, connects to new writer; when reader fails, connects to different reader
  5. Topology Refresh: Updates cluster topology after failover completes

Configuration Options

Typical Failover Times

IAM Authentication Plugin

Enables AWS IAM database authentication without managing passwords.

How It Works

  1. Token Generation: Uses AWS SDK to generate authentication token from IAM credentials
  2. Token Caching: Caches token for up to 15 minutes (token lifetime)
  3. Automatic Refresh: Generates new token before expiration
  4. Connection: Uses token as password in database connection

Prerequisites

IAM Policy Example

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": "rds-db:connect",
    "Resource": "arn:aws:rds-db:region:account:dbuser:cluster-id/db-user"
  }]
}

Configuration Options

Secrets Manager Plugin

Retrieves database credentials from AWS Secrets Manager.

How It Works

  1. Secret Fetch: Retrieves secret from Secrets Manager at connection time
  2. Credential Extraction: Parses JSON secret for username, password, host, port
  3. Caching: Caches credentials to reduce API calls
  4. Rotation Support: Detects secret rotation and fetches new credentials

Secret Format

{
  "username": "dbuser",
  "password": "dbpassword",
  "host": "cluster.region.rds.amazonaws.com",
  "port": 5432,
  "dbname": "mydb"
}

Configuration Options

Prerequisites

Read/Write Splitting Plugin

Routes queries to appropriate database instances based on operation type.

How It Works

  1. SQL Analysis: Parses SQL statement to determine operation type
  2. Routing Decision:
    • SELECT → Reader instance
    • INSERT/UPDATE/DELETE → Writer instance
    • DDL statements → Writer instance
  3. Connection Management: Maintains separate connections to readers and writers
  4. Load Balancing: Distributes read queries across available readers

Configuration Options

Limitations

Host Monitoring Plugin

Tracks database instance health and performance.

How It Works

  1. Connection Monitoring: Tracks connection success/failure rates
  2. Latency Tracking: Measures query response times
  3. Health Scoring: Assigns health score to each instance
  4. Unhealthy Host Removal: Temporarily removes unhealthy instances from rotation
  5. Recovery Detection: Periodically retries unhealthy instances

Configuration Options

Metrics Collected

Aurora Connection Tracker Plugin

Optimizes connection management for Aurora clusters.

How It Works

  1. Connection Tracking: Maintains registry of all connections to cluster
  2. Stale Connection Detection: Identifies connections to instances no longer in cluster
  3. Automatic Cleanup: Closes stale connections
  4. Connection Reuse: Reuses existing connections when possible

Configuration Options

Plugin Compatibility

Not all plugins work together. Compatible combinations:

Compatible:

Incompatible:

Custom Plugins

All wrappers support custom plugin development. Implement the plugin interface for your language:

Custom plugins can intercept any database operation and add custom logic.