/storage_letter.

Amazon EBS vs GCP Alternatives

EBS gp3 decouples IOPS from capacity; GCP's Persistent Disk ties them together.

Staff Writer · · 6 min read
Cover illustration for “Amazon EBS vs GCP Alternatives”
Features · September 30, 2026 · 6 min read · 1,403 words

Block Storage is Boring Until It Isn't

Cloud block storage is the unglamorous foundation of almost every serious workload running in the cloud. Databases, virtual machines, containerized apps with stateful data, legacy systems with strict I/O requirements. They all need somewhere to write bytes and get them back reliably. Nobody tweets about their block storage until it's slow or gone.

AWS and GCP both solve this problem well. They just do it differently, and those differences matter considerably more than the marketing pages suggest. What follows is for developers and architects who are either building on one platform or seriously thinking about moving between them.


EBS is network-attached block storage for EC2 instances. It behaves like a local disk from the OS's perspective but lives on dedicated storage infrastructure separate from the compute host. That separation is why you can stop an EC2 instance and your data doesn't disappear. The volume just floats there, waiting.

The volume types are where things get worth caring about. gp3 is the current general-purpose workhorse: 3,000 IOPS and 125 MB/s baseline throughput, with the ability to provision more without buying more storage. That last part was the key fix over gp2, which tied IOPS directly to disk size in a way that pushed everyone into over-provisioning just to hit performance targets. gp3 broke that coupling, and it was a genuine improvement in a category where genuine improvements are rarer than press releases suggest.

io2 Block Express sits at the high end, supporting up to 256,000 IOPS and sub-millisecond latency for databases that are already costing you $400 a month just in compute. st1 and sc1 are sequential-read-optimized HDD tiers for workloads where nobody is in any particular hurry.

The integration story is real. If your team already lives in AWS, the IAM permissions, CloudWatch metrics, snapshot lifecycle policies, and cost allocation tags all behave like things that were designed together, because they were. That coherence is easy to take for granted until you're on a platform where it isn't there.


Google's primary equivalent is Persistent Disk, which is a refreshingly literal name in an industry that gave us "Elastic" everything. It persists. The types map roughly to EBS's tiers: Standard PD for spinning disk sequential workloads, Balanced PD as the general-purpose option, SSD PD competing with gp3 and io1, and Extreme PD for high-IOPS database work.

One thing Persistent Disk does that EBS doesn't is synchronous regional replication. By default it's zonal, but you can configure it to actively mirror data across two zones, not just via snapshot. EBS snapshots give you cross-region durability, but reactively. If the zone has a bad moment before your next snapshot runs, that's your problem. Regional PD is a genuinely different architectural option, not a feature checkbox.

Hyperdisk is Google's newer high-performance tier and worth keeping separate from Persistent Disk in your head because it works pretty differently. Hyperdisk Extreme and Hyperdisk Throughput decouple capacity, IOPS, and throughput more aggressively than EBS does, which matters if you need 160,000 IOPS on a relatively small volume. That flexibility is real. So is the bill.

Local SSD is physically attached NVMe, which means extreme throughput and zero persistence guarantees once the VM's lifecycle ends. It's the right answer for caches, scratch space, and workloads where you're handling your own replication. Not for anything you'd lose sleep over losing.


Snapshots work similarly on both platforms: incremental after the first, stored in object storage, restorable to new volumes. EBS snapshots go to S3, PD snapshots go to Cloud Storage. Both support cross-region copies. Both charge for the storage those snapshots consume, which people consistently forget until the bill arrives and they start doing math at 11pm.

Encryption is fully handled on both platforms, via KMS and Cloud KMS respectively. This is not a differentiator. Move on.

Multi-attach is more interesting. EBS io1/io2 supports attaching to up to 16 Nitro-based instances simultaneously. GCP supports read-write multi-writer on a limited set of machine types and read-only sharing across many instances. Neither platform makes shared block storage completely simple, because the hard part was never the storage API. It's the filesystem or application layer, and that's your problem regardless of which cloud you're on.

Resizing works live on both platforms. Growing volumes without downtime is fine. Shrinking volumes is not possible on either, which is one of those quiet limitations you discover at exactly the wrong moment, usually when you're trying to cut costs on a volume you over-provisioned six months ago when the deadline was close and optimism was high.


gp3's ability to provision IOPS independently of capacity is a real advantage for smaller volumes that need real performance. Balanced PD scales IOPS with capacity, so if you want punchy performance on a small volume, gp3 wins that comparison without much debate.

At the top end, io2 Block Express and Hyperdisk Extreme are comparable in raw specs. EBS charges for provisioned IOPS whether you use them or not. Hyperdisk also charges for provisioned capacity, IOPS, and throughput as separate line items, which sounds elegant in a configuration UI and then produces a billing page that takes a minute to parse, especially the first time.

For a rough comparison on a 1 TB SSD volume with 10,000 IOPS in us-east, EBS gp3 lands around $80-90/month before snapshots. Comparable GCP SSD PD is similar. Hyperdisk Extreme for the same IOPS on a smaller volume tends to run higher because of the per-IOPS charge. The gap closes or reverses depending on utilization patterns, region, and whether you're on either platform's committed use discount, which you should be if you're running anything at scale and have any predictability in your workloads at all.

EBS io2 Block Express is notably good at sub-millisecond latency for write-intensive workloads. Persistent Disk SSD typically runs 1-2ms, which is fine for most applications and noticeable if you're benchmarking database write performance closely or running something where every millisecond genuinely compounds.


Migration from EBS to GCP is doable but not automatic. The formats don't convert directly. The practical path is snapshotting EBS volumes, exporting to S3, moving to GCS via Storage Transfer Service, importing as GCP disk snapshots, and verifying checksums before cutting over. It works. It's tedious in the specific way that infrastructure work is tedious, which is to say it involves more YAML and waiting than anyone admits in the planning doc.

The less obvious problem is performance tuning. An application optimized for EBS's I/O characteristics will behave differently on Persistent Disk. Not worse, just different. Queue depth, read-ahead settings, filesystem choices, and write coalescing behavior all interact with the underlying storage in ways that don't automatically port. Benchmark your actual workload on GCP before you cut over, not a synthetic test. Vendor benchmarks are aspirational by nature. The platform that wins a synthetic test will frequently lose with your specific query pattern on your specific volume size.

Snapshot and backup policies also need to be rebuilt from scratch on the GCP side. Don't assume your AWS lifecycle policies have a direct equivalent waiting for you.


If you're already on AWS running standard enterprise workloads, EBS is the obvious call. High-IOPS databases on io2, general application servers on gp3, data pipeline stages on st1, and archival workloads on sc1. The integration with the rest of AWS makes it the low-friction path, and low friction has real value that doesn't show up in feature comparison tables but absolutely shows up in how fast your team ships.

GCP Persistent Disk fits well when you're building on GKE or when you specifically want that regional replication architecture without managing snapshots yourself. Google Kubernetes Engine's native PD integration is notably clean, probably more so than EBS's EKS integration for teams where that comparison matters.

Hyperdisk is for latency-sensitive analytical databases or high-throughput storage workloads where you have someone willing to actually tune the configuration. It's not the kind of thing you set and forget while congratulating yourself for picking the premium option.

The most honest advice is to pick based on where your workload already lives and what your team already understands. The productivity cost of learning a new platform's integration patterns is real and tends to be underestimated in migration plans. Run real workload tests on appropriately sized volumes if you're evaluating seriously. Then check committed use pricing for your projected scale, because that number often matters more than any individual feature once you're past a certain size.

More in Features