diff --git a/src/routes/posts/quick-comparison-of-s3/index.md b/src/routes/posts/quick-comparison-of-s3/index.md index 24d9732..1d223c4 100644 --- a/src/routes/posts/quick-comparison-of-s3/index.md +++ b/src/routes/posts/quick-comparison-of-s3/index.md @@ -1,34 +1,132 @@ --- -title: Quick comparison of Simple Storage Service +title: Quick comparison of pricing of Simple Storage Services date: 2022-04-26 author: Daniel Bulant authorIcon: /logo.png categories: [programming, storage, comparison, s3] -description: There are all those ad-filled long articles comparing certain things (in this case, simple storage services), usually auto generated. So here's a note for my future self in a format I like now. +description: There are all those ad-filled long articles comparing certain things (in this case, simple storage services, or S3), usually auto generated. So here's a note for my future self in a format I like now. --- +I'm not sponsored or endorsed by any of the mentioned companies/products below, nor do I earn any commission when you get something from them. +If you want to help me, say something nice in the comments (or create some discussion there). +If you start using any of these after you read this post, you're obligated to say which one are you using (and preferably why). + +Out of the below, I only used `storj.io`. Others are just quick info based on their pricing pages. + +There's also a simplified comparison tool at the bottom. + +`egress` means outbound transfers. + +The services are in no particular order (I tried a bit by popularity, but no exact metrics were used for sorting). + +## AWS S3 + Azure + Google Cloud + +Depends on region and on API requests. +Top 3 most expensive services. +If you need 100% reliability and 'the thing that everyone uses', go with this one (or if it's company policy). +If you want to save, or don't mind using 'smaller' hosts, try one of the below (I'd recommend Cloudflare or DigitalOcean from reliability/usage perspective). + +## Cloudflare R2 + +I'm using their other products (workers, this page itself is hosted on pages), but I have yet to fully try the new R2. + +| Category | Free | Paid | +| -------- | ---- | ---- | +| Storage | 10GB/month | $15/TB/month | +| class A ops | 1 million requests/month | $4.5/ million requests | +| class B ops | 10 million requests/month | $0.36/ million requests | + +Class A has all uploads and bulk operations (`ListBuckets`, `PutBucket`, `ListObjects`, `PutObject`, `CopyObject`, `CompleteMultipartUpload`, `CreateMultipartUpload`, `UploadPart`, `UploadPartCopy`). +Class B contains get operations (`HeadBucket`, `HeadObject`, `GetObject`). +Delete operations are free (`DeleteObject`, `DeleteBucket`, `DeleteMultipartUpload`). + +[Home page of Cloudflare](https://cloudflare.com) | [Pricing for R2](https://developers.cloudflare.com/r2/platform/pricing/) + ## Wasabi -***6$/TB/month*** +***$5.99/TB/month*** No API charge/egress. -## DigitalOcean +[Home page](https://wasabi.com) | [Pricing page](https://wasabi.com/cloud-storage-pricing/) -***20$/TB/month*** +## Backblaze B2 -4TB outbound transfer included. +| Category | Free | Paid | +| -------- | ---- | ---- | +| Storage | 10GB | $5/TB/month | +| Egress | 1GB/day | $10/TB/month | +| Class A ops | $\infty$ | - | +| Class B ops | 2500/day | $4 / 10 million | +| Class C ops | 2500/day | $4 / 1 million | -Likely 0 API charge. +Free egress when using one of the '[Bandwidth alliance](https://www.cloudflare.com/bandwidth-alliance/)' services - for example when using free Cloudflare proxy (which is free even for small businesses, unless you're moving tens/hundreds of terabytes of data each day). + +
+ Details + + ### Class A + + Uploads, deletes (of objects and buckets), aborts (of multipart uploads). + + ### Class B + + Downloads (and getting metadata of objects). This doesn't count as egress, so it's still paid even when over 'Bandwidth alliance'. + + ### Class C + + Copy, Create bucket, CORS bucket management, bucket information, listing. +
+ +[Home page](https://backblaze.com) | [Pricing page](https://www.backblaze.com/b2/cloud-storage-pricing.html) + +## DigitalOcean Spaces + +| Category | Base | Paid | +| ----- | --- | --- | +| Storage | 250GB | $20/TB/month | +| Egress | 1TB | 10$/TB/month | + +Base plan is 5$/month. + +
+ Details + Egress is kinda funky, but essentially it's free when transfering to droplets (VMs) in the same region, otherwise it's paid. + + Digital Ocean also has some kind of CDN for free bundled, and when using CDN only egress from Spaces to CDN is counted. + + To find pricing for Spaces, I had to open up `pricing` page from their homepage, scroll down, click `spaces` card, click `learn more` link in the description, scroll down, click `product docs`, and then it showed the pricing itself. + + They have rate limits for API requests in place (see [Pricing page](https://docs.digitalocean.com/products/spaces)). Of those the most notable one + is that you can only do 5 `PUT` or `COPY` requests in 5 minutse for any object (file) in Spaces. + As a side note, they use non-standard `503 Slow Down` (normally `Service Unavailable`) error code instead of the more common `429 Too Many Requests` (part of RFC 6585). +
+ +[Home page](https://digitalocean.com) | [Pricing page](https://docs.digitalocean.com/products/spaces) ## Storj.io ***4$/TB/month*** +| Category | Free | Paid | +| -------- | ---- | ---- | +| Storage | 150GB | $4/TB/month | +| Outbound | 150GB | 7$/TB/month | + > *Pro Accounts: Additional per-segment fee of $0.0000088 applies. -Not 100% sure what they mean per segment? -7$/TB/month outbound. +
+ Details -Really slow uploads, downloads usable, but I'd still recommend putting it behind Cloudflare or similar proxy if you're storing mostly small user uploads. + When uploading via CLI/libraries, their software splits the files into segments, each of which is stored on multiple machines at once for redundancy. S3 gateway does that for you, and I don't know how exactly the file is split into segments. Segment price is not part of the comparison at the end. + + Really slow uploads (when using the S3 gateway, it's possible if you use the CLI/libraries that it's faster), downloads usable, but I'd still recommend putting it behind Cloudflare or similar proxy if you're storing mostly small user uploads. + It should be more secure that the others, in that if you don't use the S3 gateway but rather their open-source CLI/libraries, it encrypts the file locally with the specified key, and uploads a part of the file to multiple machines, so none of the machines can read your file. + Also, they're not the one's running all of the machines on which files are stored - they pay members for their excess storage if they install Storj's daemon. + S3 gateway has server-side encryption. + + They cannot retrieve the files if you lose the keys. +
+ +[Home page](https://storj.io) | [Pricing page](https://www.storj.io/pricing)