BackupInUseException
TL;DR — このテーブルに対して、競合するバックアップコントロールプレーン操作がまだ進行中です。バックアップは今まさに作成・削除・復元されています。これらの操作は直列化されます。進行中の操作が完了するのを待ち(DescribeBackup で BackupStatus を確認)、その後で自分の操作を再試行してください。
意味
BackupInUseException: There is another ongoing conflicting backup control
plane operation on the table. The backup is either being created, deleted
or restored to a table.オンデマンドバックアップ操作(CreateBackup、DeleteBackup、RestoreTableFromBackup)はコントロールプレーン呼び出しであり、DynamoDB は同じバックアップまたはテーブルに対してすでに実行中の操作と競合するものを拒否します。これは一時的な状態エラーであり、権限やデータの問題ではありません。
発生する理由
- まだ作成中のバックアップを削除しようとしている —
CreateBackupがまだAVAILABLEに達していない。 - 復元の実行中にそのバックアップを削除しようとしている — 復元は、新しいテーブルの作成が完了するまでバックアップを保持します。
- オートメーションの重複 — クリーンアップスクリプトとバックアップスケジューラが互いに競合している、あるいはリトライループが同じテーブルに対して
CreateBackupを二重発火している。 - レート制限の超過 —
DeleteBackupは最大で毎秒10回まで受け付けます。多数のバックアップをタイトなループで一掃すると、競合とスロットリングが同時に発生します。
修正方法
進行中の操作を確認し、待機します:
aws dynamodb describe-backup --backup-arn arn:aws:dynamodb:...:table/orders/backup/01234... # BackupStatus: CREATING | AVAILABLE | DELETEDステータスが落ち着いたら操作を再試行します(作成完了なら
AVAILABLE。復元中のテーブルはdescribe-tableでACTIVEに達します)。ハードに失敗させるのではなくバックオフして再試行します — バックアップ操作は数秒から数分かかります。呼び出しを囲むシンプルな待機・再試行ループが直列化を吸収します。
オートメーションを直列化します — バックアップのライフサイクル操作はテーブルごとに1つのオーナーに限定し、重複しうる cron で両方を走らせるのではなく、削除を作成の後ろにキューイングします。
一括削除のペースを調整します —
DeleteBackupを毎秒10回未満に保ち、この例外を減速のシグナルとして処理します。
バックアップは、最も失いたくないデータを守ります。バックアップを整理する前に DynoTable デスクトップアプリ でテーブルの実際の中身を確認し、復元時の読み取りトラフィックを DynamoDB 料金計算ツール で見積もりましょう。
DynoTable で見つける
バックアップを削除する前に、それが守っている稼働中のテーブルを見ておきましょう — ⌘K で開き、そのデータが今も重要かどうかを確認します。DynoTable なら、クリーンアップスクリプトを走らせる前に、アカウントをまたいで(⌘P)テーブルの中身を抜き取り確認するのが現実的になります。
RestoreTableFromBackup を計画するときは、料金計算ツールでリストア時の読み取りトラフィックを見積もりましょう。バックアップを持つアカウントごとに、Settings → Profiles でプロファイルを設定し、Test Connection を実行してください。AWS に接続するとインストールを参照してください。実行中のバックアップの完了を待つあいだは、⌘K で保護対象のテーブルを閲覧し、そのデータを保持し続ける価値があるかを確認できます。DescribeBackup を数秒おきにポーリングすれば十分です — バックアップの作成は通常は数分で終わり、削除も同程度で収まります。
出典
- DeleteBackup — Amazon DynamoDB API Reference (2026-07-13 時点で検証)
- Restoring a DynamoDB table from a backup (2026-07-13 時点で検証)
関連するエラー
- BackupNotFoundException — ARN がそもそもバックアップに解決されない。
- Table already exists — 使用済みの名前に復元しようとしている。
- LimitExceededException — 同時実行のコントロールプレーン操作が多すぎる。
- 学習: バックアップと Point-in-Time Recovery
参考資料
- DeleteBackup — Amazon DynamoDB API Reference
- RestoreTableFromBackup — Amazon DynamoDB API Reference
- DescribeBackup — Amazon DynamoDB API Reference
- Restoring a DynamoDB table from a backup — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。