3

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.

bjoster
  • 4,423
  • 5
  • 22
  • 32

2 Answers2

6

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
Tim
  • 30,383
  • 6
  • 47
  • 77
  • 1
    You are correct -- there is no path from a Glacier vault to an S3 bucket, and S3 buckets are the only way to store an object in Glacier Deep Archive, which exists today only as an S3 storage class (not a standalone service like Glacier vaults). I don't know if deep archive is genuinely even part of Glacier, proper, or if AWS has just reused the Glacier brand for a new feature in S3, but if it is really part of the old Glacier service, it might make sense to hide and watch for a while to see whether Glacier vaults are eventually enhanced to support deep archive pricing. – Michael - sqlbot May 21 '19 at 00:52
1

You can now use Amazon S3 Glacier Re:Freezer. https://aws.amazon.com/about-aws/whats-new/2021/04/new-aws-solutions-implementation-amazon-s3-glacier-re-freezer/

It is a serverless solution that automatically copies entire Amazon S3 Glacier vault archives to a defined destination Amazon Simple Storage Service (Amazon S3) bucket and S3 storage class. The solution automates the optimized restore, copy, and transfer process and provides a prebuilt Amazon CloudWatch dashboard to visualize the copy operation progress. Deploying this solution allows you to seamlessly copy your S3 Glacier vault archives to more cost effective storage locations such as the Amazon S3 Glacier Deep Archive storage class.