Create Amazon EBS snapshots - Amazon EBS

Create Amazon EBS snapshots

You create an Amazon EBS snapshot of an Amazon EBS volume to create a point-in-time backup of that volume. You can either create snapshots of individual Amazon EBS volumes, or you can create multi-volume snapshots of all, or a subset, of the volumes attached to an Amazon EC2 instance.

Snapshot creation is asynchronous. The snapshot is created immediately, but it remains in the pending state until all of data has been transferred to Amazon S3. This can take several hours to complete, depending on the number of modified blocks on the volume. You can continue to use the volume during this time without impacting the snapshot. The snapshot includes only the data that was written to the volume at the time the snapshot was requested. It does not include data that has been cached by applications or the operating system.

Tip

To ensure consistent and complete snapshots, we recommend that you pause writes to the volume before you create the snapshot. If you can't pause writes to the volume, we recommend that you unmount the volume, from within the instance, before you create the snapshot. You can remount and resume writes once the snapshot enters the pending state.

If you create a snapshot of a volume that serves as the root device for an Amazon EC2 instance, we recommend that you stop the instance before taking the snapshot.

Snapshot encryption

A snapshot automatically gets the same encryption status as the volume from which it is created. Snapshots created from unencrypted volumes are not encrypted. Snapshots created from encrypted volumes are automatically encrypted using the same KMS key as the volume.

Tip

If you need to create an encrypted snapshot from an unencrypted volume, first create the unencrypted snapshot of the volume, and then create an encrypted copy of that snapshot.

Snapshot destinations

You can create snapshots in AWS Regions and on AWS outposts, if you have outposts in your account. The allowed destinations depend on the location of the source volume or instance.

  • If the source volume is in a Region, you must create the snapshot in the same Region as the volume.

  • If the source volume is on an outpost, you can create the snapshot on the same Outpost or in its parent AWS Region. For more information, see Amazon EBS local snapshots on Outposts.

Automating snapshots

You can automate snapshot creation using Amazon Data Lifecycle Manager and AWS Backup.

Considerations for creating snapshots
  • We recommend that you do not create snapshots of volumes that are attached to Amazon EC2 instances that are hibernated or that are enabled for hibernation. For more information, see How Amazon EC2 instance hibernation works.

  • Although you can take a snapshot of a volume while a previous snapshot of that volume is in the pending status, having multiple snapshots in the pending state for the same volume can result in reduced volume performance until the snapshots complete.

  • There are limits on the number of snapshots you can have in the pending state, and on the number of concurrent snapshots you can request per volume type. For more information, see Quotas for Amazon EBS. If you exceed one of these quotas, wait for the current snapshots to complete and then try again.

Create a snapshot of an individual volume

To create a snapshot of an individual volume, use one of the following methods.

Console
To create a snapshot using the console
  1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. In the navigation pane, choose Snapshots, Create snapshot.

  3. For Resource type, choose Volume.

  4. For Volume ID, select the volume from which to create the snapshot. The Encryption field indicates the volume and resulting snapshot's encryption status. It can't be modified.

  5. (Optional) For Description, enter a brief description for the snapshot.

  6. (Outpost customers only) Specify the destination for the snapshot. The Snapshot destination field appears only if the selected volume is on an outpost.

    • To create the snapshot on the same outpost as the source volume, choose AWS Outpost.

    • To create the snapshot in the parent Region of the outpost, choose AWS Region.

  7. (Optional) To assign custom tags to the snapshot, in the Tags section, choose Add tag, and then enter the key-value pair. You can add up to 50 tags.

  8. Choose Create snapshot.

Command line
To create a snapshot using the AWS CLI

Use the create-snapshot command.

To create a snapshot using the Tools for Windows PowerShell

Use the New-EC2Snapshot command.

Create multi-volume snapshots from an Amazon EC2 instance

By default, when you create multi-volume snapshots from an Amazon EC2 instance, Amazon EBS creates snapshots of all the Amazon EBS volumes that are attached to the instance. However, you can choose to exclude the root volume, or specific data volumes if needed.

Tip

We recommend that you tag your multi-volume snapshots so that it's easy to identify and manage them collectively. You can also copy the tags from the source volumes to the corresponding snapshots to set the snapshot metadata, such as access policies, attachment information, and cost allocation, to match the source volume.

Considerations for multi-volume snapshots
  • If all of the snapshots complete successfully, a createSnapshots CloudWatch event with a result of succeeded is sent to your AWS account. If any one snapshot in the multi-volume snapshot set fails, all of the other snapshots enter the error state and a createSnapshots CloudWatch event with a result of failed is sent to your account. For more information, see Create snapshots (createSnapshots).

  • Multi-volume snapshots support up to 128 Amazon EBS volumes attached to an instance, including the root volume and up to 127 data volumes.

  • Each snapshot in the multi-volume snapshot set is an individual snapshot that can be used in the same way, and that supports the same features, as an individual snapshot.

  • You can take application-consistent snapshots of all the Amazon EBS volumes attached to an Amazon EC2 Windows instance using AWS Systems Manager Run Command.

To create multi-volume snapshots from an instance, use one of the following methods.

Console
To create multi-volume snapshots using the console
  1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. In the navigation pane, choose Snapshots, Create snapshot.

  3. For Resource type, choose Instance.

  4. For Description, enter a brief description for the snapshots. This description is applied to all of the snapshots.

  5. (Outpost customers only) Specify the destination for the snapshots. The Snapshot destination field appears only if the selected instance is on an outpost.

    • To create the snapshots on the same outpost as the source instance, choose AWS Outpost.

    • To create the snapshot in the parent Region of the outpost, choose AWS Region.

  6. (Optional) To exclude the instance's root volume, select Exclude root volume.

  7. (Optional) To exclude data volumes, select Exclude specific data volumes. The Attached data volumes section lists all of the data volumes that are currently attached to the selected instance.

    Select the data volumes to exclude. Only the volumes that remain unselected will be included in the multi-volume snapshot set.

  8. (Optional) To automatically copy tags from the source volumes to the corresponding snapshots, for Copy tags from source volume, select Copy tags.

  9. (Optional) To assign additional custom tags to the snapshots, in the Tags section, choose Add tag, and then enter the key-value pair. You can add up to 50 tags.

  10. Choose Create snapshot.

Command line
To create multi-volume snapshots using the AWS CLI

Use the create-snapshots command.

To exclude the root volume, for --instance-specification ExcludeBootVolume, specify true. To exclude data volumes, for --instance-specification ExcludeDataVolumes, specify the IDs of the data volumes to exclude.

To create multi-volume snapshots using the Tools for Windows PowerShell

Use the New-EC2SnapshotBatch command.

To exclude the root volume, for -InstanceSpecification_ExcludeBootVolume, specify 1. To exclude data volumes, for -InstanceSpecification_ExcludeDataVolumes, specify the IDs of the data volumes to exclude.