Backblaze B2 is a new cloud storage service designed to compete with Infrastructure as a Service (IaaS) vendors like Amazon Web Services (AWS) S3, Microsoft Azure, and Google Cloud Services by offering bulk cloud storage at dirt cheap prices.
So dirt cheap, in fact, that unlike the other providers mentioned above, Backblaze hopes that B2 will bring the flexibility and performance of a true IaaS storage providers to small teams, individual enthusiasts, and small businesses that may not be able to afford a large-scale solution.
Could Backblaze B2 be your next cloud provider? Keep reading to find out.
- API and CLI/Terminal interfaces for all platforms
- Several software integrations
- Built-in customizable sync logic
- Order storage snapshots as physical drives
- Solid performance
- 17+3 Reed-Solomon redundancy
- SSL and TLS support
- Support for two-factor authentication
- 10 GB free storage
- Incredibly affordable storage pricing
- Nice but limited web environment
- Limited reporting options
- Limited API
- Every upload requires a SHA-1 checksum
- Download charges still pricey
- No geo-redundancy (single data center)
- Expensive phone support
B2 performs quite well with a limited feature set, and still offers an incredible amount of flexibility. B2’s price will be its greatest asset, even if I wish they’d innovate download costs for content distributors as well. B2 won’t take any big clients away from S3 or Azure in its current state and I’d only currently recommend it as another redundant layer to a robust backup strategy. But the service is something to keep an eye on as Backblaze is making all the right moves and B2 is already showing great promise.
Backblaze B2’s offers a decent web environment with some basic functionality lumped into an easy to use interface.
Like most enterprise storage providers, B2 organizes files within storage “buckets,” which are isolated file systems with their own permission settings and discrete file systems. Creating a bucket is simple and easy, as long as you make sure to pick an alpha-numeric name.
Buckets can be designated as either “Public” or “Private.” If you generate a file URL from a “Public” bucket, any receiver can download the file. But a file URL from a “Private” bucket requires an authentication token, either generated on the website or from a Command-Line/Terminal, and requires the b2_authorize_account API call to authenticate access. As long as you’re logged into the website, you can download any files from your “private” buckets.
At the moment, B2’s web interface is incredibly basic, offering only standard upload, download, delete, and some reporting functions. The drag-and-drop uploader will let you dump files and folders into the box, but all individual files will be extracted and dumped into the bucket without their original folder structure included. Even file movement isn’t supported, although at least you can delete files. And while file versioning is supported by the API, there’s no version management or restoration in the web portal.
However, their Snapshot feature is a fantastic option for those using the service, and will be pleasantly familiar to those who’ve used their backup service. This feature lets you choose any number of files or an entire bucket and create a .zip compressed backup of those files.
You can then download the snapshot or request a physical copy of that backup on either a USB Flash Drive (up to 128 GB) or a USB Hard Drive (up to 4 TB). They charge for the physical copies at $99 or $189, respectively.
There are a few activity reports available as well covering the amount of transactions (API calls), average GB stored, GB downloaded, and the average files stored. Unfortunately, it’s not a very extensive reporting system and also not customizable either.
Finally, you can also manage whether you receive alerts and where you receive them. On free accounts, you have the option to be alerted when you hit your storage cap, daily bandwidth caps, or any of your transaction caps. If you pay for service or add a credit card to the account, you get more alert granularity.
Command Line Interface (CLI)
For those with the technical skill and desire, the company offers an API, a comprehensive set of technical docs, and terminal/command-line integration regardless of the operating system you’re using. Their interface is available in the Python Package Index (PyPI).
Backblaze offers comprehensive package installation directions, and it’s pretty easy to get set up with the command-line or terminal interface.
Note that in order to do anything in this interface, you have to go back to your account on their website, grab your Account ID, generate an Application Key, and use the b2 authorize_account command to give yourself permission. But you only have to do that once, thankfully.
Once it’s installed, the “b2” command will pull up your available CLI/Terminal options.
Backblaze’s CLI API is severely limited compared to their bigger competitors, unfortunately. There’s a fair amount that you can do with the API commands, and the feature set makes sense given their target market, but there are still a lot of holes here. Thankfully, Backblaze is continually developing their feature set.
It’s also important to note that the “upload_file” will calculate a SHA-1 hash prior to uploading the file so the server can verify file integrity. The checksum will be auto-calculated by default but can be added manually, but regardless it’s not optional. Any application built on their API will require a SHA-1 checksum with every file upload, which may be a deal-breaker for some integrations.
But that said, a few commands immediately grabbed my attention. For instance, the “sync” command encompasses the functionality of most desktop cloud software. This command by default will run operations in very quickly using up to 10 parallel threads and includes its own syncing logic that will keep the newest version of a file, keep files in B2 that are no longer in the source, and will use file name and modification date to determine if a file needs to be updated.
All of these things can be changed with modifier commands, with explicit directions being available by using “b2 help (command).” The “–keepDays” modifier is particularly interesting, because it allows you to set your own version settings, effectively deleting any file versions greater than the days specified.
It should also be noted that there are some API calls that are not included in the “b2” list above. Some of them are unnecessary for the interface, but they can be integrated into other applications. For a full list, check out their docs.
For those less technically inclined, there are already a bunch of software vendors who have integrated B2 into their software environment. If you’re using, or planning to use, one of the following software platforms, Backblaze B2 is now supported as an additional storage or backup option.
- CloudBerry Windows Server Backup
- Cubix (Ortana Media Group)
- B2 Fuse Linux
- Duplicity Linux
As an IaaS vendor, B2’s performance should be rock-solid, and it doesn’t disappoint. This was tested on a cable connection running 50 Mbps down and 5 Mbps up. B2 had no problem utilizing all the bandwidth I had available.
|Backblaze B2 Performance|
|Average Upload Speed||5.16 Mbps|
|Maximum Upload Speed||11.88 Mbps|
|Average Download Speed||51.20 Mbps|
|Maximum Download Speed||62.74 Mbps|
Backblaze B2 secures all upload traffic using HTTPS, SSL, and also supports TLS encryption protocols. Two-factor authentication is optionally supported. Also, as mentioned above, all API access is secured with application authentication tokens.
Files stored in B2 are not encrypted at-rest by default, but this is due to the varying needs of potential clients. Backblaze documents how to set up methods for encrypting prior to upload and decrypting upon receipt in a B2 encryption GitHub page.
However, the biggest hurtle they’re going to run into is the fact that they only have a single datacenter. While they do use 17 + 3 Reed-Solomon redundancy (data is stored as redundant pieces across 20 hard drives in 20 different rack locations), the reality is that if a meteor strikes the datacenter, all data is gone. Geo-redundancy is a standard feature of B2’s bigger competitors, and as such, using B2 as a primary data store will make some nervous.
This is where Backblaze B2 really shines. Compared to all other IaaS providers, B2 is simply a bargain at nearly one-eighth the storage cost of Amazon S3.
|Storage Cost||Upload Cost||Download Cost||Class A Transactions||Class B Transactions||Class C Transactions|
|Free||10 GB – Free||Free||1 GB – Free||Free||2,500 / day||2,500 / day|
|Paid||$0.005 / GB||Free||$0.05 / GB||Free||$0.004 / 10,000||$0.004 / 1,000|
It’s notable that API calls are classified as Class A, Class B, and Class C, but the most important calls, like upload_file, start_large_file, upload_part, and several others others, are all Class A. Class B calls mainly include download commands. Class C calls relate to either authenticating, creating, or querying buckets.
However, downloads, like in the case of deploying products to clients, are still going to be expensive as they charge the same per GB cost as everyone else, and also slow download transactions into Class B.
Backblaze B2 offers an extensive and, quite honestly, fantastic set of documents and getting started guide. Included in that guide is are some extensive descriptions of API calls as well as a set of code examples for C++ and Swift integrations.
Outside of that, B2 offers four tiers of support. The free options are fine as 48 hours is a reasonable turnaround time. However, it’s a bit annoying that they charge $400 / month to get phone support.
|E-mail turnaround (9-5)||2 business days||1 business day||2 business hours||2 business hours|
|24/7 phone||N/A||N/A||N/A||2-hour turnaround|
|Price||Free||Add credit card to account||$150 / month||$400 / month|