mediumAdvancedUSE#ebs#snapshot#backup#performance

EBS snapshot stuck in 'creating' state

aws ec2 describe-snapshots shows State: pending for hours

Likely source:performanceavailability

Focused incident mode — strips away everything but this runbook.

Symptoms

  • aws ec2 describe-snapshots shows State: pending for hours
  • Backup pipeline stalls on the first snapshot of the run
  • Progress percentage stops advancing

A snapshot never blocks your volume writes, so 'stuck' usually means the backup SLA is failing, not production I/O. If the source volume is idle and the snapshot is still pending for hours, check account-level snapshot quotas.

Evidence to grab

Collect these artifacts before you change anything — they prove (or rule out) each cause.

  • Snapshot progress and age

    aws ec2 describe-snapshots --snapshot-ids <SNAPSHOT-ID> --query 'Snapshots[0].{State:State,Progress:Progress,StartTime:StartTime}'
  • Source volume type and IO

    aws ec2 describe-volumes --volume-ids <VOLUME-ID> --query 'Volumes[0].{Type:VolumeType,Size:Size,IOPS:Iops}'

Diagnostic flow

Run the steps in order, marking each claim confirmed or refuted. The evidence you gather feeds the ranked causes below.

Guided decision tree is ready.

Steps with commands, expected output, and pass/fail branches.

Ranked root causes

Evidence checklist

  • Volume is large (TB scale) on gp2/standard or low-provisioned gp3
  • Snapshot started right after a big write burst

Confirm before fixing

aws ec2 describe-volumes --volume-ids <VOLUME-ID> --query 'Volumes[0].{Type:VolumeType,Size:Size,IOPS:Iops}'
READ

Volume characteristics

Fix

aws ec2 modify-volume --volume-id <VOLUME-ID> --volume-type gp3 --iops <HIGHER-IOPS> --size <SIZE>
CHANGE

Raise IOPS to clear the snapshot faster, then consider tuning back

Resolution runbook

Apply from top to bottom after the cause is confirmed. Review every command before running it — risk tags are shown on each.

1
aws ec2 describe-snapshots --snapshot-ids <SNAPSHOT-ID> --query 'Snapshots[0].{State:State,Progress:Progress}'
READ

Baseline: what's the progress?

2
aws ec2 describe-volumes --volume-ids <VOLUME-ID> --query 'Volumes[0].{Type:VolumeType,Size:Size,IOPS:Iops}'
READ

Do the IOPS support the workload?

3
aws ec2 modify-volume --volume-id <VOLUME-ID> --volume-type gp3 --iops <HIGHER-IOPS>
CHANGE

Remove the IO bottleneck when genuine

4
aws ec2 describe-snapshots --snapshot-ids <SNAPSHOT-ID> --query 'Snapshots[0].{State:State,Progress:Progress}'
READ

Re-check until progress resumes and completes

Prevention

  • Use AWS Backup with lifecycle policies instead of ad-hoc snapshot scripts.
  • Right-size IOPS for volumes whose backup duration is an SLA.
  • Alert on snapshots older than X hours still in pending state.

Commands marked READ CHANGE DESTRUCTIVE — never run DESTRUCTIVE commands against production data you cannot restore. Copy → verify → execute.