Deploying a Django app on AWS
Prerequisites
Install Python
Check for python and pip, and their versions:
$ python --verison $ pip --version
Python 3.x
Python 3.x is often invoked as python3.
$ python3 --verison
If Python 3 is not installed:[1]
$ sudo yum list | grep python3 $ sudo yum install python34 # or relevant version
Create a virtual Python environment for the EC2 instance
Install virtualenv if needed:
$ which virtualenv $ pip install virtualenv
Create the virtual Python Environment[2]
$ virtualenv -p python3.4 /tmp/py34_nrose_env
Where py34_nrose_env is a name that makes sense for the app's virtual environment.
Start the virtual environment:
$ . /tmp/eb_python_app/bin/activate
Confirm the Python version:
$ python --version
Install AWS Elastic Beanstalk CLI [3]
I couldn't get the following command to work until I switched to the Python 3.4 virtual environment.
$ pip install awsebcli
Confirm the installation with eb --version
Install Django[4]
(Make sure to use the virtual Python 3 environment.)
$ pip install django
Confirm the installation with
$ pip freeze | grep -i django Django==1.9.2
Install Git
$ sudo yum install git-all
Deploying a Django app
Installing and updating project files
ssh to the AWS server.
Invoke the virtual Python 3.x environment.
Use Git to pull from the project repository.
Installing Django app dependencies
See Defining Django App Dependencies
Notes
See also
- Deploying a Django Application - AWS Elastic Beanstalk documentation
- Common Steps for Deploying Python Applications - AWS Elastic Beanstalk documentation
- Installing Python - AWS Elastic Beanstalk documentation
References
- ↑ How do I install python3 on an AWS instace (Stackoverflow)
- ↑ Setting up a virtual Python environment (AWS documentation)
- ↑ Installing the AWS Elastic Beanstalk CLI (AWS documentation)
- ↑ Install Django (Deploying a Django Application - AWS Elastic Beanstalk)