Question: What are the differences between the Amazon EBS volume types?

I want to choose an Amazon Elastic Block Store (Amazon EBS) volume type that's right for my workload. What are the differences between the volume types?ResolutionWhen determining which Amazon EBS volume type is right for your needs, consider the following:DurabilityVolume sizeMaximum IOPS per volumeMaximum throughput per volumeWhether it supports Amazon EBS Multi-AttachWhether it supports boot volumeAmazon EBS provides the following volume types: previous generation, hard disk drives (HDD), and solid state drives (SSD).Note: Before you change your volume type, see Limitations.Previous generationYou can use this volume type as a backup and for archiving, or for workloads with small datasets that you access infrequently. For more information on this volume type, see Previous generation Magnetic volumes.Hard disk drives (HDD)The dominant performance attribute for this volume type is the throughput. HDD-backed volumes are optimized for workloads that require a large I/Osize, or workloads that have a synchronized I/O. It's a best practice to use an Amazon EBS-optimized Amazon Elastic Compute Cloud (Amazon EC2) instance for this volume type. HDD-backed volumes don't support boot volume, so you can't choose it as a root volume.HHD-backed volumes fall under two categories: Throughput Optimized HDD (st1) and Cold HDD (sc1). If optimal performance is your priority, then consider st1. If cost optimization is your priority, then consider sc1. Both st1 and sc1 offer the same level of durability. For more information on Throughput Optimized HDD and Cold HDD, see Overview of HDD-backed volumes.Solid state drives (SSD)The dominant performance attribute for this volume type is IOPS. SSD-backed volumes are optimized for a small I/O size and random I/O. It's a best practice to use an Amazon EBS-optimized instance for this volume type. SSD-backed volume types include General Purpose SSD volumes and Provisioned IOPS SSD volumes.General Purpose SSD volumesGeneral Purpose SSD volumes are good for a wide variety of transactional workloads that require less than the following:16,000 IOPS1,000 MiB/s of throughput160-TiB volume sizeGeneral Purpose SSD volumes include gp2 and gp3 types. Both gp2 and gp3 can reach up to 16000 IOPS, and offer the same level of durability. However, gp2 volumes reach a lower maximum throughput per volume (250 MiB/s) than gp3 volumes (1000 MiB/s). IOPs performance for gp2 volumes scales linearly with volume size, and gp2 burst performance is good for workloads that have a high IOPS burst rate. gp3 volumes don't use burst performance. However, gp3 volumes provide a consistent 3,000 IOPS baseline performance and 125 MiB/s throughput performance regardless of volume size. With gp3 volumes, you can provision IOPS and throughput independent of storage size.If you're currently using gp2 and want to change to gp3, see Migrate to gp3 from gp2.Note: If you don't specify IOPS or throughput performance when changing your volume type from gp2 to gp3, then Amazon EBS provisions whichever performance is higher.Provisioned IOPS SSD volumesProvisioned IOPS SSD volumes include io2 volumes, io2 Block Express volumes, and io1 volumes. Each one requires 16,000 KiB I/O minimum IOPS per volume. If your workload requires up to 64,000 IOPS per volume and up to 1,000 MiB/s of throughput, then use io1 and io2. If your workload requires up to 256,000 IOPS per volume and up to 4,000 MiB/s of throughput, then use io2 Block Express. If you require more durability and more ration per GiB, then use either io2 or io2 Block Express.Note: To achieve optimal performance for these volume types, consider the following:io1: If you created your io1 volume before December 6, 2017, then you must modify the volume.io1 and io2: Make sure that you provisioned 64,000 IOPS to reach the maximum 1,000 MiB/s throughput.io2 Block Express: Only c7g, r5b, trn1, x2idn, and x2iedn instances support io2 Block Express volumes.The maximum values for IOPS, throughput, and latency are based on an I/O size of 16 KiB. A larger I/O size can't reach these maximum values.