

# Babelfish の DB クラスターパラメータグループ設定
<a name="babelfish-configuration"></a>

Aurora PostgreSQL DB クラスターを作成し、[**Babelfish をオンにする**] を選択した場合、[**新規作成**] を作成すると、DB クラスターパラメータグループが自動的に作成されます。この DB クラスターパラメータグループは、インストール用に選択された Aurora PostgreSQL DB バージョンの Aurora PostgreSQL DB クラスターパラメータグループ (例えば、Aurora PostgreSQL DB バージョン 14) に基づいています。これは、次の一般的なパターンを使用して命名されています。

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

クラスター作成プロセス中に次の設定を変更できますが、カスタムパラメータグループに保存するとこれらの一部は変更できないため、慎重に選択してください。
+ 単一データベースまたは複数のデータベース
+ デフォルトの照合ロケール
+ 照合順序名
+ DB パラメータグループ

既存の Aurora PostgreSQL DB クラスターバージョン 13 以降のパラメータグループを使用するには、グループを編集して `babelfish_status` パラメータを `on` に設定します。Aurora PostgreSQL クラスターを作成する前に、Babelfish オプションを指定してください。詳細については[Amazon Aurora のパラメータグループ](USER_WorkingWithParamGroups.md)を参照してください。

次のパラメータは、Babelfish のプリファレンスを制御します。説明に特に明記されていない限り、パラメータは変更可能です。デフォルト値は説明に含まれています。任意のパラメータの許容値を表示するには、次の手順を実行します。

**注記**  
新しい DB パラメータグループを DB インスタンスに関連付ける場合、変更された静的パラメータと動的パラメータは、DB インスタンスが再起動された後にのみ適用されます。ただし、DB インスタンスに関連付けた後に DB パラメータグループの動的パラメータを変更すると、これらの変更は再起動せずに直ちに適用されます。

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインから [**パラメータグループ**] を選択します。

1. リストから、`default.aurora-postgresql14` DB クラスターのパラメータグループを選択します。

1. 検索フィールドにパラメータの名前を入力します。例えば、検索フィールドに `babelfishpg_tsql.default_locale` を入力して、このパラメータとそのデフォルト値、および許容される設定を表示します。
**注記**  
Babelfish for Aurora PostgreSQL グローバルデータベースは、次のパラメータが有効になっている場合にのみ, セカンダリリージョンで機能します。


| パラメータ | 説明 | 適用タイプ | 変更可能 | 
| --- | --- | --- | --- | 
| babelfishpg\_tsql.apg\_enable\_correlated\_scalar\_transform | プランナーが Babelfish で相関スカラーサブクエリを変換できるようにします。(デフォルト: on) (許容値: on、off)  | dynamic | true | 
| babelfishpg\_tsql.apg\_enable\_subquery\_cache | Babelfish で相関スカラーサブクエリのキャッシュの使用を有効にします。(デフォルト: on) (許容値: on、off)  | dynamic | true | 
| babelfishpg\_tds.tds\_default\_numeric\_scale | エンジンがスケールを指定していない場合、TDS 列メタデータで送信される数値型のデフォルトスケールを設定します。(デフォルト: 8) (許容値: 0 ～ 38)  | dynamic | true | 
| babelfishpg\_tds.tds\_default\_numeric\_precision | エンジンが精度を指定していない場合、TDS 列のメタデータで送信される数値型のデフォルト精度を設定する整数。(デフォルト: 38) (許容値: 1 ～ 38) | dynamic | true | 
| babelfishpg\_tds.tds\_default\_packet\_size | SQL Server クライアントを接続するためのデフォルトのパケットサイズを設定する整数。(デフォルト: 4096) (許容値: 512 ～ 32767) | dynamic | true | 
| babelfishpg\_tds.tds\_default\_protocol\_version | クライアントを接続するためのデフォルトの TDS プロトコルバージョンを設定する整数。(デフォルト: DEFAULT) (tdsv7.0、 tdsv7.1、 tdsv7.1.1、 tdsv7.2、 tdsv7.3a、 tdsv7.3b、 tdsv7.4、DEFAULT) | dynamic | true | 
| babelfishpg\_tds.default\_server\_name | Babelfish サーバーのデフォルト名を識別する文字列。(デフォルト: Microsoft SQL Server) (許容値: null) | dynamic | true | 
| babelfishpg\_tds.tds\_debug\_log\_level | TDS のロギングレベルを設定します。0 はロギングをオフにする整数。(デフォルト: 1) (許容値: 0、1、2、3) | dynamic | true | 
| babelfishpg\_tds.listen\_addresses | TDS をリッスンするためのホスト名、IP アドレス、またはアドレスを設定する整数。Babelfish DB クラスターの作成後にこのパラメータを変更することはできません。(デフォルト: \*) (許容値: null)  | – | false | 
| babelfishpg\_tds.port | SQL Server 構文でのリクエストに使用する TCP ポートを設定する整数。(デフォルト: 1433) (許容値: 1 ～ 65535) | static | true | 
| babelfishpg\_tds.tds\_ssl\_encrypt | TDS リスナーポートを通過するデータの暗号化をオン (0) またはオフ (1) にするブール値。SSL を使用したクライアント接続の詳細については、[Babelfish SSL 設定とクライアント接続](#babelfish-ssl) を参照してください。(デフォルト: 00) (許容値: 0、1) | dynamic | true | 
| babelfishpg\_tds.tds\_ssl\_max\_protocol\_version | TDS セッションに使用する最高の SSL/TLS プロトコルバージョンを指定する文字列。(デフォルト: 'TLSv1.2') (許容値: 'TLSv1'、'TLSv1.1'、'TLSv1.2') | dynamic | true | 
| babelfishpg\_tds.tds\_ssl\_min\_protocol\_version | TDS セッションに使用する最低の SSL/TLS プロトコルバージョンを指定する文字列。(デフォルト: Aurora PostgreSQL バージョン 16 の「TLSv1.2」、Aurora PostgreSQL バージョン 16 より古いバージョンの「TLSv1」) (許容可能:「TLSv1」、「TLSv1.1」、「TLSv1.2」) | dynamic | true | 
| babelfishpg\_tds.unix\_socket\_directories | TDS サーバーの Unix ソケットディレクトリを識別する文字列。Babelfish DB クラスターの作成後にこのパラメータを変更することはできません。(デフォルト: /tmp) (許容値: null) | – | false | 
| babelfishpg\_tds.unix\_socket\_group | TDS サーバーの Unix ソケットグループを識別する文字列。Babelfish DB クラスターの作成後にこのパラメータを変更することはできません。(デフォルト: rdsdb) (許容値: null) | – | false | 
| babelfishpg\_tsql. default\_locale | Babelfish 照合に使用されるデフォルトのロケールを指定する文字列。デフォルトのロケールはロケールで、修飾子は含まれません。<br />Babelfish DB クラスターをプロビジョニングするときに、このパラメータを設定します。DB クラスターのプロビジョニング後、このパラメータへの変更は無視されます。(デフォルト: en\_US) (許容値: [tables](babelfish-collations.md) を参照)  | static | true | 
| babelfishpg\_tsql.migration\_mode | 単一または複数のユーザーデータベースのサポートを指定する変更不可能なリスト。Babelfish DB クラスターをプロビジョニングするときに、このパラメータを設定します。DB クラスターのプロビジョニング後は、このパラメータの値を変更できません。(デフォルト: Aurora PostgreSQL バージョン 16 の multi-db、Aurora PostgreSQL バージョン 16 以前のバージョンでは single-db) (許容値: single-db、multi-db、null) | static | true | 
| babelfishpg\_tsql.server\_collation\_name | サーバーレベルのアクションに使用される照合の名前を指定する文字列。Babelfish DB クラスターをプロビジョニングするときに、このパラメータを設定します。DB クラスターのプロビジョニング後は、このパラメータの値を変更しないでください。(デフォルト: bbf\_unicode\_general\_ci\_as) (許容値: [tables](babelfish-collations.md) を参照) | static | true | 
| babelfishpg\_tsql.version | @@VERSION 変数の出力を設定する文字列。Aurora PostgreSQL DB クラスターのこの値は変更しないでください。(デフォルト: null) (許容値: デフォルト) | dynamic | true | 
| rds.babelfish\_status | Babelfish 機能の状態を設定する文字列。このパラメータが `datatypesonly` に設定されている場合、Babelfish はオフになりますが、SQL Server のデータ型は引き続き使用できます。(デフォルト: off) (許容値: on、off、datatypesonly) | static | true | 
| unix\_socket\_permissions | TDS サーバーの Unix ソケットパーミッションを設定する整数。Babelfish DB クラスターの作成後にこのパラメータを変更することはできません。(デフォルト: 0700) (許容値: 0 ～ 511) | – | 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 (オフ) に設定することで、以前のデフォルトの動作に戻すことができます。

ドライバー固有の詳細については、「[BabelfishDB クラスターへの接続](babelfish-connect.md)」を参照してください。

クライアントが TDS ポート (デフォルト `1433`) に接続するとき、Babelfish はクライアントハンドシェイク中に送信された Secure Sockets Layer (SSL) 設定を Babelfish SSL パラメータ設定 (`tds_ssl_encrypt`) と比較します。その後 Babelfish は接続が許可されているかどうかを判断します。接続が許可されている場合、パラメータ設定およびクライアントが提供する暗号化のサポートに応じて、暗号化動作が強制されるかどうかが決まります。

次の表は、各組み合わせで Babelfish がどのように動作するかを示します。


| クライアント SSL の設定 | Babelfish SSL 設定 | rds.force\_ssl | 接続は許可されていますか？ | クライアントに返された値 | 
| --- | --- | --- | --- | --- | 
| ENCRYPT\_ON | いずれか | すべて | 許可されている場合、接続全体が暗号化されます | ENCRYPT\_ON | 
| ENCRYPT\_OFF | tds\_ssl\_encrypt=1 | いずれか | 許可されている場合、接続全体が暗号化されます | ENCRYPT\_REQ | 
| ENCRYPT\_OFF | tds\_ssl\_encrypt=0 | rds.force\_ssl=0 | 許可されている場合、ログインパケットは暗号化されます | ENCRYPT\_OFF | 
| ENCRYPT\_OFF | tds\_ssl\_encrypt=0 | rds.force\_ssl=1 | いいえ、接続は閉じました | ENCRYPT\_OFF | 
| ENCRYPT\_NOT\_SUP | tds\_ssl\_encrypt=0 | rds.force\_ssl=0 | はい | ENCRYPT\_NOT\_SUP | 
| ENCRYPT\_NOT\_SUP | tds\_ssl\_encrypt=1 | いずれか | いいえ、接続は閉じました  | ENCRYPT\_REQ | 
| ENCRYPT\_NOT\_SUP | tds\_ssl\_encrypt=0 | rds.force\_ssl=1 | いいえ、接続は閉じました | ENCRYPT\_NOT\_SUP | 
| ENCRYPT\_CLIENT\_CERT | いずれか | すべて | いいえ、接続は閉じました | サポートされていません | 