This is my first foray into Magento, and first time post on this forum. Thank you for taking the time to review, and hopefully contribute to my question below.
I am about to start development of a Magento store. I plan on running Magento 2.x and will have a large product library (~150k items). While I do not know initial traffic to the server, I would like to be able to take in about 50 users simultaneously without compromising user experience. Initially my customer base is USA and Canada. I do not have any past experience with Magento, and cannot appreciate at all server requirements that my setup is likely to need. I will be using CDN for static resources.
I would like to spend no more than $400/ month on the server at thie time, with obvious preference to spend less if I can.
My questions are:
Again, thank you very much for taking your time in reading (and hopefully replying) to this post.
First of all, welcome to Magento!
I would stay away from dedicated servers (it's not 2005 anymore). We do not use dedicated servers for many years now and moved even high traffic clients to cloud servers (with many are using multi-server clusters). Especially, if you do not know the traffic you will be getting, it will be much easier to adjust your cloud server or add more servers to your setup later as your traffic grows.
Next, you want to decide if you want a managed or unmanaged server. A managed server will cost $100-$500 extra depending on the company you will go with but it usually includes managed DNS, backups to a remote location, PCI, 24/7 monitoring, and support - if you add the cost of all those services purchased separately to an unmanaged server, it will probably cost you more when just going with a managed package and have it included.
For cloud servers, Amazon AWS, Google Cloud and Rackspace Cloud are very popular solutions. Around 90% of the merchants I talked to on the last Imagine were using cloud servers from those 3 providers (managed in-house or managed via an agency they work with).
If you are confident in your ability to setup and maintain your own server(s), have time for it and want to maybe save some money - go with an unmanaged cloud server. On our client's Magento 2 servers we use CenOS 7, PHP 7, FPC, HTTP/2 via ALPN and MySQL database engine on the same or separate database server. This helps to keep the first-byte time down, keep the loading speed up and have all store pages run from HTTPS URLs (and this means all the pages, not only registration and checkout) so new browsers do not show security warning to the visitors and provide stable setup for the high traffic stores.
I apologize for a long post and hope this helps.
Thanks for your sharing!
(1) How do you make data backup on AWS? Some cloud servers like linode, vultr or digitalocean, they will provide automatic backup for whole servers. But I can not find similar function on AWS.
(2) How do you set up HTTPS over Varnish?
We use Jungle Disk for the backups. Not the cheapest solution out there but those backups are stored in a remote location, encrypted and service itself puts a very little extra load on the servers.
Using Varnish with https requires some "tweaking" of the server config but it is possible.
Check some details here: https://magento.stackexchange.com/questions/133104/how-to-use-https-with-varnish-or-a-fast-way-strug...
Here is a speed test of our fully HTTPS Magento 2 demo store running on Varnish over HTTP/2 on our smallest server: http://www.webpagetest.org/result/170914_SV_819a0d2f3cb2793f547bc61ae90ea0ae/ , Demo store URL: https://demo.finestshops.com/
Using FPC with disk cache instead of Varnish is easier but a bit slower and will create extra load on the server with a high traffic store.
I think I read somewhere Magento 2.2 will support Varnish with HTTPS out of the box but I'm not sure 100%.
if you manage your servers, then go to OVH, Soyoustart or Digitalocean,