BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News AWS Announces General Availability of Amazon RDS Proxy

AWS Announces General Availability of Amazon RDS Proxy

This item in japanese

Amazon RDS Proxy is a new fully managed, highly available database proxy for MySQL and PostgreSQL databases running on Amazon RDS and Aurora.  The service is tailored to serverless architectures and other applications that open and close database connections at a high rate.

A few days before re:Invent 2019, AWS released the public preview of Amazon RDS Proxy for MySQL, a fully managed and highly available database proxy that sits between the application and the database on RDS or Amazon Aurora. Seven months later, the service now supports PostgreSQL too and it is generally available

image source: https://aws.amazon.com/rds/proxy/

RDS Proxy allows applications to pool and share connections established with the database. This helps servers that do not currently rely on a connection pool and often open and close database connections, exhausting database memory and compute resources. Serverless architectures will use the relational databases more efficiently and the proxy will improve application scalability. As Corey Quinn, cloud economist and author of the  Last Week in AWS newsletter, summarized, "This solves the '10,000 Lambda functions just hugged your database to death’ problem".'

There are also benefits for more traditional deployments, where a managed proxy can reduce the downtime in case of an instance failure and a database failover. In case of a primary node failure, RDS Proxy automatically connects to a standby database instance while preserving connections from the application. Anton Okmyanskiy and Steve Abraham, respectively principal engineer and principal data architect for Amazon Web Services, demonstrated that:

RDS Proxy reduces client recovery time after failover by up to 79% for Amazon Aurora MySQL and by up to 32% for Amazon RDS for MySQL (...) RDS Proxy improves failovers because it doesn’t rely on DNS propagation to perform failovers. The RDS Proxy eliminates reader and writer transition issues for Aurora cluster clients. It actively monitors each database instance in the Aurora database cluster to act quickly during failover on behalf of the clients. 

A new proxy can be created in a few steps in the console or using the AWS Command Line Interface:

aws rds create-db-proxy \
    --db-proxy-name channy-proxy \
    --role-arn iam_role \
    --engine-family { MYSQL|POSTGRESQL } \
    --vpc-subnet-ids space_separated_list \
    [--vpc-security-group-ids space_separated_list] \
    [--auth ProxyAuthenticationConfig_JSON_string] \
    [--require-tls | --no-require-tls] \
    [--idle-client-timeout value] \
    [--debug-logging | --no-debug-logging] \
    [--tags comma_separated_list]

code source: https://aws.amazon.com/blogs/aws/amazon-rds-proxy-now-generally-available

The pricing structure of RDS Proxy has only one dimension: a fixed hourly amount per vCPU of the underlying database instance, regardless of instance class or other configurations. The larger the instance running behind the proxy, the higher the price. 

However, there are still some limitations pointed out by AWS that might prevent a wide adoption. RDS Proxy does not track changes to the set of database instances, including host replacements, renames or scaling instances up or down. That means it cannot be used to reduce downtime during a vertical scaling of the instance and might, reducing the elasticity of a deployment. Moreover, the proxy is not yet available for MySQL 8.0 yet and works only inside an Amazon VPC.

Rate this Article

Adoption
Style

BT