DynamoDB BackupNotFoundException
TL;DR — 指定した BackupArn に一致するバックアップが DynamoDB に存在しません。ほぼ必ず 誤ったまたは不正な形式の ARN、削除または期限切れ になったバックアップ、あるいは 誤ったリージョン/アカウント を指したクライアントが原因です。テーブルのバックアップを一覧表示し、正確な ARN をコピーしてください。
意味
BackupNotFoundException: Backup not found for the given BackupARN.復元と記述の呼び出し(RestoreTableFromBackup、DescribeBackup、DeleteBackup)は、バックアップを ARN で指定します。この HTTP 400 は、認証情報が解決するリージョン + アカウントの、その ARN にバックアップが存在しないことを意味します。ARN が正しくなるまで クライアント側の問題であり、リトライ不可 です。
発生する理由
- 誤ったまたは不正な形式の ARN — タイプミス、切り詰められた ARN、あるいは
list-backupsからコピーせず手作業で組み立てたもの。 - バックアップが削除または期限切れになった — 誰かがオンデマンドバックアップを削除した、AWS Backup のライフサイクルルールが古くなって削除した、あるいは
SYSTEMバックアップ(PITR 有効なテーブルが削除されたときに自動作成される)で、作成から35日後に期限切れになった。 - 誤ったリージョン —
list-backups/describe-backupはリージョン単位です。バックアップは作成されたリージョン(ARN に埋め込まれたリージョン)に存在するため、別の場所を指したクライアントからは見えません。 - 誤ったアカウント — 認証情報が、バックアップを所有するアカウントとは別の AWS アカウントに解決している。
- AWS Backup 管理のリカバリポイント — AWS Backup 経由でスケジュールされたバックアップは、AWS Backup ボールト内のリカバリポイントとして保存され、そこでライフサイクルルールが移行または削除できます。バックアップが想定の場所にない場合は AWS Backup コンソールを確認してください。
修正方法
- テーブルのバックアップを一覧表示し、実際の ARN を取得します:
aws dynamodb list-backups --table-name <Table> --region <r> - 存在と利用可能性を検証します:
aws dynamodb describe-backup --backup-arn <arn> --region <r>BackupStatusはAVAILABLEであるべきです。作成/削除/復元の途中のバックアップは、代わりに競合する呼び出しを BackupInUseException で拒否します。 - リージョンを固定します — バックアップの ARN にあるもの(バックアップが作成された場所)に合わせます。
- アカウントを確認します —
aws sts get-caller-identityで。 - AWS Backup プランで取得したバックアップですか? AWS Backup コンソール(そのボールトのリカバリポイント)で探してください。そこのライフサイクルルールがスケジュールに従ってバックアップを移行または削除できます。
DynoTable から接続する
DynoTable はテーブルのワークベンチであって、バックアップ用のコンソールではありません — RestoreTableFromBackup を呼ぶ前に、リストア先にしたいリージョンに稼働中のテーブルが存在することを確認するために使ってください。対象リージョンのプロファイルを開き(⌘P)、⌘K でテーブル名から開き、プロファイルチップの認証情報ステータスでアカウントを確かめます。
リストアが BackupNotFoundException で失敗するなら、ARN が誤っているか失効しています。まず AWS Backup / DynamoDB のバックアップ API 側でそれを直し、そのうえで DynoTable に戻ってリストアされたテーブルのスキーマとアイテムを確認してください。アイテムサイズ計算ツールは、リストアされたアイテムの形が今のキャパシティ計画に収まるかどうかの確認に役立ちます。
出典
- DescribeBackup — Amazon DynamoDB API Reference (2026-07-13 時点で検証)
- Restoring a DynamoDB table from a backup (2026-07-13 時点で検証)
関連するエラー
- BackupInUseException — バックアップは存在するが、競合するバックアップ操作がまだ実行中である。
- ResourceNotFoundException — テーブル自体がリージョン/アカウント内に見つからない。
- Table already exists — 復元先のテーブル名が使用済みである。
- 学習: バックアップと Point-in-Time Recovery
参考資料
- DescribeBackup — Amazon DynamoDB API Reference
- RestoreTableFromBackup — Amazon DynamoDB API Reference
- DeleteBackup — Amazon DynamoDB API Reference
- Restoring a DynamoDB table from a backup — Amazon DynamoDB Developer Guide
- Using AWS Backup with DynamoDB — Amazon DynamoDB Developer Guide
- Enable point-in-time recovery in DynamoDB — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。