Amazon Aurora データベースをマルチ AZ で新規作成する時に、「ご指定になった DB クラスター xxxxxx の作成リクエストは実行されませんでした。Invalid database identifier: xxxxxx 」が出力した際の対処方法
困っていた内容
Amazon Aurora PostgreSQL をマルチ AZ 配置で新規作成したところ、下記のエラーメッセージが出力され、リーダーインスタンスが作成されませんでした。エラーを回避する方法を教えてください。
ご指定になった DB クラスター xxxxxx の作成リクエストは実行されませんでした。Invalid database identifier: xxxxxx
どう対応すればいいの?
DB クラスター識別子の文字数などを確認してください。AWS ドキュメントによると DB クラスター識別子には文字数や種類などに制約があると記載されています。
今回、エラーにより作成されなかったリーダーインスタンスは64
文字あるため、63
文字の制約に合致したと思われます。
Amazon Aurora DB クラスターの作成 - Amazon Aurora
DB クラスター識別子には以下の制約があります。
- 1 ~ 63 文字の英数字またはハイフンを使用する必要があります。
- 1 字目は文字である必要があります。
- ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
- 各 AWS リージョンの各 AWS アカウントのすべての DB クラスターの中で一意である必要があります。
注意
マルチ AZ 配置で Amazon Aurora データベースを作成すると、ライターインスタンスとリーダーインスタンスの DB 識別子には自動で文字が付与されます。
詳しくは、以下の弊社ブログをご確認ください。
[小ネタ] Amazon AuroraデータベースをAWSマネジメントコンソールから作成した際の命名ルールを確認してみた | DevelopersIO
Multi-AZ構成を選択しておくとライターインスタンスとリーダーインスタンスの2台のインスタンスが作成されます。この際にDB識別子の命名として指定できるのはDBクラスタ識別子のみで、インスタンスの識別子についてはマネジメントコンソールで自動で設定されるかたちです。
ブログによると、自動で付与される文字数はそれぞれ以下の通りです。※AZ は東京リージョン (ap-northeast-1)
- ライターインスタンス
-instance-1
:11
文字 - リーダーインスタンス
-instance-1-ap-northeast-1a
:27
文字
上記を踏まえると、63 - 27 = 36 なので36
文字以内で DB クラスター識別子を指定する必要がありそうです。
作成してみた
マルチ AZ 配置の Amazon Aurora PostgreSQL をエンジンバージョン 13.7 で作成してみました。
前述の予想通り、DB クラスター識別子の文字数が36
文字を超えると Invalid database identifier:
エラーが出力されました。
DB クラスター識別子 36文字
まずは、DB クラスター識別子amazon-aurora-postgresql-01234567890
(36 文字) で作成。
-instance-1
や-instance-1-ap-northeast-1a
が付与されて作成できました。
DB クラスター識別子 37文字
次に、DB クラスター識別子amazon-aurora-postgresql-012345678901
(37 文字) で作成。
以下のエラーメッセージが出力され、リーダーインスタンスは作成されませんでした。