A full answer to your question depends on the complexity of deployment. If you are looking to host a single ASP.Net (core or classic) website, with no additional services, then I would recommend the Azure App Services specifically.
When testing Azure App Services, the end-to-end story is really nice:
- Integration with github or Bitbucket git repositories allowed you to deploy once changes were merged into master (Azure App Services would check out the repo, build the app, and deploy it)
- Hosting the site was rock solid, and appropriately sized
When testing AWS ElasticBeanstalk, the end-to-end story is not as pretty:
- No direct integration with git, so you have to publish using the AWS plugin. The package is not a standard Visual Studio web deployment package
- Hosting is shaky. If the VMs are too small they restart randomly, and start times are measured in minutes
Growing beyond simple web applications
When you have a group of web services that work in concert as a whole application, containers start to be worth the investment. Typically, containers start up much faster than AWS EC2 instances (what your app is running in with ELB) which means that using an orchestration service like EKS to scale your application much more attractive.
The next thing to think about is cost. In AWS you pay for every EC2 instance you are using, directly or indirectly. Not sure how some of the managed services work in Azure, but it is likely a similar story. Many times there is spare capacity in your EC2 instance that could be used to host another instance of your application, or another microservice. Containers let you use that space while ensuring the configuration is correct.