DigitalOcean S3 compatible object storage called Spaces allows you to store and serve large amounts of data. They are easy to create and are ready to be used within seconds without any configuration. They are ideal for storing static unstructured data like audio, video and images as well as binary files, archives, backups etc.
What’s so cool about Spaces compared to Amazon S3 is the fact that their pricing structure is WAY more easier to understand and predict. For $5/month you get 250 GB of storage and 1 TB of outbound transfer (inbound/upload is always free). Every additional GB stored costs $0.02 and every additional GB transferred costs $0.01. On top of that you can even serve these files utilizing use their free CDN service at no additional cost! (This alone on Amazon CloudFront can cost you a little fortune!).
Now back to the main topic: mounting DigitalOcean Space as a folder on your server that can be used to store any kind of data.
1. To start with the process you’ll need to install s3fs and some dependencies for it to work normally:
sudo yum update
sudo yum install automake autotools-dev fuse g++ git libcurl4-gnutls-dev libfuse-dev libssl-dev libxml2-dev make pkg-config
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
sudo make install
2. Next you’ll need to create a file that will hold your Spaces API Key and Secret Key (don’t forget to replace these keys with KEY:SECRET_KEY’ in the command below):
echo 'KEY:SECRET_KEY' > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
3. Now we need to create a folder that will be a mounting point for Spaces
4. Now we can mount the Space
s3fs SPACE_NAME /backup -o passwd_file=~/.passwd-s3fs -o url=https://nyc3.digitaloceanspaces.com -o use_path_request_style
If your space is not in New York than Amsterdam or somewhere else: replace nyc3 with ams3 or the whatever is correct.
By this point the your DigitalOcean space should be mounted at /spaces path and you’ll be able to use it just any local folder. You could copy files in and out, rsync data there etc. Note that accessing files in that folder is done over your networks since these files are actually hosted remotely and that will burn your server’s bandwidth. You can see that this folder is mounted if you run df -h in the command line. In case you need to unmount it for any reason:let’s say you’re writing a backup bash script where it will mount the Space copy backups over and unmount it when it’s done, all you need to run is umount /backup and it’s done!
If you reboot your system this folder will not get mounted again so in order for that to be done on the boot you’ll need to edit fstab file that is located at /etc/fstab. Open the file for editing in your favorite text editor and add this line at the end of the file:
s3fs#SPACE_NAME /backup fuse allow_other,_netdev,nosuid,nodev,url=https://nyc3.digitaloceanspaces.com 0 0
After saving the changes to fstab file run:
sudo mount -a
Now the Space will be auto-mounted on every server boot. Now you can host unlimited number of files there and access them easily. You can mount same Space on couple servers so they all can access them at the same time or use it for your backups… There are so many situations where this can be incredibly useful and I don’t have a doubt you’ll use this to create something really cool.
For the past several years I have been using Amazon S3 to backup my WHM/cPanel accounts. It works quite good but the problem is Amazon’s complex pricing model (that charges you for things like diskspace, bandwidth, requests) making price for the service is quite unpredictable. I’ve read on many places that people often got surprised at the end of the month receiving the bill from Amazon.
Recently I have started testing DigitalOcean Spaces, a service similar to Amazon’s S3 (S3 compatible alternative) but with a pricing structure anyone can understand: for $5/month you get 250 GB of storage and 1 TB of outbound transfer (inbound transfer is free like on S3). If you need more than that it will cost you 2cents per every additional GB of storage and 1cent for every additional of outbound GB. Also first two months for every new space are free!
Continue Reading →
I’ve seen numerous DigitalOcean vs Linode reviews but for some reason people always made these tests with the cheapest plans. For my review and my tests I’ve decided to use slightly bigger plans – with 8GB of RAM on both – and see what comes up. Both plans are priced at $80/month (billed hourly). Before we go take a quick note on the terminology: a DigitalOcean VPS is called a “droplet” while Linode’s one is called a “linode” 🙂
– 8GB or RAM
– 4 CPU cores
– 80GB of SSD disk space
– 5TB of bandwidth
– 1Gbps network connection
– 8GB of RAM
– 6 CPU cores
– 192GB of SSD disk space
– 8TB of bandwidth
– 1Gbps network connection
So clearly Linode offers more for the same price: more than a double of disk space, 2 more CPU cores and more bandwidth. This is probably due the fact that they have released their offer after DigitalOcean so that’s some healthy competition right there.
Before we start let’s talk a bit about hardware used by those two companies. DigitalOcean at Amsterdam NL (AMS-3) droplets use Intel Xeon E5-2630L v2 at 2.4 GHz. On the other hand a Linode at London shows Intel Xeon E5-2680 v2 at 2.80GHz. So Linode should have a slightly better processor and should get more processing power for the same amount of money. Other than processor, there isn’t a way to detect the type of memory or SSD drives used.
Note: DigitalOcean at Netherland’s AMS-1 location “hides” their CPU model behind “QEMU Virtual CPU version 1.0” clocked at 2 GHz. So this is one more reason to choose AMS-3 over AMS-1.
DigitalOcean utilizes KVM virtualization while Linode uses Xen.
While DigitalOcean have a minimalist approach to their control panel it lacks some important functions: for example you can’t see how much bandwidth have you spent (not that they care since they do not charge if you go over the monthly limit), you can’t have more than one IP allocated to a single droplet, plan upgrades and downgrades can be really complex to do and time consuming creating a significant downtimes.
Linode is clearly more feature rich platform. They will provide you much better charts and more options. Their Control Panel is more geeky and their SSH in web console works much better and faster compared to one at DigitalOcean, you can buy and assign extra IPs to your linode, you will get an email if your linode is under high load and it can be even auto rebooted in case it hangs.
DigitalOcean offers backups at the cost of +20% on the droplet monthly price. They also offer free DNS hosting and that’s about it. Linode offers backups (at the same price +20%) and free DNS hosting but beside that they also offer some interesting features like Monitoring, Load Balancing and Fully Managed Service (at $100/month per account for all liodes you have).
DigitalOcean offers CentOS, CoreOS, Debian, Fedora, Ubuntu as well as preinstalled applications (Ruby on Rails, WordPress, LAMP, LEMP, Django, MEAN, NodeJS, Ghost, GitLab, Docker, Drupal, Dokku, Magento, Redmine). Linode offers: Arch Linux, CentOS, Debian, Fedora, Gentoo, openSUSE, Slackware, Ubuntu but they also offer lot more settings when creating a new Linode (from partition setup to kernels).
DigitalOcean is clearly a winner: they will have your droplet created in 55 seconds and process is really easy. While the same thing on Linode takes few more minutes and is somewhere complicated: you first create a new linode and then deploy an OS while at DigitalOcean it’s done at once.
At Linode you can deploy at United States (Dallas TX, Fremont CA, Atlanta GA and Newark NJ), United Kingdom (London) and Japan (Tokio) while Digital Ocean on the other hand offers droplets at United States (New York NY, and San Francisco CA), United Kingdom (London), Netherlands (Amsterdam) and Singapore. Linode has better offer of locations in US but they lack Netherlands as really important European location.
Uptime and Stability
I’ve been using DigitalOcean since Feb 2013 and I haven’t noticed any major downtime. In case of some works or scheduled maintenance they send on time emails and they really keep the downtime minimal. I’ve been using Linode for a few months and they also seem stable and reliable. So they are both stable and unlike many people claim that they would never host “mission critical” stuff on DigitalOcean for a reason, I’m doing exactly that since Feb 2013 without any problems. Even this site is hosted on DigitalOcean since then.
In the start DigitalOcean support was really helpful bur recently the quality of their support is bit lower, but on the other hand they offer amazing amount of tutorials and really a helpful community. Linode is famous for their good support and I’ve also found really really helpful community on their IRC (almost like a unofficial live chat support).
Linode should have better performance than DigitalOcean because of the more powerful processor and more cores available. But is faster? Well, actually no! I’ve used ServerBear’s benchmarks (one newly created CentOS 7 dorplet/linode) and here are the results I’ve got:
Linodes single core UnixBench score is 516.6 vs 1,235.7 for DigitalOcean. At a single core level a DigitalOcean is almost twice faster than Linode. This is really interesting and totally unexpected result!
But Linode has 6 cores and DigitalOcean has only 4 so it will be faster anyway, right? More cores means more power, right? WRONG!!!
Even though DigitalOcean has 50% less cores their total score is 50% better than Linode’s (2,154 compared to 3,356) meaning that every single DigitalOcean CPU core performs 100% faster than every single Linode’s core. And that’s another unexpected result! This is also very odd and might suggest that Linode is oversold or something but I’m really not sure.
If you don’t trust me take a look at the results your self:
What about IO performance? Who’s got faster SSDs? My results show that read performance is pretty close while write performance almost twice faster on Linode:
Timing cached reads: 16442 MB in 2.00 seconds = 8233.03 MB/sec
Timing buffered disk reads: 1070 MB in 3.00 seconds = 356.62 MB/sec
Timing cached reads: 18408 MB in 1.98 seconds = 9298.57 MB/sec
Timing buffered disk reads: 2142 MB in 3.00 seconds = 713.35 MB/sec
But, ServerBear tests show that Linode IO is way much faster:
Network speeds are pretty close so we can call them even.
Complete Benchmark Results
Click on a links below for complete benchmark results:
– DigitalOcean: http://serverbear.com/benchmark/2014/11/29/GCJgYYuCapGFxUfV
– Linode: http://serverbear.com/benchmark/2014/11/29/bffAscAzM9j8mZSl
Things aren’t always as they might seem. Even Linode has slightly better processor and twice more cores my benchmark results showed that it’s not faster than DigitalOcean. In fact it’s almost 50% slower. On the other hand Linode IO performance of is twice (or more) times better than IO performance of DigitalOcean.
Even both are really good hosting providers and they give a lot for the money I couldn’t say one host is better than another. But here are some general guidelines I came up with that might help you decide:
- If you need simple and cheap VPS to play around – DigitalOcean
- If you need fast CPU or you are hosting CPU intense application – DigitalOcean
- If you need to deploy WordPress, Drupal, Redmine, LAMP or LEMP application – DigitalOcean
- If you plan on serving lots of static content – Linode
- If you need lots of disk space – Linode
- If you need lots of geeky (*nix) functions – Linode
- If you like minimalist (Apple) approach – DigitalOcean
- If you want it managed and don’t mind paying extra $100/month – Linode
- If you need more than one IP – Linode
- If you need lots of bandwidth – Linode gives more but DigitalOcean doesn’t charge for overage 😉
- If you need to scale up (or down) your plan easily – Linode
In the end – whichever you pick – you’ll be happy with it since they are both really good virtual hosting providers. Compared to regular (non SSD powered) VPS hosts they are both really fast.