2 ms·
I'll write two answers. This is a description of the infrastructure. Our base environment (we have several) has 4 servers, 2 of whom are used for the app serve
by pizza234 9y ago
I'll write two answers. This is a description of the infrastructure.
Our base environment (we have several) has 4 servers, 2 of whom are used for the app servers and load balancers, and 2 for data stores and queue processors.
Each server is the typical (as someone in this thread named) "8k" server (a bit more costly, actually).
Generally speaking, the servers are significantly overprovisioned.
There are a couple of factors that made the conversion to AWS cheap (~20+).
The first is that the base unit of a metal server is very large (1 server). Although it's cheap to scale vertically, scaling horizontally, for HA purposes, is expensive, because it costs at least 2 units.
For example, the total power of our app servers is overprovisioned in the 20x range (CPU and memory are cheap, right?). Even with minimal speccing, a metal server still costs around 3/4k, you need 2, that's 6/8k.
In AWS, we can work with very small units. So maybe we end up paying the same amount, but we don't need that excessive power, and, crucial, we have networking for free (or almost).
The second factor is networking and hosting costs, which are not trivial. We rent managed firewalls and load balancers, which in AWS are for free or almost.
Also, it's important to spread the servers cost over the time - any metal server won't last forever. If you buy one for 9.6k, it's 100$ a month for 8 years. When it breaks, HA goes temporarily out of the window until it gets fixed (or you buy a new one, or you move services around).
The big pain point of AWS [for us] is RDS, which is madly expensive. It accounts for something like 50% of our AWS costs.
A very gross estimation of the monthly costs of each metal server could be:
- 80$: server
- 80$: hosting
- 80$: managed networking
For 4 servers, that's almost 1000$. Adding 20%, with a budget of 1200$, with AWS, we have a less powerful but also correspondingly less wasteful infrastructure, with lots of baked-in functionality (including, more flexible HA).