Postgres.js 用 Aurora DSQL コネクタ - Amazon Aurora DSQL

Postgres.js 用 Aurora DSQL コネクタ

Postgres.js 用 Aurora DSQL コネクタは、JavaScript アプリケーションを Amazon Aurora DSQL クラスターに接続するための IAM 認証を統合する Postgres.js 上に構築された Node.js コネクタです。

Postgres.js 用 Aurora DSQL コネクタは Postgres.js のクライアント機能を拡張して、アプリケーションが IAM 認証情報を使用して Amazon Aurora DSQL で認証できるようにする認証プラグインとして設計されています。コネクタはデータベースに直接接続しませんが、基盤となる Postgres.js ドライバー上でシームレスな IAM 認証を提供します。

コネクタについて

Amazon Aurora DSQL は、PostgreSQL 互換アプリケーションに高可用性とスケーラビリティを提供する分散 SQL データベースサービスです。Aurora DSQL には、既存の Node.js ドライバーがネイティブにサポートしていない時間制限付きトークンを使用した IAM ベースの認証が必要です。

Postgres.js 用 Aurora DSQL コネクタの考え方は、IAM トークン生成を処理する Postgres.js クライアントの上に認証レイヤーを追加することです。これにより、ユーザーは既存の Postgres.js ワークフローを変更せずに Aurora DSQL に接続できます。

Postgres.js 用 Aurora DSQL コネクタは、ほとんどのバージョンの Postgres.js で動作します。ユーザーは Postgres.js を直接インストールして独自のバージョンを提供します。

Aurora DSQL 認証とは

Aurora DSQL では、認証に以下が含まれます。

  • IAM 認証: すべての接続で、時間制限付きトークンによる IAM ベースの認証が使用されます

  • トークン生成: 認証トークンは AWS 認証情報を使用して生成され、設定可能な有効期間があります

Postgres.js 用 Aurora DSQL Connector は、これらの要件を理解し、接続の確立時に IAM 認証トークンを自動的に生成するように設計されています。

機能

  • 自動 IAM 認証 - DSQL トークンの生成と更新を処理

  • Postgres.js 上に構築 - Node.js 用の高速 PostgreSQL クライアントを活用

  • シームレスな統合 - 既存の Postgres.js 接続パターンで動作

  • リージョンの自動検出 - DSQL クラスターホスト名から AWS リージョンを抽出

  • フル TypeScript サポート - フルタイプのセキュリティを提供

  • AWS 認証情報のサポート: さまざまな 認証情報プロバイダー (デフォルト、プロファイルベース、カスタム) をサポート

  • 接続プーリングの互換性 - Postgres.js の組み込み接続プーリングとシームレスに連携

クイックスタートガイド

要件

  • Node.js 20 以降

  • Aurora DSQL クラスターへのアクセス

  • アプリケーションが Aurora DSQL に接続できるように、適切な IAM アクセス許可を設定します。

  • AWS 認証情報の設定 (AWS CLI、環境変数、または IAM ロール経由)

インストール

npm install @aws/aurora-dsql-postgresjs-connector # Postgres.js is a peer-dependency, so users must install it themselves npm install postgres

基本的な使用法

import { auroraDSQLPostgres } from '@aws/aurora-dsql-postgresjs-connector'; const sql = auroraDSQLPostgres({ host: 'your-cluster.dsql.us-east-1.on.aws', username: 'admin', }); // Execute queries const result = await sql`SELECT current_timestamp`; console.log(result); // Clean up await sql.end();

ホストの代わりにクラスター ID を使用する

const sql = auroraDSQLPostgres({ host: 'your-cluster-id', region: 'us-east-1', username: 'admin', });

接続文字列

const sql = AuroraDSQLPostgres( 'postgres://admin@your-cluster.dsql.us-east-1.on.aws' ); const result = await sql`SELECT current_timestamp`;

高度な設定

import { fromNodeProviderChain } from '@aws-sdk/credential-providers'; const sql = AuroraDSQLPostgres({ host: 'your-cluster.dsql.us-east-1.on.aws', database: 'postgres', username: 'admin', customCredentialsProvider: fromNodeProviderChain(), // Optionally provide custom credentials provider tokenDurationSecs: 3600, // Token expiration (seconds) // Standard Postgres.js options max: 20, // Connection pool size ssl: { rejectUnauthorized: false } // SSL configuration });

設定オプション

オプション タイプ 必須 説明
host string はい DSQL クラスターホスト名またはクラスター ID
database string? いいえ データベース名
username string? いいえ データベースユーザー名 (指定されていない場合は admin を使用)
region string? いいえ AWS リージョン (指定されていない場合はホスト名から自動検出)
customCredentialsProvider AwsCredentialIdentityProvider? いいえ カスタム AWS 認証情報プロバイダー
tokenDurationSecs number? いいえ トークンの有効期限の秒数

標準の Postgres.js オプションもすべてサポートされています。

認証

コネクタは、DSQL クライアントトークンジェネレーターを使用してトークンを生成することで、DSQL 認証を自動的に処理します。AWS リージョンが指定されていない場合、指定されたホスト名から自動的に解析されます。

Aurora DSQL の詳細については、「ユーザーガイド」を参照してください。

管理者ユーザーと通常のユーザー

  • 「admin」という名前のユーザーは、管理者認証トークンを自動的に使用します。

  • 他のすべてのユーザーは通常の認証トークンを使用します。

  • トークンは接続ごとに動的に生成されます。

使用例

Postgres.js 用 Aurora DSQL コネクタを使用した JavaScript の例は、GitHub で入手できます。例を実行する手順については、例のディレクトリを参照してください。

説明
複数のワーカー間でのテーブルの作成、挿入、読み取りなど、同時クエリによる接続プーリング 接続プーリングの例 (推奨)
接続プーリングなしの CRUD オペレーション (テーブルの作成、挿入、選択、削除) 接続プーリングなしの例