This article is not a comparison between different hosting companies, but rather the different types of hosting and how they fit with Magento.
Speed: Medium – High
Monthly Traffic: Low – High
Cloud hosting for Magento is becoming more and more popular. Similar to VPS solutions, each cloud account has it’s own operating system, web server, and database server allowing them to be tuned of your site.
There are a few main advantages with cloud hosting:
Ability to scale resources (increase CPU or RAM, etc.)
Multiple hosts for failure tolerance (a server can crash without you site necessarily crashing)
With Magento, cloud hosting makes the most sense if you have seasonality or large sales when you need to ramp up your server to handle the increase in traffic. You can run at one level 11 months out of the year then drastically ramp up resources before your high season after which you can scale things back down.
Cloud hosting is also great if you’re not sure what size hosting you need. This way you can sort of dial in the resources of you server (CPU / RAM) and after you find the right size then you can go shopping for the best solution. This is great if you think you need a dedicated server but aren’t sure how big to go. First start off with cloud, see what you need, then make the move to dedicated after you have some data.
This flexibility to scale up and down comes at a high cost. Depending on how much variation in traffic you get during peak seasons, it may or may not be worth it. Sometimes if you average out the cost of a cloud server over the entire year it might be cheaper to just get a dedicated server instead.
Some cloud solutions are “auto-scaling” where they can dynamically add more CPU cores and RAM instantly as they’re needed, then scale back down as things slow down. This can be great if you have a site that has crazy variability in traffic from day-to-day. Be careful when evaluating costs for auto-scale solutions. You will often find that it can be much cheaper to just purchase a dedicated server that can handle your max traffic levels rather than trying to do auto-scale. The flexibility of auto-scale can come at a great cost but might be worth it for certain situations.
Monthly Traffic: High
Strength: Very high traffic + speed
The term “cluster” or “clustered” simply refers to a group of dedicated servers linked together. Imagine having 2 dedicated servers that work as a team to handle the web requests (web server) and another 2 dedicated servers that work as a team to manage all the database work (database server). By spreading the work across multiple physical machines you gain the ability to handle more traffic.
Having a Magento clustered solution doesn’t necessarily mean that your site will be faster. Instead it really means that as traffic increases your ability to handle that traffic won’t degrade (as rapidly). So for example if we compare a single dedicated server to a cluster comprised of 5 servers then we could assume the cluster will handle 5x the traffic of the dedicated server at the same speed (page load times).
Another benefit of clustered solutions is that they provide redundancy. If you have multiple servers and 1 crashes, your site can keep moving along on the remaining web servers that are still working. This redundancy is critical for high-traffic sites where even a few minutes of downtime can cost thousands.
Depending on your host, clustered solutions might also give you the ability to scale up and down similar to cloud solutions. For example, we sometimes have customers request to increase their clustered solution for major sales events like Black Friday. In this case we can supplement the clustered solution by adding a few more cloud servers to the cluster just for the busy season. When the sale is over we can remove the extra cloud servers and scale back down to the usual setup. This offers great flexibility, maximum performance, and maximum speed.
Monthly Traffic: High
Strength: Bang for buck
Dedicated servers are a great fit for Magento. They allow you to have 100% of the server resources to use for your site (compared to Shared hosting) and give you the ability to tweak / tune the server for your specific site. Generally speaking you’ll make your dollar go further with dedicated hosting compared to Cloud or even VPS when looking at the $ per CPU or $ per GB RAM.
Generally speaking dedicated servers can handle a very high amount of traffic while maintaining fast page load times. While every Magento site varies greatly in the amount of traffic it can handle, it’s usually a safe bet that a server with 16 or more cores can handle several hundred thousand monthly visitors.
The other advantage to Magento dedicated servers is that they often come in configurations that provide faster processors than other plans (higher GHz). The main bottleneck to speed and throughput for Magento is the fact that it’s built on PHP. While it’s a great language, it can take a good amount of CPU power to process all the necessary files. The faster the clock speed of your CPU (GHz) the faster it’ll be able to process those PHP files.
Keep a few things in mind when choosing a Magento dedicated server:
Higher clock speed(GHz) = faster page loads
More cores = more concurrent traffic
SSD = faster database (saving products, add to cart, checkout, etc.)
Virtual Private Server (VPS)
Cost: Low – Medium
Monthly Traffic: Medium
Strength: Like dedicated for less
VPS solutions work well for Magento. They’re a step up from shared but not quite as good as cloud or dedicated. Shared hosting is where you have a server with 1 operating system, 1 installation of the web server (Apache, Nginx, etc.), and 1 installation of the database (MySQL, Percona, etc.) and all residents on that server share those resources. VPS solutions divide a physical server into a few smaller virtual servers. For example, if we have a server with 24 cores and 24 GB of ram and we divide that into 4 VPS servers each might have 6 cores and 6 gb of ram. Then on top of each virtual server would be a separate installation of the operating system, web server, and database. This allows for tweaking & tuning of Apache, MySQL, etc. because you have your own installation on your own VPS.
It’s important to note that with a VPS you have a “dedicated” amount of the server resources. So if you have 6 cpu cores and 6 GB of ram, no other users can use those resources but they’re set aside for your site only.
Speed: Medium – High
Monthly Traffic: Low
Shared hosting is where you “share” a server and the resources with several other companies. The hosting provider will setup a server and typically set a limit to the number of accounts on that server say 4 or 50 accounts. That means that your website has to share the CPU and Memory with all the other residents on that server.
Shared hosting is a bit of a double edged sword. If the other residents on the server aren’t using much of the resources then that can mean more for you. However, the opposite is true where if the other residents sites are slamming the server that can take from the available resources for your site. Typically hosting providers have a few different ways to keep residents from over-using the server resources, but, it can still affect your site.