

# PostgreSQL 호환 클라이언트를 사용하여 Aurora DSQL에 액세스
<a name="accessing"></a>

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


| PostgreSQL | Aurora DSQL | 참고 | 
| --- | --- | --- | 
| 역할(사용자 또는 그룹이라고도 함) | 데이터베이스 역할 | Aurora DSQL은 admin이라는 역할을 생성합니다. 사용자 지정 데이터베이스 역할을 생성할 경우 클러스터에 연결할 때 인증을 위해 admin 역할을 사용하여 IAM 역할과 연결해야 합니다. 자세한 내용은 [데이터베이스 역할 및 IAM 인증 사용](using-database-and-iam-roles.md) 섹션을 참조하세요. | 
| 호스트(호스트 이름 또는 호스트 사양이라고도 함) | 클러스터 엔드포인트 | 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에서 인증 토큰 생성](SECTION_authentication-token.md)를 참조하세요. | 

연결할 때 Aurora DSQL에는 기존 암호 대신 서명된 IAM [인증 토큰](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/SECTION_authentication-token.html)이 필요합니다. 이러한 임시 토큰은 AWS 서명 버전 4를 사용하여 생성되며 연결 설정 중에만 사용됩니다. 연결되면 세션이 종료되거나 클라이언트 연결이 끊어질 때까지 세션이 활성 상태로 유지됩니다.

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

## 지원되는 세션 파라미터
<a name="accessing-session-parameters"></a>

Aurora DSQL은 스토리지, 연결 관리 및 트랜잭션 처리를 자동으로 최적화하므로 특정 세션 파라미터 세트만 지원합니다. Aurora DSQL은 다음 표에 나열된 파라미터를 허용합니다. 이 표에 없는 파라미터를 사용하면 다음과 같은 오류가 반환됩니다.

```
ERROR: setting configuration parameter "{{parameter_name}}" not supported
```

Aurora DSQL은 다음과 같은 PostgreSQL 세션 파라미터를 지원합니다. 특별히 언급되지 않은 경우, `SET`, `SET SESSION` 또는 연결 문자열 옵션을 사용하여 이러한 파라미터를 설정할 수 있습니다. `SET LOCAL`를 사용하여 단일 트랜잭션 기간 동안 이러한 파라미터를 설정할 수도 있습니다. 파라미터를 기본값으로 복원하려면 `RESET`을 사용합니다.


**지원되는 세션 파라미터**  

| 파라미터 | 범주 | 설명 | 
| --- | --- | --- | 
| application\_name | 클라이언트 식별 | 연결 메타데이터에 보고된 애플리케이션 이름을 설정합니다. 모니터링에서 연결을 식별하는 데 유용합니다. | 
| client\_encoding | 현지화 | 클라이언트 측 문자 인코딩을 설정합니다. 데이터베이스는 내부적으로 UTF-8을 사용합니다. | 
| datestyle | 출력 형식 | 날짜와 시간 값의 표시 형식을 설정합니다(예: ISO, MDY). | 
| extra\_float\_digits | 출력 형식 | 부동 소수점으로 표시할 자릿수를 설정합니다. JDBC와 같은 일부 드라이버에서 이 파라미터를 사용합니다. | 
| intervalstyle | 출력 형식 | 간격 값에 대한 표시 형식을 설정합니다. | 
| timezone | 현지화 | 세션의 시간대를 설정합니다. Aurora DSQL은 모든 시간대 인식 날짜 및 시간을 UTC로 내부적으로 저장합니다. 이 파라미터는 Aurora DSQL이 클라이언트에 값을 표시하는 방법을 제어합니다. | 
| search\_path | 스키마 확인 | 정규화되지 않은 객체 이름에 대한 스키마 검색 순서를 설정합니다. | 
| enable\_bitmapscan | 쿼리 플래너 | 쿼리 플래너에서 비트맵 스캔 계획 유형의 사용을 활성화하거나 비활성화합니다. | 
| enable\_hashjoin | 쿼리 플래너 | 쿼리 플래너에서 해시 조인 계획 유형의 사용을 활성화하거나 비활성화합니다. | 
| enable\_indexonlyscan | 쿼리 플래너 | 쿼리 플래너에서 인덱스 전용 스캔 계획 유형의 사용을 활성화하거나 비활성화합니다. | 
| enable\_indexscan | 쿼리 플래너 | 쿼리 플래너에서 인덱스 스캔 계획 유형의 사용을 활성화하거나 비활성화합니다. | 
| enable\_material | 쿼리 플래너 | 쿼리 플래너에서 구체화 사용을 활성화하거나 비활성화합니다. | 
| enable\_mergejoin | 쿼리 플래너 | 쿼리 플래너에서 병합 조인 계획 유형의 사용을 활성화하거나 비활성화합니다. | 
| enable\_nestloop | 쿼리 플래너 | 쿼리 플래너에서 중첩 루프 조인 계획의 사용을 활성화하거나 비활성화합니다. | 
| enable\_seqscan | 쿼리 플래너 | 쿼리 플래너에서 순차 스캔 계획 유형의 사용을 활성화하거나 비활성화합니다. | 
| disable\_sync\_create\_index | Aurora DSQL 전용 | CREATE INDEX가 비동기적으로 실행되는지 여부를 제어합니다. 기본값은 on입니다. 즉, Aurora DSQL은 인덱스를 비동기식으로 생성합니다. 빈 테이블에 동기식으로 인덱스를 생성하려면 off로 설정하세요. | 
| role | 세션 ID | 현재 역할을 설정합니다. Aurora DSQL에서는 트랜잭션 블록 내에서 SET LOCAL을 사용해서만 이 파라미터를 설정할 수 있습니다. | 

Aurora DSQL은 데이터베이스의 다음 측면을 자동으로 관리하므로 해당 PostgreSQL 세션 파라미터를 구성할 필요가 없습니다.
+ **연결 및 네트워크 파라미터** - Aurora DSQL은 `tcp_keepalives_idle`, `tcp_keepalives_interval`, `tcp_keepalives_count`를 포함하여 연결 수명 주기 및 TCP 설정을 내부적으로 관리합니다.
+ **메모리 및 리소스 파라미터** - Aurora DSQL은 `work_mem` 및 `shared_buffers`를 포함하여 메모리 할당을 자동으로 관리합니다.
+ **제한 시간 파라미터** - Aurora DSQL은 `statement_timeout`, `lock_timeout`, `idle_in_transaction_session_timeout`을 포함하여 자체 트랜잭션 기간 제한을 적용합니다.
+ **복제 및 WAL 파라미터** - Aurora DSQL은 `wal_level` 및 `synchronous_commit`을 포함하여 기본 제공 다중 리전 아키텍처를 통해 복제를 자동으로 처리합니다.
+ **로깅 파라미터** - Aurora DSQL은 `log_statement` 및 `client_min_messages`를 포함하여 로깅을 내부적으로 관리합니다.
+ **트랜잭션 파라미터** - Aurora DSQL은 모든 트랜잭션에 고정된 `REPEATABLE READ` 격리 수준을 사용합니다. 드라이버에서 격리 수준을 지정해야 하는 경우 `BEGIN ISOLATION LEVEL REPEATABLE READ`를 사용하세요.

## SQL 클라이언트를 사용하여 Aurora DSQL에 액세스
<a name="accessing-sql-clients"></a>

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

**Topics**
+ [지원되는 세션 파라미터](#accessing-session-parameters)
+ [SQL 클라이언트를 사용하여 Aurora DSQL에 액세스](#accessing-sql-clients)
+ [DBeaver를 사용하여 Aurora DSQL에 액세스](accessing-dbeaver.md)
+ [JetBrains DataGrip을 사용하여 Aurora DSQL에 액세스](accessing-datagrip.md)
+ [PostgreSQL 대화형 터미널(psql)을 사용하여 Aurora DSQL에 액세스](accessing-psql.md)
+ [SQLTools용 Aurora DSQL 드라이버 사용](accessing-vscode.md)
+ [문제 해결](#accessing-troubleshooting)

## 문제 해결
<a name="accessing-troubleshooting"></a>

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

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

또한 Aurora DSQL 설명서의 [문제 해결](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/troubleshooting.html) 섹션을 참조하세요.