View a markdown version of this page

JDBC 커넥터를 사용하여 Aurora DSQL 클러스터에 연결 - Amazon Aurora DSQL

JDBC 커넥터를 사용하여 Aurora DSQL 클러스터에 연결

JDBC용 Aurora DSQL 커넥터는 애플리케이션이 IAM 자격 증명을 사용하여 Aurora DSQL로 인증할 수 있도록 PostgreSQL JDBC 드라이버의 기능을 확장하는 인증 플러그인으로 설계되었습니다. 커넥터는 데이터베이스에 직접 연결되지 않지만 기본 PostgreSQL JDBC 드라이버를 기반으로 원활한 IAM 인증을 제공합니다.

JDBC용 Aurora DSQL 커넥터는 PostgreSQL JDBC 드라이버와 함께 작동하도록 빌드되었으며 Aurora DSQL의 IAM 인증 요구 사항과 원활하게 통합됩니다.

JDBC용 Aurora DSQL 커넥터는 PostgreSQL JDBC 드라이버와 함께 사용 시 Aurora DSQL에 대한 IAM 기반 인증을 지원합니다. AWS Identity and Access Management(IAM)과 같은 AWS 인증 서비스와의 심층 통합을 제공합니다.

커넥터 정보

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와 같은 연결 풀링 라이브러리와 원활하게 작동합니다.

사전 조건

시작하기 전에 다음 사전 조건을 완료했는지 확인합니다.

  • Aurora DSQL에 클러스터 생성

  • JDK(Java Development Kit) 생성 버전 17 이상이 있는지 확인

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

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

기본 연결에 JDBC용 Aurora DSQL 커넥터 사용

Java 애플리케이션에서 JDBC용 Aurora DSQL 커넥터를 사용하려면 다음 단계를 따르세요.

  1. 다음 종속성을 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")
  2. 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 커넥터 리포지토리를 참조하세요.