Alnoor, you hit one of the most unnecessarily complicated topics. I've had long conversations with MS, and our SPLA provider to get answers, and though I've reached almost a general conclusion, almost no 2 people will tell you exactly the same info.
To answer your immediate question: Yes, AWS does allow user-based CALs for SQL licensing, at least under the SPLA model, as is my personal experience.
The AWS EC2 instance with SQL only comes on a per-processor licensing (minimum 4), so your price would be the same from any instance with a 2 to 4 vCPU both of which will be licensed at 4 proc minimum, and after that, it jumps significantly, double, to be exact, when you hit 8vCPU (AWS doesn't have anything between 4 and 8 as far as I know)
My calculations have been under the SPLA program (monthly subscription of the CALs, so, YMMV with other programs, i.e: Volume Licensing, or straight-up purchase.)
With that said, and based on SPLA, you would typically break even at 20 user CAL (assuming you're on a 4vCPU server and SQL Standard), would double if you're on 8vCPUs, etc...
You may be tempted to look at SQL Web Edition, as it is very similar in feature set to Standard, and it is significantly cheaper, but it is very strict on its licensing model. Also, my understanding is that Web Edition 2017 is now only available for SPLA providers, but not other licensing models, so that may not be an option for you.
Generally, you may use SQL Web for public-facing, internet sites as long as the data available to 3rd parties is the same data available to your end-users. You may not license SQL Web if the data is only intended for the end user's employees or internal purposes. Thus, SQL Web may not be used to support your end user's line of business applications (such as Microsoft Dynamics ERP solutions) nor any deployments that would make the end user's database available to the general public.
Another point is related to your application architecture as well. You mentioned about 100k unique visitors.
So keep in mind the following: If the visitors are public (meaning, they are not logging in for any e-Commerce activity, etc), but, as a result of them browsing your site, you end up making a back end connection to SQL, you would
not, in this case, need a CAL for every user.
However, if the users are in fact using some shopping cart, and are creating an account for their orders, etc... then, the webserver on which they are connecting to perform such activities will require an External Connector license (EC). Those would be required
per instance and
not per user. So if you have 2 public-facing web servers, you would purchase 2 ECs for those, and then, have the per-user (or per-proc) CAL depending on your need, on the back end.
One last item, on which I don't have a 100% answer, as I've seen different opinions on this: you mentioned that the 100k visitors would be connecting via a single connection. In the case of those 100k, it would be addressed via the EC license anyway, but for general reference, even if the app has its own authentication system inside the database via only
one SQL user, my understanding is that, from a licensing perspective, it is irrelevant, and you are still supposed to have a CAL for each of those connections (assuming you're on a per-user licensing model)
Hope this helps!
------------------------------
George Khairallah
CTO | gotomyerp, LLC
george.k@gotomyerp.com | 877-888-5525
http://gotomyerp.com/------------------------------