I host virtual machines and multiple web servers in AWS and use Cloudflare as the front end. I don't use the front end offered by AWS. The developer recommended using Cloudflare because it's so much easier.
I have only deployed Elastic Load Balancing for two companies so far, but we evaluated it for the university where I previously worked. Unfortunately, they didn't take our advice and went with it. It required a lot of extra effort to integrate it with the firewall.
The feature that I like the most is the scalability. The solutions I build often have many pieces, which are very complicated. If a client comes to me with a design, my developer has made this as a template or a cloud formation script. It's a design on paper, and I want it executed a certain way. I can do that quickly and repeatedly with AWS. That is a considerable advantage because I can take that template and do it five times in different zones. That is an excellent feature based on a template, et cetera.
The reporting could be simplified so that the client sees a report of what they cached at the end of the month and the number of hits. It should have metrics above and beyond their Google analytics, etc. You can't do that with the solutions from AWS. You have to build sophisticated cloud trails, reports, dashboards, etc. The setup is significant, and it's hard to manage. You'll need to hire someone or pay a consultant on a regular basis to manage it, and it's not for the faint of heart.
I have been using Elastic Load Balancing for three to four years.
Elastic Load Balancing is a robust solution and highly reliable, but it requires a lot of care and feeding.
I rate AWS support 10 out of 10.
Elastic Load Balancing could be easier to set up. Other technical experts might say it's easy. My definition of easy is pointing the website to it, and it's working in 10 minutes. It takes a couple of hours to set it up. You need at least one person or maybe two if you have a significant web presence.
I see a return from using AWS. If you have a website with a lot of content built on the fly, you want to go with AWS.
I don't know precisely what it costs, but they're charging you for the amount of data that you transmit. You pay a small fee to have the services enabled, but you're really paying for the amount of data that goes through that VPC.
I rate Elastic Load Balancing eight out of 10. I can make a lot of money with AWS. It's highly lucrative, but it depends on the client's wants. If someone says that cost is no object and wants the most robust solution, that will be AWS. Am I going to do the AWS load balancing or CDN from Cloudflare? That's up for discussion. However, it's hard to beat AWS if you want a secure, reliable solution. AWS Elastic Load Balancing and global DNS with Route 53 are the Cadillac solutions. They're the most reliable and excellent cars with all the bells and whistles.
However, if you are using the web application firewall solution with AWS, you have to buy other technologies to do an excellent job of building the rules. If you want to compare and contrast the rule base for the web application firewall solution, Fastly and Cloudflare are industry leaders. Small, medium-sized, and large businesses can do well with Cloudflare. It's a set-it-and-forget-it solution. With Cloudflare, many technical people build the rules in real time, fix things, and make things work.
I would recommend Elastic Load Balancing, depending on the size of the implementation and the amount of scalability they anticipate. The difference between a solution that requires something like AWS versus a simple CDN is the amount of live content on a system. A simple CDN like Cloudflare is excellent if there's a lot of static content. A server can take a lot of those requests when there's a limited amount of dynamic content. If you have a site with many moving parts, it needs a lot of business logic and horsepower. It's doing a lot of queries. That's when you use AWS.
Understand your data, content, user base, and whether you will get many requests. Let's say you built the website to run on your basic LAMP: Linux, Apache, MySQL, and PHP. In that case, it doesn't matter what kind of server you use. AWS Route 53 provides global DNS load balancing. I also recommend that. You don't have to use AWS to host. If you're using Elastic Load Balancing, you can only use AWS, but Route 53 balances with Azure as well.