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 커넥터의 기본 개념은 Postgres.js 클라이언트 위에 IAM 토큰 생성을 처리하는 인증 계층을 추가하여, 사용자가 기존 Postgres.js 워크플로를 변경하지 않고도 Aurora DSQL에 연결할 수 있도록 하는 것입니다.

Postgres.js용 Aurora DSQL 커넥터는 대부분의 Postgres.js 버전에서 작동합니다. 사용자는 Postgres.js를 직접 설치하여 자체 버전을 제공합니다.

Aurora DSQL 인증이란 무엇입니까?

Aurora DSQL에서 인증에는 다음이 포함됩니다.

  • IAM 인증: 모든 연결은 시간 제한 토큰이 있는 IAM 기반 인증을 사용합니다.

  • 토큰 생성: 인증 토큰은 AWS 자격 증명을 사용하여 생성되며 구성 가능한 수명이 있습니다.

Postgres.js용 Aurora DSQL 커넥터는 이러한 요구 사항을 이해하고 연결을 설정할 때 IAM 인증 토큰을 자동으로 생성하도록 설계되었습니다.

특성

  • 자동 IAM 인증 - DSQL 토큰 생성 및 새로 고침 처리

  • Postgres.js 기반 - Node.js용 빠른 PostgreSQL 클라이언트 활용

  • 원활한 통합 - 기존 Postgres.js 연결 패턴과 호환

  • 리전 자동 검색 - DSQL 클러스터 호스트 이름에서 AWS 리전 추출

  • 전체 TypeScript 지원 - 전체 유형 안전 제공

  • AWS 자격 증명 지원 - 다양한 AWS 자격 증명 공급자(기본값, 프로필 기반, 사용자 지정) 지원

  • 연결 풀링 호환성 - Postgres.js의 기본 제공 연결 풀링과 원활하게 작동

빠른 시작 설명서

요구 사항

  • Node.js 20+

  • Aurora DSQL 클러스터에 대한 액세스

  • 애플리케이션이 Aurora DSQL에 연결할 수 있도록 적절한 IAM 권한 설정

  • AWS CLI, 환경 변수 또는 IAM 역할을 통해 AWS 자격 증명 구성

설치

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 });

구성 옵션

옵션 Type 필수 설명
host string DSQL 클러스터 호스트 이름 또는 클러스터 ID
database string? 아니요 데이터베이스 이름
username string? 아니요 데이터베이스 사용자 이름(제공되지 않은 경우 관리자 사용)
region string? 아니요 AWS 리전(제공되지 않은 경우 호스트 이름에서 자동 감지됨)
customCredentialsProvider AwsCredentialIdentityProvider? 아니요 사용자 지정 AWS 자격 증명 공급자
tokenDurationSecs number? 아니요 초 단위의 토큰 만료 시간

모든 표준 Postgres.js 옵션도 지원됩니다.

Authentication

커넥터는 DSQL 클라이언트 토큰 생성기를 사용하여 토큰을 생성하여 DSQL 인증을 자동으로 처리합니다. AWS 리전이 제공되지 않으면 제공된 호스트 이름에서 자동으로 구문 분석됩니다.

Aurora DSQL의 인증에 대한 자세한 내용은 사용 설명서를 참조하세요.

관리자 및 일반 사용자

  • "admin"이라는 사용자는 관리자 인증 토큰을 자동으로 사용

  • 다른 모든 사용자는 일반 인증 토큰을 사용합니다.

  • 토큰은 각 연결에 대해 동적으로 생성됩니다.

샘플 사용

Postgres.js용 Aurora DSQL 커넥터를 사용하는 JavaScript 예제는 GitHub에서 확인할 수 있습니다. 예제 실행 방법에 대한 자세한 내용은 예제 디렉터리를 참조하세요.

설명 예제
여러 작업자의 테이블 생성, 만들기 및 읽기를 포함한 동시 쿼리를 사용한 연결 풀링 연결 풀 예제(선호됨)
연결 풀링이 없는 CRUD 작업(테이블 만들기, 삽입, 선택, 삭제) 연결 풀이 없는 예제