EBS | Elastic Block Storage

Learn via video courses

Overview

AWS Provides a variety of data storage options for its customers such as EBS, EFS, S3, etc. EBS is one of the disk storage options. AWS EBS Volume is a storage device that can be attached to EC2 instance/RDS Instance in AWS.

What is EBS in AWS?

EBS- Elastic Block Storage , EBS is AWS's cloud-based Block Level Storage device.

In layperson's terms, EBS is a kind of Storage disk (SSD or HDD, or NVME Disk).

For Eg, Our Laptop/Computer is attached with a 500GB / 1TB Size Hard Disk / SSD.

Similarly, in AWS, EBS is a disk device that can be attached to an EC2 instance. We can customize our EBS Volume Size here based on our needs.

For a single EBS Volume, the custom size can be defined below

  • Minimum EBS Size: 1 GiB
  • Maximum EBS Size: 16384 GiB or 16 TB

Features of EBS

There are some features associated with AWS EBS Volume which can be used as per the customer's requirement.

Amazon EBS Elastic Volumes

There is no downtime required to modify the size of the volume and change the volume type. Because of that, we often change the volume size/type depending on applications requirement.

Note: we cannot decrease the EBS Volume size.

Amazon EBS Snapshots

We can create EBS snapshots from any EBS volumes and we will discuss this later in detail.

Amazon Data lifecycle manager for EBS snapshots

Using Lifecycle Manager, we can control how many snapshots should get created or how many days snapshots should retain in the region.

Amazon EBS-Optimized instances .

There is a certain instance released by AWS to facilitate better throughput performance between the EC2 instance and EBS Volumes.

You can find the list in the below mentioned link

AWS EBS Optimized instance type List

How to set up Amazon EBS?

Once logged into the AWS console, enter EC2 in the search bar and click it.

  • In the EC2 left navigation pane, select Volumes under Elastic Block Stores.

  • Click Create Volume

set-up-amazon-ebs

  • Enter the below mentioned values and click create volumes

    • Volume Type : General Purpose SSD gp3
    • Volume Size : 100GB
    • Availability Zone : us-east-2a
    • Volume IOPS : 3000 IOPS (Default)
    • Volume Throughput : 125 MB/s (Default)
    • Encryption : aws/ebs Key
    • Snapshot ID : None

create-volume-with-given-parameters

  • Once volume is created, Check the volume state and status

    • Volume state : Available
    • Volume status : Okay

check-volume-created

If the Volume is in an available state, you can attach the volume to the EC2 instances. Things to consider while attaching volumes. Volumes and EC2 instances should be in the same availability zone.

EBS Volume Types

There are 5 major types of EBS provided by AWS depending upon the use-cases

Before diving into types, we need to deal with the terminologies associated with those EBS Volumes types. They are

  1. IOPS
  2. Throghput
  3. Latency
  4. Burst

IOPS

IOPS- Input/Output Operations per Second

IOPS is the measurement of how many reads and writes a disk device will be able to perform per second.

For example,

Read: Opening an existing word document is a read operation Write: Changing the words and saving the document is a write operation.

IOPS is directly proportional to the performance of the Disk.(i.e) the higher the IOPS, the higher the EBS Volume performance.

Throughput

Throughput is the measurement of how much data was transferred from a source at a particular time.

Latency

Latency is defined as the amount of time the device takes for a packet of data transferred from source to destination.

Burst

Burst mode is a temporary high-speed data transmission mode used to perform high-speed data transfer at maximum throughput.

Usually, Burst mode data transfer rate (DTR) speeds faster than normal transmission protocols by 2-5 times.

Types of EBS Volumes:

There are five types of EBS Volumes provided by AWS across 2 categories.

SSD

  • General Purpose SSD
    • gp2
    • gp3
  • Provisioned IOPS SSD
    • io1
    • io2
    • io2 block express

HDD

  • Throughput Optimized HDD
    • st1
  • Cold HDD
    • sc1
  • Magnetic (Previous generation EBS Volumes)

AWS EBS Volume Types

SSD-based volumes

General Purpose SSD

Volume NameGeneral Purpose SSDGeneral Purpose SSD
Volume Typesgp3gp2
DescriptionGeneral Purpose SSD volume that balances price performance for a wide variety of transactional workloadsGeneral Purpose SSD volume that balances price performance for a wide variety of transactional workloads
Use Casesvirtual desktops, medium sized single instance databases such as MSFT SQL Server and Oracle DB, low-latency interactive apps, dev & test, boot volumesBoot volumes, low-latency interactive apps, dev & test
Volume Size1 GB – 16 TB1 GB – 16 TB
Durability99.8% – 99.9%99.8% – 99.9%
Max IOPS / Volume16,00016,000
Max Throughput / Volume1000 MB/s250 MB/s
Max IOPS / Instance260,000260,000
Max IOPS / GBN/AN/A
Max Throughput / Instance7,500 MB/s7,500 MB/s
Latencysingle digit millisecondsingle digit millisecond
Multi-AttachNoNo

Provisioned IOS SSD

Volume NameProvisioned SSDProvisioned SSDProvisioned SSD
Volume Typesio1io2io2 Block Express
DescriptionHigh performance SSD volume designed for latency-sensitive transactional workloadsHigh performance SSD volume designed for business-critical latency-sensitive applicationsHigh performance SSD volume designed for business-critical latency-sensitive applications
Use CasesWorkloads that require sustained IOPS performance or more than 16,000 IOPS and I/O-intensive database workloadsWorkloads that require sub-millisecond latency, and sustained IOPS performance or more than 64,000 IOPS or 1,000 MiB/s of throughputI/O-intensive NoSQL & relational databases
Volume Size4 GB – 16 TB4 GB – 16 TB4 GB – 64 TB
Durability99.8% – 99.9%99.999%99.999%
Max IOPS / Volume64,00064,000256,000
Max Throughput / Volume1,000 MB/s1,000 MB/s4,000 MB/s
Max IOPS / GB260,000160,000260,000
Max Throughput / Instance4,750 MB/s7,500 MB/s7,500 MB/s
Latencysingle digit millisecondsingle digit millisecondsub-millisecond
Multi-AttachYesYesNo

HDD-based volumes

Volume NameThroughput Optimized HDDCold SSD
Volume Typesst1sc2
DescriptionLow cost HDD volume designed for frequently accessed, throughput intensive workloadsLowest cost HDD volume designed for less frequently accessed workloads
Use CasesBig data, data warehouses, log processingColder data requiring fewer scans per day
Volume Size125 GB - 16 TB125 GB - 16 TB
Durability99.8% - 99.9%99.8% – 99.9%
Max IOPS / Volume500250
Max Throughput / Volume500 MB/s250 MB/s
Max IOPS / Instance260,000260,000
Max IOPS / GBN/AN/A
Max Throughput / Instance7,500 MB/s7,500 MB/s
Multi-AttachNoNo

Benefits of EBS

1. Data Availability and Persistence

The first benefit would be EBS Volume data persistence and the maximum uptime of EBS volume is between 99.00% and 99.99% as per AWS SLA.

For eg, If we store 100 GB storage in EBS Volume, AWS SLA is Guaranteed for a maximum of 99.9 GB and a minimum of 99.5 GB.

Note: The data stored in EBS Volume will be available independent from the life of an instance.

AWS EBS Service Level Agreement

2. Data Encryption

EBS Volumes can be encrypted by AWS KMS or CMS(customer master key). We can use encrypted EBS volumes to meet regulated/audited data and application compliance requirements.

3. Snapshots

Snapshots are incremental backups of EBS Volume.

Incremental Backup:

For eg : If you have a EBS volume with 50 GB of data, but only 10 GB of data have changed since the taken of the last snapshot, only the 10 GB of modified data is written to Amazon S3.

We will discuss Snapshots in detail later in this article.

4. Flexibility

We can dynamically increase the size of EBS Volume on live production without requiring downtime for current-generation instance types. We can also modify EBS volume type and IOPS capacity without service interruptions.

Drawbacks of EBS

  • There is no support for decreasing the size of an EBS volume in AWS.

  • EBS encryption is only available on certain instance types.

  • We must stop the EC2 instance before we detach the volume if the volume is the root volume of the EC2 Instance.

  • We can have up to 5,000 EBS volumes and 10,000 Snapshots by default in a region, Other than that, we need to raise a support request with AWS to increase Volumes and snapshots Quota.

EBS Snapshots

  • Snapshots are incremental backups of EBS Volume.

  • A snapshot belongs to region only where it created.

  • As the Snapshots are constrained to the Region, To share a snapshot from one region to another region, we need to copy the snapshot from the current region to the desired Region.

  • Snapshots will copy the EBS Volumes and store them in Amazon S3.

    Note: We can't see the EBS Backups in the AWS S3 console.

  • Using snapshots, we can create a new volume in the same availability zone or a different availability zone as well.

  • Snapshots of encrypted EBS volumes are automatically encrypted.

Reference Diagram:

ebs-snapshot

Amazon EBS Pricing

The pricing of EBS depends on three parameters.

  • Volume Type
  • Volume Size
  • IOPS

SSD Volumes

EBS VolumesPrice/GB-MonthPrice/IOPS-Month
GP2$0.10/GB-month3 IOPS/GB
GP3$0.08/GB-month$0.005/provisioned IOPS-month over 3,000 IOPS
IO1$0.125/GB-month$0.065/provisioned IOPS-month
IO2$0.125/GB-month$0.065/provisioned IOPS-month up to 32,000 IOPS
IO2 Block express$0.125/GB-month$0.065/provisioned IOPS-month up to 32,000 IOPS

HDD Volumes

EBS VolumesPrice/GB-MonthPrice/IOPS-Month
ST1$0.045/GB-month500IOPS/Volume
SC1$0.015/GB-month250IOPS / Volume

Conclusion

  • AWS EBS Volumes are block-level storage that can be attached to EC2 Instances and RDS Instances.

  • AWS EBS Volumes provide flexible performance for all types of workloads across a wide range of application use cases.

  • EBS Volumes are a lot cheaper than most of the other Cloud service providers (Azure, OCI, GCP, etc) and on-premise storage costs.