Newsletter
TechAnV Blog
Get updates on security engineering, Rust, eBPF, and DevSecOps. No spam, unsubscribe anytime.
Check your inbox and click the confirmation link to complete your subscription.
Recovering data from AWS Lightsail using EC2#
I ran into problems with my AWS Lightsail instance: it exceeded the CPU burst quota for too long and was suspended, and I couldn’t figure out how to un-suspend it.
I had a snapshot of the hard drive and I wanted to recover the data from it. This ended up taking far longer than I expected - I imagine there’s a better way of doing this but here’s how I solved it.
Short version: I migrated the snapshot to EC2, then launched an EC2 instance and mounted that snapshot as an EBS volume.
Long version (because I had to figure out a lot of steps along the way):
- I activated the Lightsail “Export to Amazon EC2” option on the snapshot
- I waited a while for the export to complete
- This launched a new EC2 instance for me… but for some reason I couldn’t SSH into that instance. So I terminated it.
- I used the EC2 web console to figure out the AWS identifier for the EC2 copy of the Lightsail snapshot - something like
snap-02a530e12a34 - I created a brand new EC2 instance and on the “Add storage” panel I added an EBS volume for
/dev/sdbwith the snapshot identifier I found in the previous step. I started this instance with a keypair so I could SSH into it. - I mounted the EBS volume - see section below
- … I used
scp(with the keypair) to copy off the data
Mounting the EBS volume#
I hadn’t worked with EBS before so this took some figuring out. My instance was configured with /dev/sdb as an EBS volume. I confirmed that the data was accessible like so:
1[ec2-user@ip-172-31-26-179 dev]$ sudo file -s /dev/xvdb2/dev/xvdb: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 2048, 167770079 sectors, code offset 0x63Then I created a /data directory and mounted the volume:
1[ec2-user@ip-172-31-26-179 dev]$ sudo mkdir /data2[ec2-user@ip-172-31-26-179 dev]$ sudo mount /dev/xvdb1 /dataI actually tried sudo mount /dev/xvdb /data first and got a mount: /data: wrong fs type error - this StackOverflow answer helped me solve that.