AWS is great, but only when you are building a company the size of Uber and need to orchestrate a cloud and build a site as popular as eBay.
In all other cases, do not ever use it. You’ll lose money and your website will be slow as f*!
Questions to self, before you think of using AWS
- Is my website a Magento shop and my developer is offering me to use AWS? – I should question their competence.
- Is my website a WordPress blog or a Woocommerce shop and my developer suggests using AWS? – I should consider using another developer.
- Is my website a complex highly uncacheable Laravel app, SAAS, and/or I’m expecting millions of daily visitors, and ready to shell out at least a thousand dollars for adequate performance at AWS? Proceed with AWS.
Why AWS is not a fit for WordPress or Magento
Because there is efficient caching available, which is Varnish. The suggestion of using AWS coming from a developer is either a sign of incompetence or your site is getting millions of views a day, in which case it does require auto-scaling and multiple servers.
But unless you are running Yahoo! or a CNN, a single server with an efficient Varnish setup on a cloud hosting is going to be times cheaper and times faster than AWS.
Varnish does enable you to host a very popular website with dozens of thousands of daily visitors on a single server!
So in the case of average size or even big E-Commerce website, the suggestion to use AWS coming from developers demonstrates their inability to configure a secure, high-performance setup with Varnish,
and set up simple rules for rate limiting requests to prevent bad actors from causing unnecessary CPU load.
“All good websites are using AWS, so I should too?”
Russians have a saying “Слышу звон, да не знаю, где он”. This literally translates as “I hear the bells, but I don’t know where the sound is coming from”. This well applies to folks who are opting to use AWS infrastructure just for no apparent reason other than “someone else uses it, so I should too”.
I beg you, do not use AWS:
- unless you want to use free credits and are fine with slow performance
- unless you have an efficient FPC setup but that’s not enough for handling your traffic, and you plan to use load balancing, auto-scaling, etc.
In the latter case, I would first doubt if you have an efficient FPC setup. Invest money into optimizing your cache, before you consider AWS, if ever!
Let’s go into further details about what’s wrong with AWS.
Any modern PHP-based websites like WordPress or Magento, require you to use an SSD. Because parsing dozens and dozens of small PHP scripts upon every dynamic request really requires a disk with slow latency, like an SSD or even an NVME drive.
The default performance of “disks” in AWS is not on par with any offering of far more straightforward hostings like Linode, DigitalOcean, etc. Those will give you proper SSD performance out of the box, without any tuning. Should you tune up “disk performance” in AWS to match with e.g. Linode’s, this will cost you!
For most medium or even large websites, a VPS from the mentioned providers or a dedicated one is a far better choice, both performance, and budget-wise.
Failed to cache, succeeded to spend
As a performance enthusiast, I can see a notion of developers using AWS for its auto-scaling just because they miserably fail to set up full-page caching for their app. This is just throwing hardware at a problem, instead of solving it. Only a truly large app like eBay warrants the need for auto-scaling groups and bells and whistles that most people never need.
AWS locks you into their infrastructure, making you pay ridiculous money for slow disk performance. You will get lost in burst credits, and all the Amazon-specific yada-yada, only until you raise all the settings up, and you won’t get adequate performance even then. Or once you do, you’ll pay 10 times for what is still slower than a Linode VPS or an OVH dedicated server.