Aurora PostgreSQL で Babelfish を有効化したクラスターを作成しても babelfish_db が作成されない時に最低限確認すべきポイント
いわさです。
先日 Aurora PostgreSQL で Babelfish を有効化したクラスターを作成しました。
しかし、接続確認しようとするとどうやら Babelfish がうまく有効化できていないような事象が発生しました。
原因を知って思うこととして、この問題は色々な要因で発生し得ると思います。
なのでこのエラーメッセージが表示された時に最低限まずここを確認しておいたほうが良いという点を知ったので共有します。
今回私のケースだと、マネジメントコンソールからデフォルト設定で作成した時にうまく Babelfish が有効化できないという不具合が一時的に発生していたらしいです。
再度確認してみたところ現在は修正済みのようです。うまく動いていました。
うまく動かない
前述のとおり、私のケースはマネジメントコンソールからデフォルト設定で作成した時に、今だけ起きる不具合でした。
新規の Aurora PostgreSQL クラスターを作成し、Babelfish オプションを有効化します。そうみんな好きな Babelfish だよ。

そしてここが今回のポイントだったのですが、クラスターパラメータグループを「新規作成」で作成しました。
通常はこれで問題ないのですが、今回はマネジメントコンソールの不具合の関係でこの挙動がおかしくなっていたみたいです。

DB クラスターが作成出来たので、psql で接続してみますが、次のように接続エラーとなりました。
babelfish_dbが存在しないと言われていますね。
% hoge1212aurora.cluster-cpnu9ipu74g4.ap-northeast-1.rds.amazonaws.com
zsh: command not found: hoge1212aurora.cluster-cpnu9ipu74g4.ap-northeast-1.rds.amazonaws.com
% psql -h hoge1212aurora.cluster-cpnu9ipu74g4.ap-northeast-1.rds.amazonaws.com -U postgres -d babelfish_db
Password for user postgres:
psql: error: connection to server at "hoge1212aurora.cluster-cpnu9ipu74g4.ap-northeast-1.rds.amazonaws.com" (35.75.254.85), port 5432 failed: could not initiate GSSAPI security context: The operation or option is not available: Credential for asked mech-type mech not found in the credential handle
connection to server at "hoge1212aurora.cluster-cpnu9ipu74g4.ap-northeast-1.rds.amazonaws.com" (35.75.254.85), port 5432 failed: FATAL: database "babelfish_db" does not exist
Babelfish を有効化すると PostgreSQL のレイヤーとしては babelfish_db というデータベースが作成され、その中に SQL Server クライアントから接続した際に認識できる仮想的なオブジェクトが作成されるので、Babelfish を使う上で必須のデータベースになります。が作成されていない。
psql でデータベース一覧を確認してみるとたしかに存在しないですね。
postgres=> \list
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------------+----------+----------+-------------+-------------+------------------------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
rdsadmin | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin
template0 | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/rdsadmin +
| | | | | rdsadmin=CTc/rdsadmin
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
postgres=>
クラスターパラメータグループの Babelfish 関係のパラメータがうまく反映されていなかった
クラスターパラメータグループには Babelfish 関係のオプションパラメータがいくつかありまして、それらを有効化することで Babelfish の初期化が行われます。
どうやら今回の不具合ではマネジメントコンソールからクラスターパラメータグループを新規作成した時にこれらのパラメータが有効化されない事象が起きていたみたいです。まぁそういうこともあるよ。
実際に作成されていてパラメータグループが以下です。
特に、rds.babelfish_statusがoffになっていたので、なるほどそりゃ作成されないわ。

今回の不具合にかかわらず既存のクラスターパラメータグループを使って Babelfish クラスターを作成しようとした時になぜか作成されない時、まずはパラメータグループを確認すると良いなと学びました。
Babelfish 作成にあたって必須のパラメータがいくつかあるのでまずここを確認しましょう。マネジメントコンソールの選択よりも重要です。
今回であれば回避策として事前にカスタムパラメータグループを用意しておいて、Babelfish 関係のパラメータを事前設定しておくことで作成が出来ます。
今回は最低限の設定としてrds.babelfish_statusをonにしてみました。

そして、新規 Aurora PostgreSQL クラスターを作成し、既存のパラメータを選択するようにしましょう。

再び psql で接続してみるとbabelfish_dbが存在しており、接続することが出来るようになりました。Babelfish 用のクラスターが作成できています。
% psql -h hoge1216postgres.cluster-cpnu9ipu74g4.ap-northeast-1.rds.amazonaws.com -U postgres -d babelfish_db
Password for user postgres:
psql (14.15 (Homebrew), server 17.6)
WARNING: psql major version 14, server major version 17.
Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
babelfish_db=> SELECT aurora_version() AS aurora_version, version() AS postgresql_version, sys.version() AS Babelfish_compatibility, sys.SERVERPROPERTY('BabelfishVersion') AS Babelfish_Version;
aurora_version | postgresql_version | babelfish_compatibility | babelfish_version
----------------+--------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------
17.6.1 | PostgreSQL 17.6 on x86_64-pc-linux-gnu, compiled by x86_64-pc-linux-gnu-gcc (GCC) 10.5.0, 64-bit | Babelfish for Aurora PostgreSQL with SQL Server Compatibility - 12.0.2000.8+| 5.3.0
| | Nov 15 2025 22:42:27 +|
| | Copyright (c) Amazon Web Services +|
| | PostgreSQL 17.6 on x86_64-pc-linux-gnu (Babelfish 5.3.0) |
(1 row)
(END)
さいごに
本日は Aurora PostgreSQL で Babelfish を有効化したクラスターを作成しても babelfish_db が作成されない時に最低限確認すべきポイントを共有しました。
もしbabelfish_dbが作成されていない時はパラメータグループの確認から行いましょう。
そして問題の切り分けとしてカスタムパラメータグループを使ったクラスターの作成も試してみてください。







