There are some tutorials on deploying Django to AWS Elastic Beanstalk out there, but they are confusing, use python2, too in-depth, or outdated. I've decided to make a simplified tutorial for people deploying to Elastic Beanstalk with Django for the first time. I remember my first Django deploy to AWS EB, and it was NOT fun.

What are we going to be doing in this tutorial?

We're going to deploy a Django server (the best kind, semi-biased...) to Amazon Web Services Elastic Beanstalk, using python 3 and also have static files and a PostgreSQL database. Pretty cool right? Well that's not all, there's also a surprise at the end of the article, but you can't look until you finish everything else! I promise it will be worth it.

Setting up your Django project

- Create Environment - Migrate and Run

Deploying to AWS Elastic Beanstalk

- Create AWS Account - Install the Elastic Beanstalk CLI - Separate Settings Files - Setup Elastic Beanstalk - Create Elastic Beanstalk Project - Create IAM user - Set Configuration Variables - Deploy to Elastic Beanstalk

Adding a PostgreSQL database

- Create PostgreSQL Database - Set Server Packages - Update Django Settings

What about the Static Files

Add Deployment Commands

And now... the surprise