PostgreSQL 호환 클라이언트를 사용하여 Aurora DSQL에 액세스 - Amazon Aurora DSQL

PostgreSQL 호환 클라이언트를 사용하여 Aurora DSQL에 액세스

Aurora DSQL은 PostgreSQL 유선 프로토콜을 사용합니다. AWS CloudShell, psql, DBeaver 및 DataGrip과 같은 다양한 도구 및 클라이언트를 사용하여 PostgreSQL에 연결할 수 있습니다. 다음 테이블에는 Aurora DSQL이 일반적인 PostgreSQL 연결 파라미터를 매핑하는 방법이 요약되어 있습니다.

PostgreSQL Aurora DSQL 참고
역할(사용자 또는 그룹이라고도 함) 데이터베이스 역할 Aurora DSQL은 admin이라는 역할을 생성합니다. 사용자 지정 데이터베이스 역할을 생성할 경우 클러스터에 연결할 때 인증을 위해 admin 역할을 사용하여 IAM 역할과 연결해야 합니다. 자세한 내용은 Configure custom database roles을 참조하세요.
호스트(호스트 이름 또는 호스트 사양이라고도 함) 클러스터 엔드포인트 Aurora DSQL 단일 리전 클러스터는 단일 관리형 엔드포인트를 제공하고 리전 내에서 사용할 수 없는 경우 트래픽을 자동으로 리디렉션합니다.
Port 해당 사항 없음 - 기본값인 5432 사용 PostgreSQL 기본값입니다.
데이터베이스(dbname) postgres 사용 사용자가 클러스터를 생성할 때 Aurora DSQL이 이 데이터베이스를 생성합니다.
SSL Mode SSL은 항상 서버 측에서 활성화됨 Aurora DSQL에서 Aurora DSQL은 require SSL Mode를 지원합니다. SSL이 없는 연결은 Aurora DSQL에서 거부됩니다.
암호 인증 토큰 Aurora DSQL에는 수명이 긴 암호 대신 임시 인증 토큰이 필요합니다. 자세한 내용은 Amazon Aurora DSQL에서 인증 토큰 생성를 참조하세요.

연결할 때 Aurora DSQL에는 기존 암호 대신 서명된 IAM 인증 토큰이 필요합니다. 이러한 임시 토큰은 AWS 서명 버전 4를 사용하여 생성되며 연결 설정 중에만 사용됩니다. 연결되면 세션이 종료되거나 클라이언트 연결이 끊어질 때까지 세션이 활성 상태로 유지됩니다.

만료된 토큰으로 새 세션을 열려고 하면 연결 요청이 실패하고 새 토큰을 생성해야 합니다. 자세한 내용은 Amazon Aurora DSQL에서 인증 토큰 생성 섹션을 참조하세요.

SQL 클라이언트를 사용하여 Aurora DSQL에 액세스

Aurora DSQL은 클러스터에 연결하기 위해 여러 PostgreSQL 호환 클라이언트를 지원합니다. 다음 섹션에서는 AWS CloudShell 또는 로컬 명령줄과 함께 PostgreSQL을 사용하여 연결하는 방법과 DBeaver 및 JetBrains DataGrip과 같은 GUI 기반 도구를 설명합니다. 각 클라이언트에는 이전 섹션에 설명된 대로 유효한 인증 토큰이 필요합니다.

AWS CloudShell을 사용하여 PostgreSQL 대화형 터미널(psql)에서 Aurora DSQL에 액세스

다음 절차에 따라에서 PostgreSQL 대화형 터미널을 사용하여 AWS CloudShell에서 Aurora DSQL에 액세스합니다. 자세한 내용은 AWS CloudShell란 무엇인가요?를 참조하세요.

AWS CloudShell을 사용하여 연결
  1. Aurora DSQL 콘솔에 로그인합니다.

  2. CloudShell에서 열려는 클러스터를 선택합니다. 클러스터를 아직 생성하지 않은 경우 1단계: Aurora DSQL 단일 리전 클러스터 생성 또는 다중 리전 클러스터 생성의 단계를 따릅니다.

  3. 쿼리 편집기로 연결을 선택한 다음 CloudShell로 연결을 선택합니다.

  4. admin으로 연결할지, 아니면 사용자 지정 데이터베이스 역할로 연결할지를 선택합니다.

  5. CloudShell에서 시작을 선택하고 다음 CloudShell 대화 상자에서 실행을 선택합니다.

로컬 CLI를 사용하여 PostgreSQL 대화형 터미널(psql)을 사용하여 Aurora DSQL에 액세스

터미널 기반 프런트 엔드에서 PostgreSQL 유틸리티인 psql을 사용하여 쿼리에 대화식으로 입력하고, PostgreSQL에 발급하고, 쿼리 결과를 볼 수 있습니다.

참고

쿼리 응답 시간을 개선하려면 PostgreSQL 버전 17 클라이언트를 사용합니다. 다른 환경에서 CLI를 사용하는 경우 Python 버전 3.8+ 및 psql 버전 14+를 수동으로 설정해야 합니다.

PostgreSQL Downloads 페이지에서 운영 체제의 설치 프로그램을 다운로드합니다. psql에 대한 자세한 내용은 PostgreSQL 웹 사이트의 PostgreSQL 클라이언트 애플리케이션을 참조하세요.

AWS CLI가 이미 설치되어 있는 경우 다음 예시를 사용하여 클러스터에 연결합니다.

# Aurora DSQL requires a valid IAM token as the password when connecting. # Aurora DSQL provides tools for this and here we're using Python. export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token \ --region us-east-1 \ --expires-in 3600 \ --hostname your_cluster_endpoint) # Aurora DSQL requires SSL and will reject your connection without it. export PGSSLMODE=require # Connect with psql, which automatically uses the values set in PGPASSWORD and PGSSLMODE. # Quiet mode suppresses unnecessary warnings and chatty responses but still outputs errors. psql --quiet \ --username admin \ --dbname postgres \ --host your_cluster_endpoint

DBeaver를 사용하여 Aurora DSQL에 액세스

DBeaver는 오픈 소스 GUI 기반 데이터베이스 도구입니다. DBeaver를 사용하여 데이터베이스에 연결하고 데이터베이스를 관리할 수 있습니다. DBeaver를 다운로드하려면 DBeaver 커뮤니티 웹 사이트의 다운로드 페이지를 참조하세요.

DBeaver를 사용하여 클러스터에 연결하려면 다음 절차를 사용하세요.

DBeaver에서 새 Aurora DSQL 연결을 설정하는 방법
  1. 새 데이터 연결을 선택합니다.

  2. 새 데이터베이스 연결 창에서 PostgreSQL을 선택합니다.

  3. 연결 설정/메인 탭에서 연결 기준: 호스트를 선택하고 다음 정보를 입력합니다.

    1. 호스트 - 클러스터 엔드포인트를 사용합니다.

      데이터베이스 - postgres를 입력합니다.

      인증 - Database Native를 선택합니다.

      사용자 이름 - admin을 입력합니다.

      암호 - 인증 토큰을 생성합니다. 생성된 토큰을 복사하여 암호로 사용합니다.

  4. 경고가 나오면 무시하고 DBeaver 암호 필드에 인증 토큰을 붙여 넣습니다.

    참고

    클라이언트 연결에서 SSL 모드를 설정해야 합니다. Aurora DSQL은 PGSSLMODE=require and PGSSLMODE=verify-full를 지원합니다. Aurora DSQL은 서버 측에서 SSL 통신을 적용하고 SSL이 아닌 연결을 거부합니다. verify-full 옵션의 경우 SSL 인증서를 로컬에 설치해야 합니다. 자세한 내용은 SSL/TLS 인증서를 참조하세요.

  5. 클러스터에 연결되어 있어야 하며 SQL 문 실행을 시작할 수 있습니다.

중요

PostgreSQL 데이터베이스에 대해 DBeaver에서 제공하는 관리 기능(예: 세션 관리자잠금 관리자)은 고유한 아키텍처로 인해 데이터베이스에 적용되지 않습니다. 이러한 화면은 액세스 가능하지만 데이터베이스 상태에 대한 신뢰할 수 있는 정보를 제공하지 않습니다.

JetBrains DataGrip을 사용하여 Aurora DSQL에 액세스

JetBrains DataGrip은 PostgreSQL을 포함한 데이터베이스와 SQL 작업을 위한 교차 플랫폼 IDE입니다. DataGrip에는 지능형 SQL 편집기가 있는 강력한 GUI가 포함되어 있습니다. DataGrip을 다운로드하려면 JetBrains 웹 사이트의 다운로드 페이지로 이동합니다.

JetBrains DataGrip에서 새 Aurora DSQL 연결을 설정하는 방법
  1. 새 데이터 소스를 선택하고 PostgreSQL을 선택합니다.

  2. 데이터 소스/일반 탭에서 다음 정보를 입력합니다.

    1. 호스트 - 클러스터 엔드포인트를 사용합니다.

      포트 - Aurora DSQL은 PostgreSQL 기본값인 5432를 사용합니다.

      데이터베이스 - Aurora DSQL은 PostgreSQL 기본값인 postgres를 사용합니다.

      인증 - User & Password 를 선택합니다.

      사용자 이름 - admin을 입력합니다.

      암호 - 토큰을 생성하여 이 필드에 붙여 넣습니다.

      URL - 이 필드는 수정하지 마세요. 다른 필드에 따라 자동으로 채워집니다.

  3. 암호 - 인증 토큰을 생성하여 제공합니다. 토큰 생성기의 결과 출력을 복사하여 암호 필드에 붙여 넣습니다.

    참고

    클라이언트 연결에서 SSL 모드를 설정해야 합니다. Aurora DSQL은 PGSSLMODE=require and PGSSLMODE=verify-full를 지원합니다. Aurora DSQL은 서버 측에서 SSL 통신을 적용하고 SSL이 아닌 연결을 거부합니다. verify-full 옵션의 경우 SSL 인증서를 로컬에 설치해야 합니다. 자세한 내용은 SSL/TLS 인증서를 참조하세요.

  4. 클러스터에 연결되어 있어야 하며 SQL 문 실행을 시작할 수 있습니다.

중요

PostgreSQL 데이터베이스에 대해 DataGrip에서 제공하는 일부 뷰(예: 세션)는 고유한 아키텍처로 인해 데이터베이스에 적용되지 않습니다. 이러한 화면은 액세스 가능하지만 데이터베이스에 연결된 실세 세션에 대한 신뢰할 수 있는 정보를 제공하지 않습니다.

문제 해결

SQL 클라이언트의 인증 자격 증명 만료

설정된 세션은 최대 1시간 동안 또는 명시적 연결 해제나 클라이언트 측 제한 시간 초과가 발생할 때까지 인증된 상태로 유지됩니다. 새 연결을 설정해야 하는 경우 새 인증 토큰을 생성하여 연결의 암호 필드에 제공해야 합니다. 새 세션을 열려고 하면(예: 새 테이블 또는 새 SQL 콘솔 나열) 새 인증 시도가 강제로 수행됩니다. 연결 설정에 구성된 인증 토큰이 더 이상 유효하지 않으면 새 세션이 실패하고 이전에 연 모든 세션이 무효화됩니다. 기본적으로 15분으로 설정할 수 있고 최대 값인 7일로 설정할 수 있는 expires-in 옵션을 사용하여 IAM 인증 토큰의 기간을 선택할 때는이 점에 유의하세요.

또한 Aurora DSQL 설명서의 문제 해결 섹션을 참조하세요.