BackupInUseException
요약 — 이 테이블에서 충돌하는 백업 제어 플레인 작업이 아직 진행 중입니다: 백업이 지금 생성, 삭제, 또는 복원되고 있습니다. 이러한 작업은 직렬화되므로, 진행 중인 작업이 끝날 때까지 기다린 후(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에 도달).하드 실패 대신 백오프로 재시도하세요 — 백업 작업은 수 초에서 수 분이 걸립니다. 호출 주위의 간단한 대기-후-재시도 루프가 직렬화를 흡수합니다.
자동화를 직렬화하세요 — 테이블당 백업 수명 주기 작업의 소유자를 하나로 두고, 겹칠 수 있는 cron에서 둘 다 실행하기보다 생성 뒤에 삭제를 대기시키세요.
대량 삭제 속도를 조절하세요 — 초당
DeleteBackup호출을 10회 미만으로 유지하고, 이 예외를 속도를 늦추라는 신호로 처리하세요.
백업은 가장 잃어서는 안 될 데이터를 보호합니다 — 백업을 정리하기 전에 DynoTable 데스크톱 앱으로 테이블에 실제로 무엇이 들어 있는지 살펴보고, DynamoDB 요금 계산기로 복원 읽기 트래픽을 추정하세요.
관련 오류
- BackupNotFoundException — ARN이 백업으로 전혀 해석되지 않음.
- Table already exists — 이미 사용 중인 이름으로 복원.
- LimitExceededException — 동시 제어 플레인 작업이 너무 많음.
- 학습: Backups & point-in-time recovery
References
- 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
공식 AWS 문서(위 링크)를 기준으로 2026-07-13에 마지막으로 검증되었습니다.