Snapshots are an integral part of Amazon Elastic Block Store (EBS). Snapshots allow you to create a block-level, point-in-time copy of your volumes for backup, or disaster-recovery purposes. Snapshots are incremental, only data modified since the last snapshots are copied again. You can share snapshots between AWS Regions, or AWS Accounts. Once you have a snapshot, you can create a new Amazon Elastic Block Store (EBS) volume based on a snapshot. The new volume begins as an exact replica of the original volume that was used to create the snapshot.
When you restore volumes from snapshots, they are available for use almost instantaneously. In the background, EBS lazy loads the data from the snapshot as the operating systems accesses the blocks, this reduces the I/O performance of the volume until it is fully initialized. Some I/O demanding workloads however need the volume to operate at full capacity as soon as it is available. This is why we introduced Fast Snapshot Restore (FSR). Once enabled, FSR allows to create volumes that deliver their maximum performance and do not need to be initialized.
Many AWS customers are sharing their snapshots with other AWS Accounts, and there are many reasons to do this. You might want to centrally prepare and manage golden AMIs, with your applications, monitoring, or management tools pre-backed. In the context of Disaster Recovery (DR), your company policies might require to store all backups in one dedicated account. Until today, only the AWS Account owning the snapshot could enable FSR.
Today, you can enable Fast Snasphot Restore (FSR) on snapshots shared with you.
To enable FSR on a shared snapshot, I first create a snapshot on the source AWS Account. Once the snapshot is created, I share it with another account of mine. To do so, I click Actions, and Modify Permissions. I enter the destination AWS Account Number, click Add Permission and Save.
I connect the destination account and navigate to EC2 console. When the snapshot is not visible, I check if the Private Snapshots option is selected.
I select the snapshot I want to be available for FSR and select Actions, then Manage Fast Snapshot Restore.
I select the Availability Zones where I want to be able to fast restore my snapshot and click Save.
After the settings are saved, I receive a confirmation:
The snapshot stays in enabling mode for a couple of minutes and then becomes enabled. Once done, you can create Amazon Elastic Block Store (EBS) volumes from it. The volumes are fully initialized.
You can also do all this from the API or the AWS Command Line Interface (CLI).
aws ec2 enable-fast-snapshot-restores
--source-snapshot-ids snap-0b00000000d9
--availability-zones us-west-1a
--region us-west-1
{
"Successful": [
{
"SnapshotId": "snap-0b00000000d9",
"AvailabilityZone": "us-west-1a",
"State": "enabling",
"StateTransitionReason": "Client.UserInitiated",
"OwnerId": "00123456789",
"EnablingTime": "2020-06-26T16:40:19.720000+00:00"
}
],
"Unsuccessful": []
}
At any moment I can check what are the volumes I restored from a FSR.
aws ec2 describe-volumes --filters Name=fast-restored,Values=true
{
"Volumes": [
{
"Attachments": [],
"AvailabilityZone": "us-west-1a",
"CreateTime": "2020-01-26T00:34:11.093Z",
"Encrypted": true,
"KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/8c5b2c63-0000-0000-0000-5513e232e843",
"Size": 20,
"SnapshotId": "snap-0b00000000d9",
"State": "available",
"VolumeId": "vol-0d000000000000b0",
"Iops": 100,
"VolumeType": "gp2",
"FastRestored": true
}
]
}
The AWS Account where you enable Fast Snapshot Restore is charged an hourly price. The owner of the snapshot is not charged for enabling FSR in another AWS Account. When the owner of your shared snapshot deletes the snapshot or stops sharing the snapshot with you, the FSR for your shared snapshot is automatically disabled and FSR billing for the snapshot is terminated.
You can enable Fast Snapshot Restore in all commercial AWS Regions today.
As usual, let us know your feedback by posting messages on the AWS Forum, or leave a comment on this post.
Source: AWS News