Amazon Aurora データベースをマルチ AZ で新規作成する時に、「ご指定になった DB クラスター xxxxxx の作成リクエストは実行されませんでした。Invalid database identifier: xxxxxx 」が出力した際の対処方法

2022.10.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

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 文字) で作成。

aurora_db_success_create_01

-instance-1-instance-1-ap-northeast-1aが付与されて作成できました。

aurora_db_success_create_0

DB クラスター識別子 37文字

次に、DB クラスター識別子amazon-aurora-postgresql-012345678901 (37 文字) で作成。

aurora_db_create_error_01.

以下のエラーメッセージが出力され、リーダーインスタンスは作成されませんでした。

Invalid database identifier

参考資料