2017-01-01 5 views
3

J'ai une application Django + Postgres qui a une structure multi-locataire et je n'ai pas d'expérience dans le déploiement de ce type d'application sur AWS. J'ai suivi le tutoriel général Elastic Beanstalk pour déployer une application simple. (https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-beanstalk/) Cependant, je suis à la recherche d'une solution qui me permette de créer de manière plus flexible différents "sites". Actuellement, j'ai appris à créer différents sites via ce tutoriel (http://mycodesmells.com/post/django-tutorial-multi-tenant-setup).Comment déployer une application django multi-tenant vers AWS?

j'ai donc ci-dessous les questions:

  1. comment déployer cette application (je me penche vers ne pas utiliser Elastic Beanstalk mais juste le déployer sur EC2)
  2. comment je pourrais créer différents sites après le déploiement de cette application .

Répondre

2

Ce qui suit devrait aider:

  • Configurez votre .ebextensions afin que votre projet Django se déploie avec eb deploy. Configurez django-storages avec AWS S3 pour les fichiers multimédia si nécessaire.
  • Achetez un domaine et configurez-le avec AWS Route 53 (vous pouvez également l'acheter via Route 53).
  • Pointez l'alias de votre domaine racine vers votre application Elastic Beanstalk.
  • Pointez également un domaine générique sur votre application.
  • Configurez AWS SES pour enregistrer vos e-mails de domaine dans un compartiment AWS S3. Vous pouvez également utiliser d'autres fournisseurs, SES est à peu près le plus facile.
  • Fournissez des certificats AWS ACM pour la prise en charge HTTPS.

Vous avez maintenant votre site de travail sous .example.com et peut utiliser tenant.example.com pour se référer à la configuration d'un seul client - il fait référence au même déploiement, mais a un en-tête Host différent qui permet des schémas de locataires de Django pour distinguer les clients. Vous avez des jokers en avant et n'avez besoin d'aucune configuration autre que Django pour ajouter de nouveaux locataires.