&gt; you can easily support several thousand users just fine with a t2 style instance<p>Yep. I&#x27;ve recently load tested (with Locust) a Flask&#x2F;uWSGI&#x2F;Nginx webapp I built that does Pandas DataFrame queries based on user input and serves data computed from the query result. I put a bit of effort into profiling and optimizing the Python code^1, and I do caching in uWSGI. Running on the equivalent of a single t2.small instance, it can handle about 70,000 requests per hour, which I figure is the equivalent of a few thousand simultaneous users^2. For just serving a dynamic webpage from Flask it can handle almost a million requests per hour.<p>^1 (Surprisingly, a Pandas DataFrame lookup like `df[df.alpha == input]` can be almost an order of magnitude faster if you replace `df.alpha` with `df.alpha.values`.)<p>^2 (The data it serves is input for simulation codes which take hours to run on the user&#x27;s hardware, so 30 lookups per hour is probably more than a typical user would do.)<p>Edit: asterisk doesn&#x27;t work as a footnote symbol here...