Tornado Web Server on Elastic Beanstalk

Using Tornado Web server for Python on Elastic Beanstalk isn't quite straightforward. There isn't much information on the internet, either. The objective of this article is to be a guide and reference.

Tornado Web Server uses non-blocking IO to support thousands of connections in parallel. It is different from most Python web frameworks. It is not based on WSGI, and it is typically run with only one thread per process. Tornado is integrated with the standard library asyncio module and shares the same event loop (by default since Tornado 5.0). In general, libraries designed for use with asyncio can be mixed freely with Tornado.