Amazon Elastic Block Store (EBS) is a high performance block storage service designed to be used with EC2. EBS comes in different types to meet the right needs – for single-digit millisecond latency, or for gigabyte per second high throughput.


Key Notes for Amazon Elastic Block Store (EBS)

  • EBS is a multi-tenant block storage service.
  • An EBS Volume can typically be attached to single EC2 instance at a given time.
    • You can detach and then attach the same volume to another EC2 instance
    • You can attach multiple EBS volumes to one EC2 instance
    • Exception: using EBS Multi-Attach, you can attach a single Provisioned IOPS SSD (io1) volume to up to 16 Nitro-based instances that are in the same AZ. And this feature has several additional limitations, and it is only available in select-few Regions as of now
  • Once EBS Volume(s) is / are attached to an EC2 instance, you can create a file system on top of these volume(s), run a database, or use them in any way you would use a block storage
  • You can change volume type any time, to meet your changing needs
  • EBS Volumes are replicated within a single AZ – that is – these volumes are highly available within the realm of specific AZ
  • EBS Volumes can scale to petabytes of data
  • EBS Snapshots feature allows you to backup EBS Volumes in to S3
  • EBS Volumes support encryption of data in-transit as well as at-rest (including backups)


EBS Volume types

EBS Volumes are divided into to two primary categories, and each category has two variations:

  • Solid State Drive (SSD) backed – meant for transactional workloads where IOPS is the key for performance, such as databases and boot volumes. Variations:
    • io1 – Provisioned IOPS SSD
    • gp2 – General Purpose SSD
  • Hard Disk Drives (HDD) backed – meant for throughput intensive workloads where high MB/second is desired, such as for Big Data processing (MapReduce), logs processing. Variations:
    • st1 – Throughput Optimized HDD
    • sc1 – Cold HDD


Here’s a quick comparison of features of each type of EBS Volume:

EBS Volume Types Features Comparison

EBS Snapshots

An EBS Snapshot is a point-in-time snapshot of your EBS Volume, stored in S3.

  • EBS Snapshots are incremental in nature – that is – only the blocks changed since your last snapshot are saved (thus also reducing the total cost charged)
    • Since Snapshots are incrementally stored, AWS handles your deletion of specific Snapshot(s) in a way as not to affect the restorability to point-in-time of remaining Snapshots
  • EBS direct APIs allow you to read data from any Snapshot, and can thus also identify the differences between two Snapshots (without needing to create actual Volumes first)
    • Though Snapshots are stored in S3, you can only access them using EC2 API (and not S3 API)
  • You can create EBS Snapshot from any block storage – whether on AWS, or in your datacenter (or other locations)
  • AWS allows lazy-loading when you create an EBS Volume from a Snapshot – that is – you can start using the Volume immediately (while AWS may still be transferring data from Snapshot to Volume in the background)
    • If your application (such as VDI) requires full load for proper performance, you can enable FSR (Fast Snapshot Restore) on your Snapshots. Volumes created from FSR are fully initialized.
  • You can copy Snapshots across Regions, and thus replicate the Volumes
  • Data Lifecycle Manager (DLM) for EBS enables automation of data backup from EBS volumes. You simply create lifecycle policies to configure the scheduled backups, and can monitor the process through CloudWatch Events.



Amazon Elastic Block Store (EBS) is billed for following components:

  • Provisioned Storage – per GB per month
    • price varies by Volume type
  • Provisioned IOPS – per provisioned IOPS per month
    • applicable for Provisioned IOPS Volumes
  • EBS Snapshots – per GB per month of data stored



External Resources