Apologies on the lay reply.
Your app is significantly bigger than ours, so grain of salt.
We play very close attention to what's loaded on startup. There are two key tricks.
1. Heavy libraries/packages load at runtime and are only in the "background job" codepath.
def my_heavy_func():
from heavy_library import sum_heavy_function
sum_heavy_function()
vs the import at top of file.
2. Limit which apps are loaded via `INSTALLED_APPS`, again no heavy packages.
Lambda is SUPER nice for us. The bottleneck becomes the DB. Webserver can basically never go down on its own as you can create 1000x by default.
Best of Luck!