AWS EBS Snapshots - Same volumes, different method, still would it be incremental? - amazon-web-services

Suppose if I've a Lambda script to invoke EBS snapshots. Few days later, I'm invoking the snapshot of the same EBS volumes but via AWS CLI with different name and description. Would the new EBS snapshot be incremental by recognizing the EBS volumes or Would it be considered like a new snapshot? Kindly clarify.

Yes, it will be the same incremental snapshot.
However, if you copy the snapshot and encrypt it later on, new one will be created from scratch. From docs:
If you copy a snapshot and encrypt it to a new CMK, a complete (non-incremental) copy is always created, resulting in additional delay and storage costs.
Similarly, if you copy it to a new region:
If you copy a snapshot to a new Region, a complete (non-incremental) copy is always created, resulting in additional delay and storage costs.
More on copying snapshots and incremental support is described in Incremental snapshot copying.

Related

EBS Snapshot copy across AWS region

We are creating an EBS Snapshot from a volume of 5 TB attached to an EC2 instance in an AWS region (us-east-1). This is the initial snapshot (first snapshot) created from the EBS volume. The volume itself is also created from from a series of incremental snapshots (created earlier) in the same region.
When i create the EBS snapshot in the same region, it takes less than 5 minutes for the snapshot to be created (initial snapshot). I understand that this snapshot is initial, as it is the first snapshot being created from the volume.
My question is, this snapshot being the initial one (first one to be created from the restored EBS Volume), will it copy a new set of data (5 TB) internally to S3 (as Snapshots are stored in S3 behind the scenes) ? .
OR because the EBS volume was also restored from some incremental snapshot, when I create first snapshot from this restored volume (in the same region), will it internally just store pointer to the S3 location for the files, as those files are already somewhere in S3 (because the volume was restored from an incremental snapshot) ?
The intent is to understand the reason behind the fact that when I create a full (initial) snapshot from the EBS volume in the same region (us-east-1), it takes less than few minutes, (similar behavior to incremental snapshot), but the moment I attempt to copy the EBS snapshot to another AWS Region, it takes hours (in excess of 12 hours) to complete the EBS snapshot copy operation to other AWS Region (us-west-2) in the absence of any previous snapshots being copied to the remote AWS region earlier, from the same volume
Creating Snapshots in the same region is incremental so if you have existing snapshot aws will only backup the incremental changes, however, when you copy the snapshot to another region, it has no history of the snapshot so it will be considered as brand new snapshot.

EBS Snapshots versioning

Are EBS snapshots versioned?
If Yes, where can I find the version information.
I tried to check in Amazon official docs,but couldn't get a clear answer to this.
Yes and No.
Each snapshot is, in a way, a 'version'.
The reason for this is that, when a Snapshot is created, any block that has been added or modified since the previous snapshot is copied to Amazon S3 (in a place you can't directly access) and the Snapshot becomes the 'index' to those blocks.
Scenario:
Create Snapshot1
Modify one block
Create Snapshot2
When Snapshot2 was created, one block was copied to S3. Snapshot2 still points to all the blocks used in the volume, but they were already in S3 and didn't need to be re-copied. So, you can think of Snapshot1 and Snapshot2 as being different 'versions' of the disk.
If Snapshot1 is deleted, the underlying data is kept in S3 because it is used by Snapshot2. If Snapshot2 is then deleted, all of the snapshot data in S3 will be deleted. (Unless the original volume was based on an AMI, which is a snapshot itself! In that case, only the changes made since the AMI was instantiated are deleted. Neat and confusing, eh!)
AWS EBS Snaphots do not expose a version. They are identified by Snapshot ID, Date (Started) and Volume ID.
Here is an AWS article on snapshots:
EBS Snapshots
Here is third party article on snapshots:
AWS EBS Snapshot Explained

AWS EC2 instance snapshot in another region

i m running ec2 instance in 1 region i want to create snapshots of ec2 instances in other region directly without coping and cross region replication in s3, is this possible? if possible then how?
Amazon EBS Snapshots are created in the same region as the original EBS Volume. They can then be used to create a new Volume within the same Region.
If you wish to use an Amazon EBS Snapshot in a different region, the snapshot must first be copied to the other Region. This can done via the Amazon EC2 management console, the AWS Command-Line Interface (CLI) aws ec2 copy-snapshot command, or an AWS API call.
Please note that snapshots are incremental backups. The first snapshot isn't really a full backup. Rather, every snapshot simply copies any blocks that have been modified since any previous snapshot. Blocks are retained while snapshots still require the blocks. This means that blocks made during the initial snapshot could actually be deleted if they are not required by any active snapshots. This is why I say they are not the same as a full backup, which traditionally never has content deleted.
However, when a snapshot is copied to a new region it is copied in full, rather than incrementally.
If you do not with to copy an EBS snapshot between regions, you would need to find a different way to transfer the disk volume (eg filesystem-level synchronisation).
In fact, there should typically be no need to transfer a disk volume -- rather, your systems should be capable of configuring a new server based upon a startup configuration script and data should be stored in a separate database so that it is accessible to multiple instances. It is a very rare case that requires a complete copy of a disk volume.

Best option to take complete Backup of EC2 instance?

Currently I am taking manual backup of our EC2 instance by zipping the data and downloading it locally as well as on DropBox.
But I am wondering, can I have an option where I just take a complete copy of the whole system automatically daily so if something goes wrong/crashes, I can replace it with previous copy immediately rather than spending hours installing and configuring things ?
I can see there is an option of take "Image" but can I automated them to have just 1 latest image and replace the system with single click ?
You can create a single Image of your instance as Backup of your instance Configuration.
And
To keep back up of your data you can use snapshots of your volumes.
snapshots store data in incremental format whenever you make any changes.
When ever needed you can just attach the volume from the snapshot to your Instance.
It is not a good idea to do "external backup" for EC2 instance snapshot, before you read AWS pricing details.
First, AWS is charging every GB of data your transfer OUTside AWS cloud. Check out this pricing. Generally speaking, after the 1st GB, the rest will be charge at least $0.09/GB, against S3-standard pricing ~ $0.023/GB.
Second, the snapshot created is actually charges as S3 pricing(Check :
Copying an Amazon EBS Snapshot), not EBS pricing. After offset the transfer cost, perhaps you should consider create multiple snapshot than keep doing the data transfer out backup.
HOWEVER, if you happens to use an instance that use ephemeral storage, snapshot will not help. You need to copy the data out from ephemeral storage yourself. Then it is your choice to store under S3 or other place.
Third. If you worry the AWS region going down, check the multiple AZ option. Or checkout alternate AWS region option.
Fourth. When storing backup data in S3, you can always store them under Infrequent-Access, which save you some bucks, and you don't need to face an insane Glacier bills during emergency restore(Avoid Glacier, unless you are pretty sure about your own requirement).
Fifth, after done your plan of doing everything inside AWS, you can write bash script (AWS CLI) or use boto3, etc API to do the automatic backup.
Lastly , here is way of AWS create and maintain snapshot. Though each snapshot are deem "incremental", when u delete old snap shot :
the snapshot deletion process is designed so that you need to retain
only the most recent snapshot in order to restore the volume.
You can always "test" restore by create another EC2 instance that load the backup snapshot. Or you can mount the snapshot volume from another EC2 instance to check the contents.

How AMI to S3 costs

We a script to create couple of AMI, On successful completion of AMI it deletes the old AMI. As of my understanding AWS only charges for the space we use in S3 for storing snapshot that was created by an AMI.
If I created two AMIs for an instance on different dates(those two AMIs create two different snapshots). will they charge for only new snapshot size? or for the two snapshots?
How AWS charges for this process?
An Amazon Machine Image (AMI) is actually a standard EBS snapshot, with additional metadata.
EBS snapshots are incremental in nature, meaning that only blocks that have been added or changed are copied to Amazon S3.
This means that successive snapshots could incur very little additional cost. Imagine this scenario:
AMI 1 is created from an instance (or, more accurately, from the EBS volumes associated with the instance)
Some data is changed on the EBS volumes
AMI 2 is created from the instance
Since each AMI is a snapshot, and snapshots only copy incremental data to S3, then the additional cost for AMI 2 would only be the new/modified blocks.
If AMI 1 were then deleted, the cost drop would be minimal, since most blocks contained in the AMI 1 snapshot would be kept for the AMI 2 snapshot.
One interesting result of all this (which is merely my suspicion, since I could not find any official statement to this effect) is that, if your AMI is based off an existing volume (eg an AMI from Amazon), then any snapshots/AMIs created of that volume will actually inherit blocks that are part of the original snapshot. Therefore, you (probably) do not pay the full cost of storing that AMI since the snapshot points to blocks already in a snapshot originally created by Amazon. (Don't worry if you didn't understand all that!)
AMIs are stand alone in nature and treated individually no matter whether created out of the same instance on the same day. So they charges of the AMI storage would be calculated 2 times.
For the record the AMI creation involves the snapshotting behind the scenes and AWS performs those snapshots calculating the delta; so the AMI creation process would faster the second time but still they are treated a 2 individual copies.