[Django]-How to deploy a multi-tenant django app to AWS?

2👍

The following should help:

  • Set up your .ebextensions so your Django project deploys with eb deploy.
  • Set up django-storages with AWS S3 for mediafiles if you need to.
  • Purchase a domain and set it up with AWS Route 53 (you can buy via Route 53, too).
  • Point your root domain alias to your Elastic Beanstalk app.
  • Point a wildcard domain to your app, too.
  • Set up AWS SES to save your domain emails to an AWS S3 bucket. You can use other providers as well, SES is just about the easiest.
  • Provision AWS ACM certificates for HTTPS support.

You now have your site working under .example.com and can use tenant.example.com to refer to a single client’s setup – it refers to the same deployment but has a different Host header which lets Django tenant schemas to distinguish clients. You have wildcard forwards and do not need any setup other than in Django for adding new tenants.

Leave a comment