🥷

Aurora DSQL用のJDBCコネクターをSpring Bootに組み込んでみた

に公開

1. はじめに

ITアーキテクトを務めています松本と申します。
Aurora DSQL Connector for JDBCというAurora DSQL用のJDBCコネクターがリリースされました。Java以外ではNode.jsやPython用のコネクターも発表されています。今まではAurora DSQLにアクセスするには自前でトークンを取得する処理を実装する必要がありました。また、トークンをリフレッシュする処理も必要でした。
Aurora DSQL Connector for JDBCでは、Aurora DSQLにアクセスする際のトークン処理を自動で行ってくれるので、アプリケーションの実装に集中できます。

https://aws.amazon.com/about-aws/whats-new/2025/11/aurora-dsql-python-node-js-jdbc-connectors-iam/

従来のAuroraにはAdvanced JDBC Wrapperというラッパーがあるのですが、
それとは別になっております。

2. Aurora DSQLとは?

Aurora DSQLはAWSが提供している分散SQLデータベースです。
サーバーレスデータベースであり、PostgreSQL互換で、強い整合性を有しております。
ただし、通常のRDBと異なり楽観的同時実行制御になっているなど、単純に置き換えることはできないことに注意が必要です。
従来のAuroraと異なり、アクセスするにはトークンを取得する必要があります。トークンを取得するためにはIAMで許可されている必要があります。

3. Aurora DSQL Connector for JDBCとは?

Aurora DSQL Connector for JDBCは、Aurora DSQLに接続するためのJDBCのライブラリです。HikariCPとも連携でき、簡単にSpring Bootに組み込むことができます。
IAMロール等にAurora DSQLのトークンを取得する権限を付与しておけば、
あとはapplication.propertiesに設定を加えるとアクセスできます。

https://github.com/awslabs/aurora-dsql-jdbc-connector?tab=readme-ov-file

4. サンプルアプリケーションの作成

これからAurora DSQLとSpring Bootを利用して、Aurora DSQL Connector for JDBCのテストアプリケーションを作成します。

前提

  • java 24
  • Spring Boot 4.0.0
  • Spring Data
  • Spring Initializrで初期構築
  • Gradleを利用
  • Aurora DSQLのクラスタは事前に構築(名前は「sample」にしています)
  • Aurora DSQLはパブリックアクセスができる状態
  • AWSのリージョンはap-northeast-1
  • AWS CLIでアクセスキーの設定やIAMポリシーの設定が完了済み

4-1. Aurora DSQLにテーブルを作成してテストデータを登録

Aurora DSQLにテスト用のテーブルを作成します。
Aurora DSQLでQuery Editorが利用できるようになったので、これを使ってテーブルの構築とテストデータを入力します。
https://aws.amazon.com/jp/about-aws/whats-new/2025/11/amazon-aurora-dsql-integrated-query-editor/

Query Editorを開いて以下のDDLを流します。

CREATE TABLE public.book (
    id uuid PRIMARY KEY,
    title varchar(255)
);

テーブルが出来上がったので、以下のinsert文でテストデータを登録します。

INSERT INTO public.book
    (id, title)
VALUES
    ('0f3a1c54-6b1e-4c2b-9f5a-9f3bc2c7c0a1', 'サンプルタイトル1'),
    ('1a92f2d7-3c54-4c8e-8d7b-2b7f5b2d9e33', 'サンプルタイトル2')
;

試しにselect文を投げてみましょう。

無事にデータが登録されていることを確認できました。
次は、Spring Bootの作成に移ります。

4-2. Spring Bootに組み込む

Spring BootにAurora DSQL Connector for JDBC組み込んでみましょう。
Web APIを作成して、Aurora DSQLのデータを返却するようにします。
URLとしては「/book/{id}」を叩いて、オブジェクトを取得できるようにします。

依存関係

Gradleのdependenciesは以下の通りでした。「software.amazon.dsql:aurora-dsql-jdbc-connector」の部分が今回のメイントピックです。lombokは必要に応じて追加してください。

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-webmvc'
	implementation 'software.amazon.dsql:aurora-dsql-jdbc-connector:1.3.0'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
}

application.propertiesの設定

application.propertiesに接続文字列を追加します。
通常のJDBCドライバーと同じプロパティを利用していることがわかるかと思います。

spring.datasource.url=jdbc:aws-dsql:postgresql://{Aurora DSQLクラスターのID}.dsql.ap-northeast-1.on.aws:5432/postgres?user=admin
spring.datasource.driver-class-name=software.amazon.dsql.jdbc.DSQLConnector

設定項目としては以上であとは通常のSpring Bootと同じです。つまり、トークンを取得する処理を記載する必要がありません。

javaの実装に移ります。実装の一部としてRepositoryクラスは以下のようになっております。
ControllerやServiceクラスは割愛しております。

@Repository
public interface BookRepository extends JpaRepository<Book, Long> {
    @Query(value = "SELECT * FROM book WHERE id = :id", nativeQuery = true)
    Book findBookById(@Param("id") UUID id);
}

あとはローカルPC上でSpring Bootを立ち上げて、
curlコマンド利用し「/book/{id}」を叩いてみましょう。

無事取得することができました。

5. まとめ

Aurora DSQLに簡単にアクセスできるJDBCがリリースされました。
トークン取得処理を実装することなく、Aurora DSQLにアクセスできるため、
アプリケーションのコアの部分に注力することができます。

今後はAurora DSQL Connector for JDBCを利用してAurora DSQLのアプリケーションを実装していきたいと思います。

デロイトトーマツグループ エンジニアリングブログ

Discussion