Aurora DSQL の問題のトラブルシューティング
注記
以下のトピックでは、Aurora DSQL の使用時に発生する可能性のあるエラーや問題のトラブルシューティングに関するアドバイスを提供します。こちらに記載されていない問題が見つかった場合は、AWS サポートにお問い合わせください。
トピック
接続エラーのトラブルシューティング
error: unrecognized SSL error code: 6
原因: Server Name Indication (SNI) をサポートしていないバージョン 14
クライアントのバージョンは psql --version
で確認できます。
error: NetworkUnreachable
接続試行中の NetworkUnreachable
エラーは、実際のネットワーク問題を示すのではなく、クライアントが IPv6 接続をサポートしていないことを示している可能性があります。このエラーは、PostgreSQL クライアントがデュアルスタック接続を処理する方法が原因で、一般的に IPv4 のみのインスタンスで発生します。サーバーがデュアルスタックモードをサポートしている場合、これらのクライアントはまずホスト名を IPv4 アドレスと IPv6 アドレスの両方に解決します。最初に IPv4 接続を試み、最初の接続が失敗した場合は IPv6 を試みます。システムが IPv6 をサポートしていない場合は、明確な「IPv6 はサポートされていません」というメッセージの代わりに一般的な NetworkUnreachable
エラーが表示されます。
認証エラーのトラブルシューティング
IAM authentication failed for user "..."
Aurora DSQL IAM 認証トークンを生成する場合、設定できる最大期間は 1 週間です。1 週間後、そのトークンで認証することはできません。
さらに、引き受けたロールの有効期限が切れている場合、Aurora DSQL は接続リクエストを拒否します。例えば、認証トークンの有効期限が切れていない場合でも、一時的な IAM ロールに接続しようとすると、Aurora DSQL は接続リクエストを拒否します。
IAM と Aurora DSQL の連携の詳細については、「Understanding authentication and authorization for Aurora DSQL」および「AWS Identity and Access Management in Aurora DSQL」を参照してください。
An error occurred (InvalidAccessKeyId) when calling the GetObject operation: The AWS Access Key ID you provided does not exist in our records
IAM がリクエストを拒否しました。詳細については、「リクエストに署名する理由」を参照してください。
IAM role <role> does not exist
Aurora DSQL は IAM ロールを見つけることができませんでした。詳細については、「IAM ロール」を参照してください。
IAM role must look like an IAM ARN
詳細については、「IAM ID - IAM ARN」を参照してください。
認可エラーのトラブルシューティング
Role <role> not supported
Aurora DSQL は GRANT
オペレーションをサポートしていません。「Supported subsets of PostgreSQL commands in Aurora DSQL」を参照してください。
Cannot establish trust with role <role>
Aurora DSQL は GRANT
オペレーションをサポートしていません。「Supported subsets of PostgreSQL commands in Aurora DSQL」を参照してください。
Role <role> does not exist
Aurora DSQL は、指定されたデータベースユーザーを見つけることができませんでした。「Authorize custom database roles to connect to a cluster」を参照してください。
ERROR: permission denied to grant IAM trust with role <role>
データベースロールへのアクセスを許可するには、管理者ロールを使用してクラスターに接続している必要があります。詳細については、「Authorize database roles to use SQL in a database」を参照してください。
ERROR: role <role> must have the LOGIN attribute
作成するデータベースロールには、LOGIN
アクセス許可が必要です。
このエラーに対処するには、LOGIN
アクセス許可を持つ PostgreSQL ロールが作成されていることを確認してください。詳細については、「PostgreSQL のドキュメント」の「CREATE ROLE
ERROR: role <role> cannot be dropped because some objects depend on it
AWS IAM REVOKE
を使用して関係を取り消すまで、IAM 関係を持つデータベースロールを削除すると、Aurora DSQL はエラーを返します。詳細については、「Revoking authorization」を参照してください。
SQL エラーのトラブルシューティング
Error: Not supported
Aurora DSQL は、すべての PostgreSQL ベースのダイアレクトをサポートしているわけではありません。サポートされている機能については、「Supported PostgreSQL features in Aurora DSQL」を参照してください。
Error: SELECT FOR UPDATE in a read-only transaction is a no-op
読み取り専用トランザクションで許可されていないオペレーションを試行しています。詳細については、「Understanding concurrency control in Aurora DSQL」を参照してください。
Error: use CREATE INDEX ASYNC
instead
既存の行を持つテーブルにインデックスを作成するには、CREATE INDEX
ASYNC
コマンドを使用する必要があります。詳細については、「Creating indexes asynchronously in Aurora DSQL」を参照してください。
OCC エラーのトラブルシューティング
OC000 “ERROR: mutation conflicts with another transaction, retry as needed”
OC001 “ERROR: schema has been updated by another transaction, retry as needed”
PostgreSQL セッションにスキーマカタログのキャッシュされたコピーがありました。このキャッシュされたコピーは、ロード時に有効でした。時刻 T1 とバージョン V1 を呼び出すことにします。
別のトランザクションが時刻 T2 にカタログを更新します。この V2 を呼び出すことにします。
元のセッションが時刻 T2 でストレージからの読み取りを試みても、カタログバージョン V1 は引き続き使用されています。T2 の最新のカタログバージョンが V2 であるため、Aurora DSQL のストレージレイヤーはリクエストを拒否します。
元のセッションから時刻 T3 に再試行すると、Aurora DSQL はカタログキャッシュを更新します。T3 のトランザクションはカタログ V2 を使用しています。Aurora DSQL は、時刻 T2 以降に他のカタログ変更が行われない限り、トランザクションを完了します。
SSL/TLS 接続のトラブルシューティング
SSL エラー: 証明書の検証に失敗しました
このエラーは、クライアントがサーバーの証明書を検証できないことを示します。以下を確認してください。
-
Amazon ルート CA 1 証明書が正しくインストールされていること。この証明書を検証してインストールする方法については、「Aurora DSQL 接続用の SSL/TLS 証明書の設定」を参照してください。
-
PGSSLROOTCERT
環境変数は、正しい証明書ファイルを指します。 -
証明書ファイルには正しいアクセス許可があります。
認識されない SSL エラーコード: 6
このエラーは、バージョン 14 未満の PostgreSQL クライアントで発生します。この問題を解決するには、PostgreSQL クライアントをバージョン 17 にアップグレードします。
SSL エラー: 未登録スキーム (Windows)
これは、システム証明書を使用する場合の Windows psql クライアントの既知の問題です。「Windows からの接続」の手順で説明されているダウンロードした証明書ファイルメソッドを使用します。