Bottom line: He recommends building your services to use AWS EC2, DynamoDB, etc but avoiding abstractions such as Lambda and API Gateway. There’s an interesting discussion on this thread on HN: https://news.ycombinator.com/item?id=20545561 .
I spent today morning pulling my hair out trying to get a Python 3 application running within AWS’ Cloud9 IDE. Essentially the problem is that if you pip install some-package, that package only becomes available within the Python 2 runner, not within the Python 3 runner (the current Cloud9 machine image includes Python 2 aliased as python, and Python 3 available through python3).
Fortunately for me, someone else had the same problem, and an Amazon staffer suggests creating a virtual environment: https://forums.aws.amazon.com/thread.jspa?messageID=822214&tstart=0 . I followed the steps mentioned, but it didn’t work – pip still installed dependencies for Python 2. I wonder if this staffer forgot to mention another step, such as remapping the pip command to a Python 3 install.
What finally did work was calling the pip command through the python3 interpreter, like so: