

# Babelfish용 DB 클러스터 파라미터 그룹 설정
<a name="babelfish-configuration"></a>

Aurora PostgreSQL DB 클러스터를 생성하고 **Babelfish에서 설정(Turn on Babelfish)**을 선택한 경우 **새로 생성(Create new)**을 선택하면 DB 클러스터 파라미터 그룹이 자동으로 생성됩니다. 이 DB 클러스터 파라미터 그룹은 설치를 위해 선택한 Aurora PostgreSQL 버전(예: Aurora PostgreSQL 버전 14)의 Aurora PostgreSQL DB 클러스터 파라미터 그룹을 기반으로 합니다. 다음과 같은 일반 패턴을 사용하여 이름을 지정합니다.

```
custom-aurora-postgresql14-babelfish-compat-3
```

클러스터 생성 프로세스 중에 다음 설정을 변경할 수 있지만, 일부 설정은 사용자 지정 파라미터 그룹에 저장되면 변경할 수 없으므로 신중하게 지정해야 합니다.
+ 단일 데이터베이스 또는 다중 데이터베이스
+ 기본 데이터 정렬 로캘
+ 데이터 정렬 이름
+ DB 파라미터 그룹

기존 Aurora PostgreSQL DB 클러스터 버전 13 이상의 파라미터 그룹을 사용하려면 그룹을 편집하고 `babelfish_status` 파라미터를 `on`으로 설정합니다. Aurora PostgreSQL 클러스터를 생성하기 전에 Babelfish 옵션을 지정합니다. 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md)를 참조하세요.

다음 파라미터는 Babelfish 기본 설정을 제어합니다. 설명(Description)에 달리 명시되지 않는 한 파라미터를 수정할 수 있습니다. 기본값이 설명에 포함됩니다. 파라미터에 사용할 수 있는 값을 보려면 다음을 수행합니다.

**참고**  
새 DB 파라미터 그룹을 DB 인스턴스와 연결하면 수정된 정적 파라미터 및 동적 파라미터는 DB 인스턴스가 재부팅된 후에만 적용됩니다. 그러나 DB 파라미터 그룹을 DB 인스턴스에 연결한 후 DB 파라미터 그룹에서 동적 파라미터를 수정하면 이러한 변경 사항이 재부팅 없이 즉시 적용됩니다.

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 메뉴에서 **파라미터 그룹(Parameter groups)**을 선택합니다.

1. 목록에서 `default.aurora-postgresql14` DB 클러스터 파라미터 그룹을 선택합니다.

1. 검색 필드에 파라미터 이름을 입력합니다. 예를 들면, 검색 필드에 `babelfishpg_tsql.default_locale`을 입력하여 이 파라미터와 기본값 및 허용되는 설정을 표시합니다.
**참고**  
Babelfish for Aurora PostgreSQL 글로벌 데이터베이스는 보조 리전에 다음 파라미터가 설정된 경우에만 보조 리전에서 작동합니다.


| 파라미터 | 설명 | 적용 유형 | 수정 가능 | 
| --- | --- | --- | --- | 
| babelfishpg\$1tsql.apg\$1enable\$1correlated\$1scalar\$1transform | 플래너가 Babelfish에서 상관관계가 있는 스칼라 하위 쿼리를 변환할 수 있습니다. (기본값: on)(허용: on, off)  | 동적 | true | 
| babelfishpg\$1tsql.apg\$1enable\$1subquery\$1cache | Babelfish에서 상관관계가 있는 스칼라 하위 쿼리에 캐시를 사용할 수 있도록 지원합니다. (기본값: on)(허용: on, off)  | 동적 | true | 
| babelfishpg\$1tds.tds\$1default\$1numeric\$1scale | 엔진에서 지정하지 않은 경우 TDS 열 메타데이터에서 전송할 숫자 유형의 기본 배율을 설정합니다. (기본값: 8)(허용: 0\$138)  | 동적 | true | 
| babelfishpg\$1tds.tds\$1default\$1numeric\$1precision | 엔진에서 지정하지 않은 경우 TDS 열 메타데이터에서 전송할 숫자 유형의 기본 정밀도를 설정하는 정수입니다. (기본값: 38)(허용: 1\$138) | 동적 | true | 
| babelfishpg\$1tds.tds\$1default\$1packet\$1size | SQL Server 클라이언트 연결을 위한 기본 패킷 크기를 설정하는 정수입니다. (기본값: 4096)(허용: 512\$132767) | 동적 | true | 
| babelfishpg\$1tds.tds\$1default\$1protocol\$1version | 클라이언트 연결을 위한 기본 TDS 프로토콜 버전을 설정하는 정수입니다. (기본값: DEFAULT) (허용: TDSv7.0, TDSv7.1, TDSv7.1.1, TDSv7.2, TDSv7.3A, TDSv7.3B, TDSv7.4, DEFAULT) | 동적 | true | 
| babelfishpg\$1tds.default\$1server\$1name | Babelfish 서버의 기본 이름을 식별하는 문자열입니다. (기본값: Microsoft SQL Server)(허용: null) | 동적 | true | 
| babelfishpg\$1tds.tds\$1debug\$1log\$1level | TDS에서 로깅 수준을 설정하는 정수로, 0은 로깅을 끕니다. (기본값: 1)(허용: 0, 1, 2, 3) | 동적 | true | 
| babelfishpg\$1tds.listen\$1addresses | TDS를 수신할 호스트 이름, IP 주소 또는 주소를 설정하는 문자열입니다. Babelfish DB 클러스터를 생성한 후에는 이 파라미터를 수정할 수 없습니다. (기본값: \$1)(허용: null)  | – | false | 
| babelfishpg\$1tds.port | SQL Server 구문의 요청에 사용되는 TCP 포트를 설정하는 정수입니다. (기본값: 1433)(허용: 1\$165535) | 고정 | true | 
| babelfishpg\$1tds.tds\$1ssl\$1encrypt | TDS 리스너 포트를 통과하는 데이터에 대해 암호화를 켜거나(0) 끄는(1) 부울입니다. 클라이언트 연결을 위해 SSL 사용법에 대한 자세한 내용은 [Babelfish SSL 설정 및 클라이언트 연결](#babelfish-ssl) 섹션을 참조하세요. (기본값: 0)(허용: 0, 1) | 동적 | true | 
| babelfishpg\$1tds.tds\$1ssl\$1max\$1protocol\$1version | TDS 세션에 사용할 가장 높은 SSL/TLS 프로토콜 버전을 지정하는 문자열입니다. (기본값: 'TLSv1.2')(허용: 'TLSv1', 'TLSv1.1', 'TLSv1.2') | 동적 | true | 
| babelfishpg\$1tds.tds\$1ssl\$1min\$1protocol\$1version | TDS 세션에 사용할 최소 SSL/TLS 프로토콜 버전을 지정하는 문자열입니다. (기본값: Aurora PostgreSQL 버전 16의 'TLSv1.2', Aurora PostgreSQL 버전 16 이전 버전의 경우 'TLSv1') (허용 가능: 'TLSv1', 'TLSv1.1', 'TLSv1.2') | 동적 | true | 
| babelfishpg\$1tds.unix\$1socket\$1directories | TDS 서버 Unix 소켓 디렉터리를 식별하는 문자열입니다. Babelfish DB 클러스터를 생성한 후에는 이 파라미터를 수정할 수 없습니다. (기본값: /tmp)(허용: null) | – | false | 
| babelfishpg\$1tds.unix\$1socket\$1group | TDS 서버 Unix 소켓 그룹을 식별하는 문자열입니다. Babelfish DB 클러스터를 생성한 후에는 이 파라미터를 수정할 수 없습니다. (기본값: rdsdb)(허용: null) | – | false | 
| babelfishpg\$1tsql.default\$1locale |  Babelfish 데이터 정렬에 사용되는 기본 로캘을 지정하는 문자열입니다. 기본 로캘은 로캘일 뿐이며 한정자는 포함하지 않습니다. Babelfish DB 클러스터를 프로비저닝할 때 이 파라미터를 설정합니다. DB 클러스터를 프로비저닝한 후 이 파라미터에 대한 변경은 무시됩니다. (기본값: en\$1US)(허용: [테이블](babelfish-collations.md) 참조)   | 고정 | true | 
| babelfishpg\$1tsql.migration\$1mode |  단일 또는 다중 사용자 데이터베이스에 대한 지원을 지정하는 수정할 수 없는 목록입니다. Babelfish DB 클러스터를 프로비저닝할 때 이 파라미터를 설정합니다. DB 클러스터를 프로비저닝한 후에는 이 파라미터의 값을 수정할 수 없습니다. (기본값: Aurora PostgreSQL 버전 16의 multi-db, Aurora PostgreSQL 버전 16 이전 버전의 경우 single-db) (허용: single-db, multi-db, null)  | 고정 | true | 
| babelfishpg\$1tsql.server\$1collation\$1name |  서버 수준 작업에 사용되는 데이터 정렬의 이름을 지정하는 문자열입니다. Babelfish DB 클러스터를 프로비저닝할 때 이 파라미터를 설정합니다. DB 클러스터를 프로비저닝한 후에는 이 파라미터의 값을 수정하지 마세요. (기본값: bbf\$1unicode\$1general\$1ci\$1as)(허용: [테이블](babelfish-collations.md) 참조)  | 고정 | true | 
| babelfishpg\$1tsql.version |  @@VERSION 변수의 출력을 설정하는 문자열입니다. Aurora PostgreSQL DB 클러스터에 대해 이 값을 수정하지 마세요. (기본값: null)(허용: 기본값)  | 동적 | true | 
| rds.babelfish\$1status | Babelfish 기능의 상태를 설정하는 문자열입니다. 이 파라미터가 `datatypesonly`로 설정된 경우 Babelfish는 꺼져 있지만 SQL Server 데이터 유형은 계속 사용할 수 있습니다. (기본값: off)(허용: on, off, datatypesonly) | 고정 | true | 
| unix\$1socket\$1permissions | TDS 서버 Unix 소켓 권한을 설정하는 정수입니다. Babelfish DB 클러스터를 생성한 후에는 이 파라미터를 수정할 수 없습니다. (기본값: 0700)(허용: 0\$1511) | – | false | 

## Babelfish SSL 설정 및 클라이언트 연결
<a name="babelfish-ssl"></a>

Babelfish for Aurora PostgreSQL DB 클러스터에 대한 SSL/TLS 연결을 요구하려면 `rds.force_ssl` 파라미터를 사용합니다.
+ SSL/TLS 연결을 요구하려면 `rds.force_ssl` 파라미터 값을 1(켜짐)로 설정합니다.
+ SSL/TLS 연결 요구를 끄려면 `rds.force_ssl` 파라미터 값을 0(꺼짐)으로 설정합니다.

이 파라미터의 기본값은 Aurora PostgreSQL 버전에 따라 다릅니다.
+ Aurora PostgreSQL 버전 17 이상: 기본값은 1(켜짐)입니다.
+ Aurora PostgreSQL 버전 16 이상: 기본값은 0(꺼짐)입니다.

**참고**  
Aurora PostgreSQL 버전 16 이하에서 버전 17 이상으로 메이저 버전 업그레이드를 수행하면 파라미터의 기본값이 0(꺼짐)에서 1(켜짐)로 변경됩니다. 이 변경으로 인해 SSL용으로 구성되지 않은 애플리케이션에 대한 연결이 실패할 수 있습니다. 이 파라미터를 0(꺼짐)으로 설정하여 이전 기본 동작으로 되돌릴 수 있습니다.

드라이버별 세부 정보는 [Babelfish DB 클러스터에 연결](babelfish-connect.md) 섹션을 참조하세요.

클라이언트가 TDS 포트(기본값 `1433`)에 연결하는 경우 Babelfish는 클라이언트 핸드셰이크 중에 전송된 보안 소켓 계층(SSL) 설정을 Babelfish SSL 파라미터 설정(`tds_ssl_encrypt`)과 비교합니다. 그런 다음, Babelfish는 연결이 허용되는지 여부를 결정합니다. 연결이 허용되면 파라미터 설정과 클라이언트가 제공하는 암호화 지원에 따라 암호화 동작이 적용되거나 적용되지 않습니다.

다음 테이블은 Babelfish가 각 조합에 대해 어떻게 동작하는지 보여줍니다.


| 클라이언트 SSL 설정 | Babelfish SSL 설정 | rds.force\$1ssl | 연결이 허용되나요? | 클라이언트에 반환된 값 | 
| --- | --- | --- | --- | --- | 
| ENCRYPT\$1ON | 임의 | 임의 | 허용됨, 전체 연결 암호화 | ENCRYPT\$1ON | 
| ENCRYPT\$1OFF | tds\$1ssl\$1encrypt=1 | 임의 | 허용됨, 전체 연결 암호화 | ENCRYPT\$1REQ | 
| ENCRYPT\$1OFF | tds\$1ssl\$1encrypt=0 | rds.force\$1ssl=0 | 허용됨, 로그인 패킷 암호화 | ENCRYPT\$1OFF | 
| ENCRYPT\$1OFF | tds\$1ssl\$1encrypt=0 | rds.force\$1ssl=1 | 아니요. 연결 종료 | ENCRYPT\$1OFF | 
| ENCRYPT\$1NOT\$1SUP | tds\$1ssl\$1encrypt=0 | rds.force\$1ssl=0 | 예 | ENCRYPT\$1NOT\$1SUP | 
| ENCRYPT\$1NOT\$1SUP | tds\$1ssl\$1encrypt=1 | 임의 | 아니요. 연결 종료  | ENCRYPT\$1REQ | 
| ENCRYPT\$1NOT\$1SUP | tds\$1ssl\$1encrypt=0 | rds.force\$1ssl=1 | 아니요. 연결 종료 | ENCRYPT\$1NOT\$1SUP | 
| ENCRYPT\$1CLIENT\$1CERT | 임의 | 임의 | 아니요. 연결 종료 | 지원되지 않음 | 