DEV Community

Le Huy Ho
Le Huy Ho

Posted on

Learning AWS - DVA - Day 1: EBS (Elastic Block Storage)

What is an EBS Volume?

An EBS Volume (Elastic Block Storage Volume) is a network drive you can attach to your instances while they run.
It allows your instance to persist data, even after their termination.
They are bound to a specific Availability Zone (AZ)
Analogy: Think of them as a "network USB stick"

What I noted:

  • It's a network drive - NOT a physical drive: It use network to communicate the instance, which means there might be a bit of latency. It can be dettached from an EC2 instance and attached to another on quickly.

  • It's locked to an Availability Zone (AZ). eg. an EBS volume in us-east-1a can not be attached to us-east-1b. If you want to move a volume across AZ, you first need to snapshot it.


EBS Snapshots

EBS snapshot is a point-in-time copy of your data. It can be used to:

  • Enable disaster recovery

  • Migrate data across AZs/regions or accounts

  • Improve backup compliance

We can create and manage EBS snapshots through AWS Management Console, AWS SDK, AWS CLI. Amazon EBS Snapshots also integrate with Amazon Data Lifecycle Manager (DLM) - which allows you to define policies that help you automate snapshot lifecycle management.

EBS Snapshots Archive

Archiving Amazon EBS snapshots to save costs while retaining backup data for long-term storage. Move a snapshot to Archive Tier that is 75% cheaper.

Take within 24 to 72 hours for restoring a snapshot.

EBS Snapshots Archive provides a strategic way to manage backup data in a cost-effective manner while ensuring that important snapshots are retained for future use.

This feature is especially useful for bussiness looking to balance storage cost with data retention needs.

Recycle Bin for EBS (FSR)

Fast Snapshot Restore (FSR) - is a feature of Amazon Elastic Block Store (EBS) that allows you to quickly restore EBS Volume from snapshots.

FSR enhances the usability of EBS Snapshots by significantly reducing the time it takes to make volumes available.

This feature is ideal for scenarios where the performance and quick recoverability are critical, making it a valuable tool for organizations leveraging AWS for their cloud infrastructure.


EBS Volume Types

EBS Volumes come with 6 types:

  • gp2 / gp3 (SSD) - General Purpose SSD Volume that balances price and performance for a wide variety of workloads.

  • io1 / io2 Block Express (SSD) - Highest-performance SSD volume for mission-critical low-latency or high-throughput workloads.

  • st1 (HDD) - Low cost HDD volume designed for frequently accessed, throughput intensive workloads.

  • sc1 (HDD) - Lowest cost HDD volume designed for less frequently accessed workloads.

EBS Volumes are charaterized in Size | Throughput | IOPS (I/O Ops per second).

Only gp2/gp3 and io1/io2 Block Express can be used as boot volumes (SSD).


General Purpose SSD (gp2/gp3)

General Purpose SSD is cost effective storage with low-latency. You can use it for** System boot volumes*, **Virtual desktops, **Development and test environments*.

The size can vary between 1 GB to 16TB.

We have differences between gp2 and gp3:

  • gp3 - is the newer generation of volums.

    • give you a baseline of 3,000 IOPS and a througput up to 125 MB/s.
    • Can increase IOPS of gp3 volume type to 16,000 IOPS and throughput up to 1,000 MB/s independently.
    • The size of the volume and the IOPS are not linked
  • gp2 - is the older version.

    • Small gp2 volumes can burst IOPS to 3,000
    • Size of the volume and IOPS are linked, max IOPS is 16,000
    • If you increase the number of GB on your volume, you're going to get three more IOPS (3 IOPS per GB) => max IOPS 16,000 equivalent to 16,000 IOPS/3 = 5,334 GB.

What I noted? - gp2 / gp3 - this is for cost-effective storage latency. With gp3 you can independently set the IOPS and the througput, whereas for gp2, they're linked together.


Provisioned IOPS (PIOPS) SSD

They're used for critical business application that need to sustained IOPS performance of applications that need a lot of IOPS (more than 16,000 IOPS.

Ex: Databases Workloads - that is very sensitive to storage performance and consitency, then the provisioned volumes are going to be great.

We have:

  • io1 (4GB -> 16GB):

    • The Max IOPS is going to be arround 64,000 for Nitro EC2 instances and 32,000 for the other kind of instances.
    • We can increase the provisioned IOPS independently from the storage size.
  • io2 Block Express (4GB -> 64GB):

    • You get Sub-milisecond latency
    • You get a lot of max IOPS: 256,000 IOPS with an IOPS:GB ratio of 1,000:1 (1,000 IOPS per GB)

Provisioned IOPS Volumes supports EBS multi-attach feature.


Hard Disk Drives (HDD)

They can not be a boot volume and we can get the size from 125GB to 16TB.

And we get two kinds of HDD volume here:

  • st1 Throughput Optimized HDD :

    • Greate for Big Data, Data Warehouses, Log Processing.
    • Give you a max throughput of 500MB/s and a max IOPS of 500.
  • sc1 Cold HDD:

    • For data that is infrequenty accessed.
    • Scenarios where lowest cost is important
    • Max thoughput 250MB/s - Max IOPS 250.

Top comments (0)