AWS Glacier – How to Move Data from Glacier Vault to Glacier Deep Archive

amazon-glacieramazon-web-services

I have a few Glacier data vaults with data in them.
I would like to move that data to new a storage class – the "Glacier Deep Archive" ones.

How to do that? I cannot see such an option in the console in vault preferences.

Best Answer

I looked at this when Glacier came out, and I posted a comment on the AWS blog that was never replied to.

Best I can tell there is no migration path from Glacier to Glacier Cold Archive. You will have to migrate the data manually.

I have two suggested approaches:

Local Upload

If you have the data locally and are confident of its integrity simply use the AWS command line or any tool you desire to upload it. You may want to tweak the S3 parameters in your config file to speed this, which can increase your internet bandwidth utilization by using more threads. This is especially useful if you have a lot of small files, with large files you could potentially max out your bandwidth.

Download then Upload

Second approach is to

  • Restore the data from Glacier
  • Download the data to a computer, either local or ideally an EC2 on demand instance (not spot as you may lose your data if your instance is terminated)
  • Upload the data to S3 using the IA tier

Create a User

Here's the S3 command I use for upload from Windows. Note that you need a profile "glacier writer"

You'll have created an IAM user that has access to that bucket, and any other resources you need. Have their access / secret keys available. If you need to do this with a role it's a bit more work but not difficult, there's docs online

aws configure --glacier-writer

You can then edit your configure file to include this or similar. This works well on my home internet connection as I have 20Mbps upload. If you have high bandwidth and a fast machine you can increase the concurrent requests. I've successfully used up to 80 threads on high bandwidth corporate connections, which takes 1-2 xeon cores.

[profile glacier-writer]
region = us-west-2
output = json
s3 =
    max_concurrent_requests = 10
    max_queue_size = 100
    multipart_chunksize = 75MB
    multipart_threshold = 200MB

On Windows this is in

c:\users\username\.aws\configure

On Linux it's in

~\home\.aws\configure

Do the Upload

A simple S3 sync is what I do, but you can also use "s3 cp" to simply upload to S3.

aws s3 sync C:\Source\Folder\ s3://bucket-name/ --profile glacier-writer --storage-class DEEP_ARCHIVE --exclude *.tmp
Related Topic