-
Notifications
You must be signed in to change notification settings - Fork 63
add user documentation for DSQL plugin #1478
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
cf70258
to
96d089f
Compare
Update 96d089f adds references to the new docs/samples to the top-level documentation which I missed in the initial push. The diff for the example table update is a little messy because the table cells are not aligned on
|
96d089f
to
7f0d46e
Compare
Update to 7f0d46e changes the |
7f0d46e
to
71a809e
Compare
Change to 71a809e updates the wording around |
...erExample/src/main/java/software/amazon/AwsAuroraDsqlIamAuthenticationDatasourceExample.java
Show resolved
Hide resolved
71a809e
to
c79cadd
Compare
Update to c79cadd is a simple rebase, mostly to trigger CI jobs. |
docs/using-the-jdbc-driver/using-plugins/UsingTheDsqlAuthenticationPlugin.md
Show resolved
Hide resolved
...es/AWSDriverExample/src/main/java/software/amazon/AwsAuroraDsqlIamAuthenticationExample.java
Show resolved
Hide resolved
c79cadd
to
ebcf5d8
Compare
Update to ebcf5d8 improves some of the messaging in the main |
|
||
The AWS JDBC Driver is targeted to work with **any** existing JDBC driver. Currently, the AWS JDBC Driver has been validated to support the [PostgreSQL JDBC Driver](https://github.com/pgjdbc/pgjdbc), [MySQL JDBC Driver](https://github.com/mysql/mysql-connector-j), and [MariaDB JDBC Driver](https://github.com/mariadb-corporation/mariadb-connector-j). | ||
|
||
In conjunction with the JDBC Drivers for PostgreSQL, MySQL, and MariaDB, the AWS JDBC Driver enables functionalities from Amazon Aurora such as fast failover for PostgreSQL and MySQL Aurora clusters. It also introduces integration with AWS authentication services such as [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) and [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/). | ||
The AWS JDBC Driver provides modular functionality through feature plugins, with each plugin being relevant to specific services based on their architecture and capabilities. For example, [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) authentication is supported across multiple services, while [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/) applies to services that support password-based authentication. The fast failover plugin provides reduced recovery time during failover for Aurora PostgreSQL and Aurora MySQL clusters, though it is not applicable to Aurora DSQL due to its active-active architecture. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The AWS JDBC Driver provides modular functionality through feature plugins, with each plugin being relevant to specific services based on their architecture and capabilities. For example, [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) authentication is supported across multiple services, while [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/) applies to services that support password-based authentication. The fast failover plugin provides reduced recovery time during failover for Aurora PostgreSQL and Aurora MySQL clusters, though it is not applicable to Aurora DSQL due to its active-active architecture. | |
The AWS JDBC Driver provides modular functionality through feature plugins, with each plugin being relevant to specific database services based on their architecture and capabilities. For example, [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) authentication is supported across multiple services, while [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/) applies to services that support password-based authentication. The fast failover plugin provides reduced recovery time during failover for Aurora PostgreSQL and Aurora MySQL clusters, though it is not applicable to Aurora DSQL due to its active-active architecture. |
|
||
The main idea behind the AWS JDBC Driver is to add a software layer on top of an existing JDBC driver that would enable all the enhancements brought by Aurora, without requiring users to change their workflow with their databases and existing JDBC drivers. | ||
### Seamless AWS Service Integration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it make sense to specify authentication services? i.e. Seamless AWS Authentication Service Integration
The AWS JDBC Driver has been optimized for such fast failover when working with AWS RDS Multi-AZ DB Clusters. | ||
The plugin-based design ensures applications only load the functionality they need, reducing dependencies and overhead. | ||
|
||
## Benefits for Aurora PostgreSQL, Aurora MySQL, and RDS |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Personally this heading sounds like we are going to talk about benefits of using Aurora databases instead of benefits of the wrapper. What do you think of changing this and the previous heading from
## Benefits of the AWS JDBC Driver
## Benefits for Aurora PostgreSQL, Aurora MySQL, and RDS
to
## Benefits of the AWS JDBC Driver for All Aurora and RDS Database Services
## Benefits of the AWS JDBC Driver for Aurora PostgreSQL, Aurora MySQL, and RDS
|
||
| Parameter | Value | Required | Description | Example Value | | ||
|-------------------|:-------:|:--------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------| | ||
| `iamHost` | String | No | This property will override the default hostname that is used to generate the IAM token. The default hostname is derived from the connection string. | `cluster-identifier.dsql.us-east-1.on.aws` | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Based on the conversation above where IP and Custom Endpoints are not accepted during connection, does it make sense to mention iamHost in the docs right now?
|-------------------|:-------:|:--------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------| | ||
| `iamHost` | String | No | This property will override the default hostname that is used to generate the IAM token. The default hostname is derived from the connection string. | `cluster-identifier.dsql.us-east-1.on.aws` | | ||
| `iamRegion` | String | No | This property will override the default region that is used to generate the IAM token. The default region is parsed from the connection string where possible. Some connection string formats may not be supported, and the `iamRegion` must be provided in these cases. | `us-east-2` | | ||
| `iamExpiration` | Integer | No | This property determines how long an IAM token is kept in the driver cache before a new one is generated. The default expiration time is set to be 14 minutes and 30 seconds. Note that IAM database authentication tokens have a lifetime of 15 minutes. | `600` | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this accurate given DSQL allows you to set server sided token lifetime
|
||
// This file shows how to establish an Aurora DSQL connection using HikariCP datasource and the Aurora DSQL IAM | ||
// authentication plugin. | ||
public class AwsAuroraDsqlIamAuthenticationDatasourceExample { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you think of creating a new submodule for DSQL sample codes to reduce noise for DSQL customers
Summary
This PR adds user documentation and associated examples for using the AWS Aurora DSQL IAM authentication plugin.
This accompanies the change in #1477, which adds the
dsql
plugin implementation and tests.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.