Go 向けの Amazon Aurora DSQL コネクターもリリースされたので使ってみた

Go 向けの Amazon Aurora DSQL コネクターもリリースされたので使ってみた

2026.02.20

いわさです。

Aurora DSQL はある程度の PostgreSQL 互換があるのですが、接続の部分は DSQL の API を呼び出して認証トークンを取得する必要があったり、ちょっと面倒です。
それらを簡素化するために Aurora DSQL では一部のランタイム・ドライバ向けにコネクタが用意されています。

https://dev.classmethod.jp/articles/release-dsql-conectors/

上記ブログに記載されているように、これまで JDBC、Python、Node.js がサポートされていたのですが、先日 Go 用の DSQL コネクタも提供されるようになりました。

https://aws.amazon.com/about-aws/whats-new/2026/02/aurora-dsql-launches-go-python-nodejs-connectors/

このコネクタは Go 向けの PostgreSQL ドライバをラップしたもので、基本的な使い方は pgx を踏襲しつつ透過的に IAM 認証が行えるようになっています。
使ってみたので紹介します。

pgx についてはこちらです。

https://github.com/jackc/pgx

やってみる

事前に適当な DSQL クラスターを東京リージョンへ用意しておきます。

image.png

github.com/awslabs/aurora-dsql-connectors/go/pgx/dsqlのインポートを追加し、dsql.Connectで接続を行います。
dsql.NewPoolで接続プールの構成も可能です。

前提として Go 1.24 以上が必要となります。

hoge.go
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/awslabs/aurora-dsql-connectors/go/pgx/dsql"
)

func main() {
	ctx := context.Background()

	clusterEndpoint := "7btr4ocrgfn43elxeq7iyjvvnm.dsql.ap-northeast-1.on.aws"

	fmt.Printf("接続先: %s\n", clusterEndpoint)

	conn, err := dsql.Connect(ctx, dsql.Config{
		Host: clusterEndpoint,
        Profile: "hoge"
	})
	if err != nil {
		log.Fatalf("接続エラー: %v", err)
	}
	defer conn.Close(ctx)

	var result int
	var timestamp string
	err = conn.QueryRow(ctx, "SELECT 1 as test, current_timestamp::text as now").Scan(&result, &timestamp)
	if err != nil {
		log.Fatalf("クエリエラー: %v", err)
	}

	fmt.Printf("\nクエリ結果: test=%d, now=%s\n", result, timestamp)

	var version string
	err = conn.QueryRow(ctx, "SELECT version()").Scan(&version)
	if err != nil {
		log.Fatalf("バージョン取得エラー: %v", err)
	}

	fmt.Printf("\nPostgreSQL バージョン:\n%s\n", version)
	fmt.Println("\n接続をクローズしました")
}

資格情報などは通常の AWS SDK for Go と同じで、環境変数あるいはプロファイルの指定など一通りサポートされています。
接続先は DSQL コンソールから取得したクラスターエンドポイントを使用しましたが、他にもクラスターIDとリージョンを指定した設定も可能です。

実行してみましょう。

% GOTOOLCHAIN=auto go run hoge.go
接続先: 7btr4ocrgfn43elxeq7iyjvvnm.dsql.ap-northeast-1.on.aws

クエリ結果: test=1, now=2026-02-20 04:28:36.826222+00

PostgreSQL バージョン:
PostgreSQL 16

接続をクローズしました

無事接続してバージョンを取得することが出来ましたね。
なお、ドライバーのドキュメントページは以下のリポジトリに用意されています。

https://github.com/awslabs/aurora-dsql-connectors/tree/main/go/pgx

接続プールを使う場合やクロスアカウントアクセスを行う場合などの高度なシナリオについても上記ドキュメントに記載されているので実装時の参考にしてください。

さいごに

本日は Go 向けの Amazon Aurora DSQL コネクターもリリースされたので使ってみました。

面倒だった認証周りの実装が楽になるので Go + PostgreSQL を使っている方はこれを気にぜひ Aurora DSQL も評価してみてください。

この記事をシェアする

FacebookHatena blogX

関連記事