BackupInUseException

TL;DR — このテーブルに対して、競合するバックアップコントロールプレーン操作がまだ進行中です。バックアップは今まさに作成・削除・復元されています。これらの操作は直列化されます。進行中の操作が完了するのを待ち(DescribeBackupBackupStatus を確認)、その後で自分の操作を再試行してください。

意味

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.

オンデマンドバックアップ操作(CreateBackupDeleteBackupRestoreTableFromBackup)はコントロールプレーン呼び出しであり、DynamoDB は同じバックアップまたはテーブルに対してすでに実行中の操作と競合するものを拒否します。これは一時的な状態エラーであり、権限やデータの問題ではありません。

発生する理由

  • まだ作成中のバックアップを削除しようとしているCreateBackup がまだ AVAILABLE に達していない。
  • 復元の実行中にそのバックアップを削除しようとしている — 復元は、新しいテーブルの作成が完了するまでバックアップを保持します。
  • オートメーションの重複 — クリーンアップスクリプトとバックアップスケジューラが互いに競合している、あるいはリトライループが同じテーブルに対して CreateBackup を二重発火している。
  • レート制限の超過DeleteBackup は最大で毎秒10回まで受け付けます。多数のバックアップをタイトなループで一掃すると、競合とスロットリングが同時に発生します。

修正方法

  1. 進行中の操作を確認し、待機します:

    aws dynamodb describe-backup --backup-arn arn:aws:dynamodb:...:table/orders/backup/01234...
    # BackupStatus: CREATING | AVAILABLE | DELETED

    ステータスが落ち着いたら操作を再試行します(作成完了なら AVAILABLE。復元中のテーブルは describe-tableACTIVE に達します)。

  2. ハードに失敗させるのではなくバックオフして再試行します — バックアップ操作は数秒から数分かかります。呼び出しを囲むシンプルな待機・再試行ループが直列化を吸収します。

  3. オートメーションを直列化します — バックアップのライフサイクル操作はテーブルごとに1つのオーナーに限定し、重複しうる cron で両方を走らせるのではなく、削除を作成の後ろにキューイングします。

  4. 一括削除のペースを調整しますDeleteBackup を毎秒10回未満に保ち、この例外を減速のシグナルとして処理します。

バックアップは、最も失いたくないデータを守ります。バックアップを整理する前に DynoTable デスクトップアプリ でテーブルの実際の中身を確認し、復元時の読み取りトラフィックを DynamoDB 料金計算ツール で見積もりましょう。

関連するエラー

References

最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。

Console なしで DynamoDB を扱う

DynoTable は DynamoDB 向けの高速なデスクトップクライアントです — テーブルを閲覧し、SQL スタイルのクエリを実行し、アイテムをローカルで編集できます。