Run on AWS
Let’s run the Django App in production on AWS.
AWS Setup
Update Credentials
To run on AWS, you need one of the following:
- The
~/.aws/credentials
file with your AWS credentials - or
AWS_ACCESS_KEY_ID
+AWS_SECRET_ACCESS_KEY
environment variables
To create the credentials file, install the aws cli and run aws configure
Update region and subnets
Add 2 subnets to the workspace/settings.py
file (required for ECS services)
Please check that the subnets belong to the selected aws_region
Update Secrets
RDS database password
Update the RDS database password in workspace/secrets/prd_db_secrets.yml
App secrets
Add any other secrets used by your app to workspace/secrets/prd_app_secrets.yml
Create AWS resources
Create AWS resources using:
This will create:
- ECS Cluster for the application.
- ECS Task Definitions and Services that run the application on the ECS cluster.
- LoadBalancer to route traffic to the application.
- Security Groups that control incoming and outgoing traffic.
- Secrets for managing application and database secrets.
- RDS Database for Knowledge Base and Storage.
Press Enter to confirm and grab a cup of coffee while the resources spin up.
- The RDS database takes about 5 minutes to activate.
- These resources are defined in the
workspace/prd_resources.py
file. - Use the ECS console to view services and logs.
- Use the RDS console to view the database instance.
Production Django app
Open the LoadBalancer DNS to view your Django App running on AWS.
Production Django Admin
Open the LoadBalancer DNS + /admin
page to view the Django admin site.
Create an admin user by SSH-ing into the production container:
Log in to the admin panel:
Update Production
Follow this guide to update your production application. You'll need to:
- Create a new image
- Update the ECS Task Definition and Services.
Delete AWS resources
Play around and then delete AWS resources using:
or delete individual resource groups using:
Next
Congratulations on running your Django App on AWS. Next Steps:
- Read how to update workspace settings
- Read how to create a git repository for your workspace
- Read how to manage the production application
- Read how to format and validate your code
- Read how to add python libraries
- Read how to add a custom domain and HTTPS
- Read how to implement CI/CD
- Chat with us on discord
Was this page helpful?