# Amazon Elastic Block Store

Amazon Elastic Block Store (EBS) provides raw block-level storage that can be attached to Amazon EC2 instances and is used by Amazon Relational Database Service (RDS). It is one of the two block-storage options offered by AWS, with the other being the EC2 Instance Store.
Amazon EBS provides a range of options for storage performance and cost. These options are divided into two major categories: SSD-backed storage for transactional workloads, such as databases and boot volumes (performance depends primarily on IOPS), and disk-backed storage for throughput intensive workloads, such as MapReduce and log processing (performance depends primarily on MB/s).

## Use case

In a typical use case, using EBS would include formatting the device with a filesystem and mounting it. EBS supports advanced storage features, including snapshotting and cloning. As of September 2020, EBS volumes can be up to 2 TiB in size using the MBR partitioning scheme, and up to 16 TiB using the GPT partitioning scheme.
EBS volumes are built on replicated back end storage, so that the failure of a single component will not cause data loss.

## History

EBS was introduced by Amazon in August 2008. As of March 2018 30 GB of free space was included in the free tier of Amazon Web Services 2017.

## Volume types

The following table shows use cases and performance characteristics of current generation EBS volumes:
| | Solid state drives (SSD) | Solid state drives (SSD) | Solid state drives (SSD) | Hard disk drives (HDD) | Hard disk drives (HDD) |
| Volume type | EBS Provisioned IOPS SSD (io1) (since 2012) | EBS General Purpose SSD (gp2) | EBS General Purpose SSD (gp3) | Throughput Optimized HDD (st1) | Cold HDD (sc1) |
| Short description | Highest performance SSD volume designed for latency-sensitive transactional workloads | General Purpose SSD volume that balances price performance for a wide variety of transactional workloads | Lowest cost SSD volume that balances price performance for a wide variety of transactional workloads | Low cost HDD volume designed for frequently accessed, throughput intensive workloads | Lowest cost HDD volume designed for less frequently accessed workloads |
| Use cases | I/O-intensive NoSQL and relational databases | Boot volumes, low-latency interactive apps, dev & test | Boot volumes, low-latency interactive apps, dev & test | Big data, data warehouses, log processing | Colder data requiring fewer scans per day |
| API name | io1 | gp2 | gp3 | st1 | sc1 |
| Volume size | 4 GiB - 16 TiB | 1 GiB - 16 TiB | 1 GiB - 16 TiB | 500 GiB - 16 TiB | 500 GiB - 16 TiB |
| Max IOPS/volume | 64,000 | 16,000 | 16,000 | 500 | 250 |
| Max throughput/volume | 1000 MB/s | 250 MB/s | 1000 MB/s | 500 MB/s | 250 MB/s |
| Max IOPS/instance | 260,000 | 260,000 | 260,000 | 260,000 | 260,000 |
| Max throughput/instance | 7,500 MB/s | 7,500 MB/s | 7,500 MB/s | 7,500 MB/s | 7,500 MB/s |
| Price | $0.125/GB-month $0.065/provisioned IOPS | $0.10/GB-month | $0.08/GB-month $0.005/provisioned IOPS over 3000 | $0.045/GB-month | $0.025/GB-month |
| Dominant performance attribute | IOPS | IOPS | IOPS | MB/s | MB/s |
* ↑ Default volume type
* ↑ io1/gp2 based on 16 KiB I/O size, st1/sc1 based on 1 MiB I/O size

## Features

Amazon EBS provides several features that assist with data management, backups, and performance tuning:
* The Amazon Data Lifecycle Manager is an automated mechanism that can back up data from EBS volumes, creating and deleting EBS snapshots on a predefined schedule.
* Elastic Volumes makes it possible to adapt volume size to an application's current needs, using Amazon CloudWatch and AWS Lambda to automate volume changes.
* Amazon EBS Encryption encrypts data at rest for EBS volumes and snapshots, without having to manage a separate secure key infrastructure.
* EBS volume tagging makes it possible to find and filter EBS resources on the Amazon Console and CLI.
* Software-level RAID arrays make it possible to create groups of EBS volumes with high performance network throughput between them, using the standard RAID protocol.