I suggest you start by simply comparing the cost of dedicated hosting-provided hardware. This is the middle ground between owning your own stuff and something like AWS.
Pricing out the cost of owning your own servers can be tricky since you need to account for a number of factors:
* Initial cost of hardware - don't forget to include things like network switches, remote console devices, etc. - you may also want to buy something like a remotely accessible power switch so you can forcibly reboot machines
* Rack space costs
* Bandwidth costs
* Sysadmin time to manage the hardware (you already need a sysadmin to manage things like backups, logging, etc.)
* On-site remote hands if your rack host is not physically near your sysadmin
But regardless, I'm pretty sure that _anything_ ends up being cheaper than AWS once you get beyond a fairly small number of servers. The big advantages of AWS are integration with other services (storage, load balancing, etc.) and the ability to spin many machines up and down very quickly.
However, if you can tolerate waiting a day or so to provision new servers, dedicated hosting-provided hardware is almost certainly going to be quite a bit cheaper.
You could also compare this to something like Linode. Again, you lose the ability to provision new machines almost instantly, but they are pretty quick to bring up new machines (minutes, not hours or days). They also have a number of nice integrated services like backups.
Finally, you can also do some sort of hybrid setup where you have core stable services on dedicated machines but still spin up AWS instances to deal with bursty computation needs.
I did this math at Eye-Fi, a competitor of sorts to Everpix. What I learned, is the answer to whether to build or buy is the classic: "it depends". The driving factor? Data retention policy. The one move Amazon made during my analysis that had a huge shift in the calculus was to introduce Glacier.
My takeaway, the economics of a lifetime storage offering are very difficult to achieve. Glacier changes the rules by altering the SLA for data access to make the money work out.
If you just use EC2, no EBS, and reserved pricing then AWS is just as cheap as other providers if not cheaper. It is all the nice features that make it expensive. S3 is pretty damn cheap too.
Of course, raw hosting costs are only part of the calculation. You have to include sysadmin time and salary.
Dedicated servers don't really give you permanent storage either. Granted, it is more permanent than EC2 instance storage, but hard drives do get corrupted. You still need backup and replication for a robust solution.
Thank you for your answer. I agree with you. And after I read this article I went on to do some research decided to move the servers in-house. But I am also researching a Hybrid cloud using AWS.
I suggest you start by simply comparing the cost of dedicated hosting-provided hardware. This is the middle ground between owning your own stuff and something like AWS.
Pricing out the cost of owning your own servers can be tricky since you need to account for a number of factors:
* Initial cost of hardware - don't forget to include things like network switches, remote console devices, etc. - you may also want to buy something like a remotely accessible power switch so you can forcibly reboot machines
* Rack space costs
* Bandwidth costs
* Sysadmin time to manage the hardware (you already need a sysadmin to manage things like backups, logging, etc.)
* On-site remote hands if your rack host is not physically near your sysadmin
But regardless, I'm pretty sure that _anything_ ends up being cheaper than AWS once you get beyond a fairly small number of servers. The big advantages of AWS are integration with other services (storage, load balancing, etc.) and the ability to spin many machines up and down very quickly.
However, if you can tolerate waiting a day or so to provision new servers, dedicated hosting-provided hardware is almost certainly going to be quite a bit cheaper.
You could also compare this to something like Linode. Again, you lose the ability to provision new machines almost instantly, but they are pretty quick to bring up new machines (minutes, not hours or days). They also have a number of nice integrated services like backups.
Finally, you can also do some sort of hybrid setup where you have core stable services on dedicated machines but still spin up AWS instances to deal with bursty computation needs.