I have hundreds of large EBS snapshots I need to move to Glacier.
What's the best way to go about doing this?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
While Amazon EBS indeed provides the ability to create point-in-time snapshots of volumes, which are persisted to Amazon S3, this operation is outside of your control and entirely handled by EC2, see the respective FAQ Will I be able to access my snapshots using the regular Amazon S3 APIs?:
No, snapshots are only available through the Amazon EC2 APIs.
Consequently you won't be able to do move these non accessible snapshots from the backing Amazon S3 storage to Amazon Glacier either and this would only be possible if AWS provides the functionality directly in the future, e.g. in a similar way to the recently enabled Archiving [of] Amazon S3 Data to Amazon Glacier by means of Object Lifecycle Management.
EBS snapshots cannot be moved to Glacier nor does it make much sense to store them there. As EBS snapshots are incremental, each snapshot typically points to data stored in many previous snapshots. Because retrieval of objects from Glacier takes an extremely long time, even of it was possible to move EBS snapshots to Glacier, restoring data contained in snapshots from Glacier would be a practically unusable scenario. Glacier archiving works better with files: copy or backup the necessary files to Glaciers, so you may retrieve them at a later time.
Amazon doesn't have a feature for doing this. However, if you don't mind losing the space-saving advantage that the snapshots' incremental nature gives you, you could turn your snapshot into a temporary EBS volume, tar up the contents, and upload that tar to S3, where it can be automatically migrated to Glacier using S3 bucket lifecycle rules.
I've developed an open-source tool which automates this process for you, called
You can opt to use
dd instead of
tar to preserve every byte of the volume instead, if you like.
It seems the only way is to manually generate a file from the volume snapshot and push that to Glacier.
There is a similar question on the AWS forums from a while ago, still unanswered beyond the initial:
Thank you for the feedback. Currently this functionality is not available via the AWS console. However, we do recognize the value of this type of integration and are evaluating its inclusion in a future release.
There's nothing to stop you contacting Amazon and asking them if they would transfer your snapshots into Glacier. You run the risk of not being able to get to them quickly if you suddenly find you need them, but as you are not able to directly access the S3 Bucket in which they live, you may be able to submit a request for them to do this for you.