The io2 Block Express volumes aren’t just faster EBS volumes; they’re a fundamentally different storage architecture designed to push the limits of what a single network-attached block device can do.

Let’s see this in action. Imagine you have a database server that’s been choking on I/O. You’ve already scaled up your instance to an i3en.metal (which has local NVMe SSDs) and you’re still hitting a wall. The typical move is to attach EBS volumes. With io2 Block Express, you’re not just attaching storage; you’re establishing a direct, high-bandwidth, low-latency path from your instance’s CPU to the storage controller.

Here’s a simplified view of what happens:

  • Instance Connection: Your EC2 instance, especially those designed for high I/O like i4i or im4gn families, has dedicated network interfaces and PCIe lanes optimized for EBS.
  • EBS API Call: When your application issues a read/write command, it goes through the AWS API to the EBS service.
  • Block Express Path: For io2 Block Express, this isn’t just a generic network hop. AWS leverages a dedicated, high-performance network fabric and a specialized protocol that bypasses many of the traditional I/O virtualization layers. Think of it as a direct pipeline.
  • Storage Controller: The command arrives at a purpose-built storage controller for io2 Block Express volumes. This controller is designed for massive parallelism and can handle thousands of concurrent I/O operations.
  • SSD Access: The controller then directly interfaces with the underlying SSDs, which are also architected for extreme performance.
  • Data Transfer: Data is transferred back over that dedicated fabric.

The key here is throughput and IOPS are no longer just abstract numbers; they represent the raw capacity of this direct pipeline.

The problem io2 Block Express solves is the bottleneck at the interface between compute and storage for I/O-intensive workloads. Traditionally, even with fast SSDs, the network and the EBS protocol itself could become the limiting factor.

Here’s how you control it:

  • Instance Selection: You must use an EC2 instance type that supports io2 Block Express. This includes the i4i, im4gn, is4gen, and i3en (with some caveats) instance families. These instances have the necessary hardware acceleration and network bandwidth. For example, an i4i.32xlarge has up to 200 Gbps of network bandwidth and 32 vCPU, providing ample room for high-throughput storage.
  • Volume Provisioning: When creating an io2 Block Express volume, you specify iops and throughput. For io2 Block Express, you can provision up to 256,000 IOPS and 4,000 MiB/s of throughput per volume. A single io2BlockExpress volume can be provisioned with 500 IOPS/GiB and 16 KiB/s/GiB at no additional charge, with options to scale up to 1,000 IOPS/GiB and 250 KiB/s/GiB.
  • Attachment: When attaching the volume, you ensure the correct device mapping is used. The EBS multi-attach feature is also supported, allowing a single volume to be attached to multiple instances simultaneously.
  • File System Tuning: While the hardware is capable, you still need to ensure your operating system and file system are configured to take advantage of it. For example, using ext4 with noatime, nodiratime mount options and tuning vm.dirty_ratio and vm.dirty_background_ratio can be crucial. For databases, specific tuning parameters for the database engine itself (e.g., buffer pool sizes, write-ahead log configurations) are paramount.

The most surprising aspect is how the volume’s performance scales with its size. Unlike standard EBS volumes where IOPS and throughput are capped independently of size (within certain limits), io2 Block Express volumes are designed with a ratio of IOPS per GiB and throughput per GiB. This means a larger volume inherently provides more performance potential, up to the maximum limits. For example, a 1000 GiB io2 Block Express volume can be provisioned with up to 256,000 IOPS and 4,000 MiB/s throughput, while a 100 GiB volume of the same type can be provisioned with up to 25,600 IOPS and 400 MiB/s throughput, assuming you’ve selected an instance that can actually sustain that performance.

The next step in optimizing high-performance storage is understanding how to leverage Provisioned IOPS SSD (io1) volumes in conjunction with other instance storage for tiered performance.

Want structured learning?

Take the full Ec2 course →