JDBC 커넥터를 사용하여 Aurora DSQL 클러스터에 연결
JDBC용 Aurora DSQL 커넥터
JDBC용 Aurora DSQL 커넥터는 PostgreSQL JDBC 드라이버
JDBC용 Aurora DSQL 커넥터는 PostgreSQL JDBC 드라이버와 함께 사용 시 Aurora DSQL에 대한 IAM 기반 인증을 지원합니다. AWS Identity and Access Management
커넥터 정보
Aurora DSQL은 PostgreSQL 호환 애플리케이션에 고가용성과 확장성을 제공하는 분산된 SQL 데이터베이스 서비스입니다. Aurora DSQL에는 기존 JDBC 드라이버가 기본적으로 지원하지 않는 시간 제한 토큰을 사용한 IAM 기반 인증이 필요합니다.
JDBC용 Aurora DSQL 커넥터의 기본 개념은 IAM 토큰 생성을 처리하는 PostgreSQL JDBC 드라이버 위에 인증 계층을 추가하여 사용자가 기존 JDBC 워크플로를 변경하지 않고도 Aurora DSQL에 연결할 수 있도록 하는 것입니다.
Aurora DSQL 인증이란 무엇입니까?
Aurora DSQL에서 인증에는 다음이 포함됩니다.
-
IAM 인증: 모든 연결은 시간 제한 토큰이 있는 IAM 기반 인증을 사용합니다.
-
토큰 생성: 인증 토큰은 AWS 자격 증명을 사용하여 생성되며 구성 가능한 수명이 있습니다.
JDBC용 Aurora DSQL 커넥터는 이러한 요구 사항을 이해하고 연결을 설정할 때 IAM 인증 토큰을 자동으로 생성하도록 설계되었습니다.
JDBC용 Aurora DSQL 커넥터의 이점
Aurora DSQL은 PostgreSQL 호환 인터페이스를 제공하지만 기존 PostgreSQL 드라이버는 현재 Aurora DSQL의 IAM 인증 요구 사항을 지원하지 않습니다. JDBC용 Aurora DSQL 커넥터를 사용하면 다음을 통해 IAM 인증을 활성화하면서 기존 PostgreSQL 워크플로를 계속 사용할 수 있습니다.
-
자동 토큰 생성: AWS 자격 증명을 사용하여 IAM 토큰이 자동으로 생성됨
-
원활한 통합: 기존 JDBC 연결 패턴과 함께 작동함
-
AWS 자격 증명 지원: 다양한 AWS 자격 증명 공급자(기본값, 프로필 기반 등) 지원
연결 풀링과 함께 JDBC용 Aurora DSQL 커넥터 사용
JDBC용 Aurora DSQL 커넥터는 HikariCP와 같은 연결 풀링 라이브러리에서 작동합니다. 커넥터는 연결 설정 중에 IAM 토큰 생성을 처리하여 연결 풀이 정상적으로 작동할 수 있도록 합니다.
주요 기능
- 자동 토큰 생성
-
IAM 토큰은 AWS 자격 증명을 사용하여 자동으로 생성됩니다.
- 원활한 통합
-
기존 JDBC 연결 패턴과 호환되며 워크플로 변경 없이 작동합니다.
- AWS 자격 증명 지원
-
다양한 AWS 자격 증명 공급자(기본값, 프로필 기반 등)를 지원합니다.
- 연결 풀링 호환성
-
HikariCP와 같은 연결 풀링 라이브러리와 원활하게 작동합니다.
사전 조건
시작하기 전에 다음 사전 조건을 완료했는지 확인합니다.
-
JDK(Java Development Kit) 생성 버전 17 이상이 있는지 확인
-
애플리케이션이 Aurora DSQL에 연결할 수 있도록 적절한 IAM 권한 설정
-
AWS CLI, 환경 변수 또는 IAM 역할을 통해 AWS 자격 증명 구성
기본 연결에 JDBC용 Aurora DSQL 커넥터 사용
Java 애플리케이션에서 JDBC용 Aurora DSQL 커넥터를 사용하려면 다음 단계를 따르세요.
-
다음 종속성을 Maven 프로젝트에 추가합니다.
<dependencies> <!-- Aurora DSQL Connector for JDBC --> <dependency> <groupId>software.amazon.dsql</groupId> <artifactId>aurora-dsql-jdbc-connector</artifactId> <version>1.0.0</version> </dependency> </dependencies>Gradle 프로젝트의 경우 다음 종속성을 추가합니다.
implementation("software.amazon.dsql:aurora-dsql-jdbc-connector:1.0.0") -
AWS DSQL PostgreSQL 커넥터 형식을 사용하여 Aurora DSQL 클러스터에 대한 기본 연결을 생성합니다.
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DsqlJdbcConnectorExample { public static void main(String[] args) { // Using AWS DSQL PostgreSQL Connector prefix String jdbcUrl = "jdbc:aws-dsql:postgresql://your-cluster.dsql.us-east-1.on.aws/postgres?user=admin"; try (Connection connection = DriverManager.getConnection(jdbcUrl)) { // Use the connection try (Statement statement = connection.createStatement()) { // Create a table statement.execute("CREATE TABLE IF NOT EXISTS test_table (id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(100))"); // Insert data statement.execute("INSERT INTO test_table (name) VALUES ('Test Name')"); // Query data try (ResultSet resultSet = statement.executeQuery("SELECT * FROM test_table")) { while (resultSet.next()) { System.out.println("ID: " + resultSet.getInt("id") + ", Name: " + resultSet.getString("name")); } } } } catch (SQLException e) { e.printStackTrace(); } } }
구성 속성
JDBC용 Aurora DSQL 커넥터는 다음 연결 속성을 지원합니다.
- user
-
연결에 사용될 사용자 및 토큰 생성 방법을 결정합니다. 예시:
admin - token-duration-secs
-
토큰 유효 기간(초 단위)입니다. 토큰 제한에 대한 자세한 내용은 Amazon Aurora DSQL에서 인증 토큰 생성을 참조하세요.
- profile
-
제공된 프로필 이름으로 토큰 생성을 위한 ProfileCredentialsProvider를 인스턴스화하는 데 사용됩니다.
- region
-
Aurora DSQL 연결을 위한 AWS 리전입니다. 이는 선택 사항입니다. 제공된 경우 URL에서 추출된 리전을 재정의합니다.
- 데이터베이스
-
연결할 데이터베이스 이름입니다. 기본값은
postgres입니다.
로깅
Aurora DSQL JDBC 커넥터를 사용하는 동안 발생할 수 있는 문제를 해결하기 위해 로깅을 활성화합니다.
이 커넥터는 Java의 내장 로깅 시스템(java.util.logging)을 사용합니다. logging.properties 파일을 생성하여 로깅 수준을 구성할 수 있습니다.
# Set root logger level to INFO for clean output .level = INFO # Show Aurora DSQL Connector for JDBC FINE logs for detailed debugging software.amazon.dsql.level = FINE # Console handler configuration handlers = java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter # Detailed formatter pattern with timestamp and logger name java.util.logging.SimpleFormatter.format = %1$tH:%1$tM:%1$tS.%1$tL [%4$s] %3$s - %5$s%n
예제
보다 포괄적인 예제 및 사용 사례는 다음을 포함하는 JDBC용 Aurora DSQL 커넥터 리포지토리