Block storage cost compared: EBS vs Managed Disks vs Persistent Disk
AWS EBS, Azure Managed Disks, and GCP Persistent Disk price block storage similarly, by provisioned capacity and performance tier, with the fastest tiers charging for provisioned IOPS. This compares them and shows the shared optimization levers.
Quick answer
AWS EBS, Azure Managed Disks, and GCP Persistent Disk all bill provisioned capacity per GB-month by performance tier (HDD, general-purpose SSD, high-performance SSD), with the fastest tiers charging separately for provisioned IOPS and throughput. You pay for provisioned capacity regardless of use, so the shared levers are matching the tier to the IO need, right-sizing capacity, and deleting unattached volumes.
Block storage, the persistent disks attached to virtual machines, is priced almost identically across the three major clouds: provisioned capacity by performance tier, with the fastest tiers letting you provision IOPS and throughput separately. Because the models match, so do the optimizations, and the common mistakes are the same everywhere.
The shared model
| Tier | AWS EBS | Azure Managed Disks | GCP Persistent Disk |
|---|---|---|---|
| HDD | st1, sc1 | Standard HDD | Standard PD |
| General-purpose SSD | gp3, gp2 | Standard SSD | Balanced PD |
| High-performance SSD | io2, io1 | Premium SSD, Ultra | SSD PD, Extreme PD |
Each provider offers HDD for cold or throughput-oriented data, general-purpose SSD for most workloads, and high-performance SSD for demanding IO. On the highest tiers you provision IOPS and throughput separately (and pay for them), so over-provisioning performance is a cross-cloud trap.
The shared optimization levers
Because you pay for provisioned capacity and performance regardless of use, the levers are the same on all three: match the tier to the real IO need (do not default to premium), right-size capacity to what is used, avoid over-provisioning IOPS on the high-performance tiers, and delete unattached volumes, which bill whether attached or not. On AWS specifically, moving gp2 to gp3 often saves money, as in the gp2-to-gp3 migration.
Where they differ
The differences are in detail: how IOPS scale with size on general-purpose tiers, the exact premium-tier pricing, and features like AWS gp3's decoupled IOPS or Azure Ultra Disk's fully tunable performance. These matter for specific workloads but rarely change the fundamental choice, which is tier and size, not provider. The per-tier detail is covered in gp3 versus io2 and Azure managed disks.
Choosing and optimizing
Choose block storage in the cloud where the VM lives (it is attached to the instance), pick the tier that matches the workload's IO profile, right-size capacity and provisioned performance to real need, and clean up unattached volumes. The optimization is identical across clouds because the pricing model is, so the effort transfers wherever you run.
FAQ
Is EBS, Managed Disks, or Persistent Disk cheapest?
They are close, since all three bill provisioned capacity per GB-month by performance tier with similar rates. The cheapest depends on the tier, size, and provisioned performance for your workload, not the provider. Block storage is attached to the VM, so you use whichever cloud the VM runs in and optimize the tier and size.
How does cloud block storage pricing work?
By provisioned capacity per GB-month, priced by performance tier (HDD, general-purpose SSD, high-performance SSD), with the fastest tiers charging separately for provisioned IOPS and throughput. You pay for the provisioned capacity and performance whether or not you use them, so sizing to real need is the main lever.
What are the shared block storage optimization levers?
Match the tier to the real IO need rather than defaulting to premium, right-size capacity to what is used, avoid over-provisioning IOPS on high-performance tiers, and delete unattached volumes since they bill whether attached or not. These apply identically across EBS, Managed Disks, and Persistent Disk.
Do unattached volumes cost money on all clouds?
Yes. On EBS, Managed Disks, and Persistent Disk alike, a volume bills for its provisioned capacity whether or not it is attached to a VM, so orphaned volumes left after instance deletion are pure waste. Cleaning up unattached volumes is a simple, common saving on every cloud.
How do the clouds differ on block storage?
In detail: how IOPS scale with size on general-purpose tiers, exact premium-tier pricing, and features like AWS gp3's decoupled IOPS or Azure Ultra Disk's fully tunable performance. These matter for specific workloads but rarely change the fundamental choice, which is tier and size rather than provider.
Does C3X estimate block storage cost across clouds?
C3X prices EBS, Azure Managed Disks, and GCP Persistent Disk from your Terraform, including tier, size, and provisioned performance, so block storage cost appears before deploy on any cloud, including easy-to-miss over-provisioned or unattached volumes.
What to do next
Right-size your block storage before you deploy. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.