Block vs Object Storage: Choosing the Right One Saves Real Money
Using block storage where object storage belongs is one of the most common and most expensive cloud mistakes. The distinction is simple once you see it.
Storing user uploads on a server's disk is the default because it is the easiest thing to build. It is also the reason a great many applications are more expensive, less reliable and harder to scale than they need to be.
The distinction between block and object storage is simple, and getting it right changes the architecture.
The three types
Block storage presents raw blocks that an operating system formats with a filesystem. It behaves like a disk, because that is what it is pretending to be. Low latency, high IOPS, attached to one machine at a time.
Object storage stores whole objects with metadata, addressed by key over HTTP. No filesystem, no partial writes, effectively unlimited capacity, accessible from anywhere with credentials.
File storage presents a shared filesystem over NFS or SMB, mountable by many machines simultaneously. A middle ground, and generally the most expensive per gigabyte.
| Block | Object | File | |
|---|---|---|---|
| Access | Attached device | HTTP API | Network mount |
| Concurrent clients | One | Many | Many |
| Latency | Sub-millisecond | Tens of ms | Low, network-bound |
| Capacity | Provisioned, resizable | Effectively unlimited | Provisioned |
| Partial writes | Yes | No — replace the object | Yes |
| Cost per GB | Higher | Lowest | Highest |
| Built-in HTTP serving | No | Yes | No |
What belongs where
Block storage is correct for: operating system disks, database data directories, anything requiring a filesystem, anything requiring random writes into a large file, and low-latency workloads.
Object storage is correct for: user uploads, images and video, static site assets, backups and archives, logs, data lake contents, and anything you want to serve over HTTP or share between machines.
File storage is correct for: legacy applications expecting a shared mount, content management systems running on multiple servers, and shared build or media directories.
The change worth making
Most applications start by writing uploads to the server's disk. That creates four problems at once:
- The server becomes stateful, so it cannot be replaced freely.
- Adding a second server means the two have different files.
- Serving those files consumes the server's CPU and bandwidth.
- Backups must now include a growing directory of user data.
Moving uploads to object storage resolves all four. The application stores a key; the file is served directly from storage or through a CDN in front of it, never touching the application server.
Practically:
- Upload from the application to object storage, or use pre-signed URLs so clients upload directly.
- Store only the object key in your database.
- Serve through a CDN — DigitalOcean's Spaces CDN, or any CDN in front of an S3-compatible endpoint.
- Keep the buckets private and issue time-limited signed URLs for anything not public.
Almost every provider in the catalogue offers S3-compatible object storage, which means the same SDK and the same code work across them. That compatibility is worth more than it appears: it is one of the few genuinely portable pieces of cloud infrastructure.
Cost, honestly
Object storage is dramatically cheaper per gigabyte than block. Block storage is billed for what you provision, whether you use it or not; object storage is billed for what you store.
The charges to watch on object storage are requests and egress. A workload making millions of small requests can find request charges material, and data leaving the provider is billed per gigabyte — which is exactly why a CDN in front usually pays for itself. The egress guide covers the arithmetic.
On block storage, the costs people forget are unattached volumes and old snapshots. Both bill indefinitely. Both should be on a cleanup schedule.
Performance tiers on block storage
Block storage tiers are not interchangeable:
- Standard HDD — archival and sequential access only.
- Standard SSD — light workloads, dev environments.
- Premium or balanced SSD — production applications and databases.
- High-performance NVMe or provisioned IOPS — write-heavy databases and I/O-bound work.
- Local NVMe — lowest latency, but does not survive an instance stop.
A frequent trap is that throughput scales with provisioned size on several platforms, so a small volume throttles regardless of the tier chosen. If a database is slow and the disk is small, size is likely the cause. The database guide covers diagnosing that properly.
Frequently asked questions
Can object storage replace a database? No. It has no query capability, no transactions and no partial updates. It stores objects.
Can a block volume be attached to two servers? Generally no. Some platforms offer multi-attach for specific clustered filesystems; treat it as a specialist case rather than a default.
Is S3-compatible really compatible? For core operations — put, get, list, delete, multipart, pre-signed URLs — yes, across all the major implementations. Exotic features vary.
What about backups? Object storage is the natural target: cheap, durable, and in a different failure domain from the server. The backup guide covers retention and testing.
S3-compatible object storage is offered by nearly every provider in the catalogue, so this pattern ports cleanly between them.
Related guides
Cloud Fundamentals 4 min read
Cloud Egress Costs: The Line Item That Decides Your Provider
Data is cheap to store and expensive to move. For any workload that serves volume, egress is not a line item — it is the decision.
Cloud Fundamentals 5 min read
How to Size vCPU and Memory Without Guessing
Most instances are sized by guesswork and never revisited. Measuring takes an afternoon and usually pays for itself in the first month.
Cloud Fundamentals 4 min read
VPC Networking Basics: Subnets, Security Groups and the Private Path
Most cloud security incidents involve something reachable from the internet that did not need to be. VPC design is how you stop that being possible.
Questions about a specific configuration?
Send us the workload profile — vCPU, memory, region, open ports — and we will confirm which listings actually support it before you buy.