Acorns
Marcel's blog
DigitalOcean: Better Performance, Lower Price
I recently switched away from Rackspace to DigitalOcean and have been pleasantly surprised with the performance improvements.
I’ve gotten great support from Rackspace and would not rule out their services in the future, but so far my experience with DigitalOcean has also been good.
Motivation
Motivations include:
- Reduced pricing
- Lower latency
- SSDs for possible performance improvement
While it was not my primary motivation, the resulting performance improvement surprised me.
Usage Patterns
In both cases, my needs are not very demanding: 0.5GB of RAM and 20GB of disk. My needs are pretty steady; I don’t scale up and down much. When I add an additional server, it’s just for short-term testing, but that does coming very handy. But I’m not taking much advantage of hourly billing.
My server is hosting a suite of typical web and email services. It’s not a dedicated app server. It’s a single, general-purpose server. (I deploy apps that require more resources to PaaS like Heroku.)
Performance
Here’s performance for a Rails app. I don’t generally thing of it as being very I/O heavy, so I’m not sure the improvement is actually coming from the SSDs. It could be that the CPU is faster or the virtualization is more efficient somehow.
That’s a 40% decrease in median response time, and almost as much in 95th percentile response times. Not bad for just changing hardware.
From a user’s perspective, this is only 50ms, which is barely perceptible, but helps me toward my goal of 1 sec browser page loads.
Pricing
With Rackspace, the biggest part of my monthly bill was the server itself, at $19.95/mo for a Cloud Server.
When I first started with Rackspace, AWS EC2 was charging $0.10/hr, or $70/mo, which was more than I was willing to pay (compared to hosting on old hardware in my home). Rackspace’s pricing allowed me to move that server into the cloud.
AWS prices have come down a lot since then: $10.50/mo could get me an EBS-only instance with 20GB of magnetic EBS storage. Add $1/mo for SSD. That’s for a whole GB of RAM, but it’s still 2x DigitalOcean’s price point of $5/mo.
AWS offers a full suite of other features, but I’m not really looking for those here. The main feature that might benefit me is EBS, which would allow me to replace the server without having to move its data. But I don’t make server config changes that would benefit from that very frequently.
Rackspace also charged me a modest but significant $2.70/mo for backup storage in CloudFiles at $0.10/GB, which used to be on par with AWS S3, but again, prices have come down. With the move to DigitalOcean, I’ll be moving those backups to S3 at $0.03/GB, or about $0.90/mo.
I’d also typically end up paying $0-2 for bandwidth on Rackspace, and with DigitalOcean’s more generous bandwidth allotment, I’m expecting that to drop to zero.
So overall, I’m expecting a drop from $24/mo to $6/mo.
Latency
I used to think Rackspace’s datacenter in Chicago was a good central location within the US for my server. But the reality is nearly all my traffic is from the west coast, with a disproportionate amount from my own home.
Latency with DigitalOcean from my home is 25ms compared to 80ms, which is noticeable when typing over SSH and running email filters.
Conclusion
DigitalOcean is a winner for me so far for hosting a single, general-purpose server. Hopefully their reliability and service continue to meet my needs over time.
AWS is still a strong option for low-end instances. I will reconsider if I need more computing resources than a 0.5GB droplet or the fancier tools of the AWS suite like stand-alone EBS volumes.