To Cloud or Not to Cloud…
Recenty I have been looking at server hosting options for IPBan Pro. There are basically two options. AWS or VPS/Dedicated. The amount of CPU and storage I need very comfortably sits with 8 GB RAM and 2 TB of storage, so those will be my target server specs. I want 2 servers for redundancy.
Amazon a1.xlarge fits the specs nicely. To give AWS the benefit of the doubt, I will go with 3 year reserved instances. This does cause some lock in, but without it the pricing of AWS EC2 basically doubles, yikes!
According to https://aws.amazon.com/ec2/pricing/reserved-instances/pricing, a1.xlarge is 1008 USD up front for three years usage. That comes out to 28 USD per month. Not bad. This does NOT cover bandwidth or storage, so those costs come next.
Looking at https://aws.amazon.com/ebs/pricing, SSD storage is 0.1 USD / month per GB. Legacy hard drive is 0.045 USD / month. Lets go with that. For 2 TB a month, that is 90 USD a month. Not good. I use sqlite now but could consider mysql or postgresql, unfortunately for Amazon the backing store has to be EBS which does not help on the price. So this is not looking good for Amazon. We are at 90 USD for storage and 28 USD for compute for a total of 118. This does not include bandwidth. I do about 300 GB of non-cached bandwidth a month, so that is 25 USD a month according to https://calculator.s3.amazonaws.com/index.html.
So for one server I have a total of 143 USD per month. But I want redudancy and no down-time with a fallback server, so that comes in at 286 per month.
Amazon does provide advantages like fast scaling, etc. which is nice, but I am not liking the price so far. The CPU on Amazon compute is also a VCore, not a dedicated core so that is also a concern. Basically you are sharing a CPU core with other people. The CPU is likely a very modern one, so perhaps it all balances out.
I’ve done quite a lot of research on dedicated servers. Several providers with good pricing are OVH, SoYouStart and Kimsufi. Another provider I found recently is WholeSaleInternet and their cheaper cousin, Nocix. I decided to go with Nocix for my two dedicated servers. I found a gem of a server with a 120 GB SSD drive for operating system files and anything else that needs faster IO. The server also has a 2 TB hard drive, along with a quad core CPU and 16 GB RAM! The dedicated server is 25 USD a month and comes with a basically unmetered 1 GB network port (100 TB max per month in and out combined, I will never come close to that).
I got two Nocix servers, which comes in at 50 USD a month. Will I need to scale in the future? Maybe. If I do, I will add in a few more of these servers. At 25 USD per month with basically unlimited bandwidth, I feel very comfortable in my ability to scale. Nocix is located near Kansas City, USA which is a tech hot spot with Google fiber, an added bonus.
Using a dedicated server does have it’s downsides. I am in charge of security and maintenance, backups, etc. Not too much of a problem, since I install IPBan on all my servers. Security is mostly taken care of with that. I backup everything daily with Auto SSH, another open source project I made. I do have to maintain and update the operating system (Ubuntu 18.04 in my case) regularly. I use Uptime Robot for monitoring and Cloud Flare for caching and security. They are both free for my needs, but they have paid plans if you need more.
In the future I will likely use Amazon’s DynamoDB for critical database storage such as customer orders and billing. DynamoDB has a nice 25 GB free tier with very fast performance.
To sum up, I can run 2 IPBan Pro servers for 50 USD a month without worry of overages. To scale I can add additional servers at 25 USD a month. I can use DynamoDB for critical data that must not be lost. For larger organizations who want less fuss, AWS is still a good option due to less administrative headaches, security, scalability and instant spin up of new machines. But for small businesses with tech savvy people like myself, it is not a great option in my opinion.