Technologie

Ce service d’orchestration AWS vous permet d’être agile!

Ce service d’orchestration AWS vous permet d’être agile!


Il est si courant qu'un chercheur en données doit créer une application de tableau de bord Web ou une preuve de concept fonctionnelle. Comme la plupart des choses que font les scientifiques, cela devrait être fait de manière agile et soignée. Lors de mon dernier projet, il m'a été demandé de créer un tableau de bord pour un modèle dynamique de système à utiliser dans un atelier comme preuve de concept. Dans ce travail, j'ai créé un tableau de bord en utilisant Django avec des diagrammes visualisés en utilisant plotly. Django propose diverses applications pour le développement de tableaux de bord, telles que Django-controlcentre, Django-dash, les outils d'administration Django, etc. Vous pouvez en trouver une liste dans ce lien.

La maintenance et le déploiement sont toujours une préoccupation majeure lorsque vous développez une application de manière agile. En pratique, en raison de la nature de ces types de travaux, il n’ya pas assez d’argent à dépenser pour le déploiement et la maintenance. Par conséquent, vous avez besoin d'une solution qui vous permette de déployer votre application très rapidement et de la laisser passer sous utilisation avec un minimum de maintenance!

AWS Elastic Beanstalk vous fournit cette solution. C'est un service d'orchestration qui permet aux utilisateurs de déployer leurs applications très rapidement. Il s’agit d’un service d’orchestration car il est fourni avec la connectivité et l’intégration à de nombreux autres services AWS tels que EC2, S3, le service de notification simple (SNS), CloudWatch, le calibrage automatique et Elastic Load Balancers. Il fournit également un accès à divers services AWS, tels que les services RDS (Relation Database Services), qui fournissent aux utilisateurs des services de base de données entièrement gérés. Il est rapide et simple tout en prenant en charge l’équilibrage de la charge ainsi que l’extension automatique de votre application.

Figure 1: Avantages EB. Source: AWS

Vous devez créer une application dans Elastic Beanstalk. Vous pouvez ensuite créer très rapidement différents environnements, tels que le développement, les tests et la production, dans cette application. La figure 2 illustre le fonctionnement conceptuel d’Elastic Beanstalk. Tout est entièrement géré par Elastic Beanstalk, ce qui en fait un charme absolu! Peut-être avez-vous seulement besoin de vous familiariser avec cela au début. Après cela, c'est assez simple.

Figure 2: Vue d'ensemble du processus d'utilisation d'Elastic Beanstalk. Source: AWS

Dans mon cas, je devais seulement installer EB CLI et l’utiliser pour initialiser, créer et déployer mon application en suivant les étapes indiquées dans ce lien. Il va sans dire que vous pouvez traiter certains problèmes sur le chemin de la création de votre environnement. Je mentionne certains des problèmes courants auxquels vous devrez peut-être faire face, comme suit:

  • Vous devez vous assurer que l'instance AWS allouée a été configurée dans votre fichier settings.py en tant que ALLOWED_HOSTS:
ALLOWED_HOSTS = ['127.0.0.1','xxxxx.xxx.ap-xxx-x.elasticbeanstalk.com']

Plus d'informations: https://stackoverflow.com/questions/34428877/django-allowed-host-setting-for-elastic-beanstalk-instance-hind-elastic-load-b

  • Assurez-vous d’ajouter des fichiers nouveaux et modifiés à la zone de transfert et de valider vos modifications avant de déployer la nouvelle version de votre code. Voir ce document pour utiliser EB CLI et Git. N'oubliez pas que vous devez d'abord initialiser votre représentant Git et valider toutes les modifications avant le déploiement.
  • Lorsque vous initialisez votre application, assurez-vous que vous utilisez la bonne version de python:
eb init -p python-3.6 sd-tableau de bord
  • Assurez-vous de créer le fichier Django.config dans le dossier .ebextensions du répertoire racine de votre projet Django et non dans le dossier de discussion .elasticbeans. Ce fichier de configuration fournit à l'EB les informations requises sur l'emplacement du fichier Django wsgi.
option_settings:
aws: elasticbeanstalk: conteneur: python:
WSGIPath: system_dynamic_dashboard / wsgi.py
  • Les fichiers statiques doivent être configurés comme suit:
STATIC_URL = '/ assets /'
STATIC_ROOT = os.path.join (BASE_DIR, 'assets')
# puis dans django.config, vous devriez avoir quelque chose de similaire à:
option_settings:
aws: elasticbeanstalk: conteneur: python:
WSGIPath: system_dynamic_dashboard / wsgi.py
"aws: elasticbeanstalk: conteneur: python: staticfiles":
/ assets /: "assets /"
  • La configuration de la base de données peut être effectuée dans la console EB. Dans «Configurations», créez votre base de données.

La base de données est créée dans le cadre du «service RDSA (AWS)» et vous pouvez effectuer d'autres configurations à cet endroit. Si vous souhaitez utiliser la même base de données au cours du développement, vous devez vous assurer que les bons accès au port ont été attribués à l'instance. Cela peut être fait dans la console AWS RDS où vous choisissez votre base de données et ajoutez les «règles de groupe de sécurité» requises. Vous devez avoir la configuration suivante dans settings.py:

si 'RDS_HOSTNAME' dans os.environ:
BASES DE DONNÉES = {
'défaut': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NOM': os.environ['RDS_DB_NAME'],
'UTILISATEUR': os.environ['RDS_USERNAME'],
'MOT DE PASSE': os.environ['RDS_PASSWORD'],
'HOST': os.environ['RDS_HOSTNAME'],
'PORT': os.environ['RDS_PORT'],
}
}

Le lien suivant explique également le déploiement d’une application Django dans EB:

https://realpython.com/deploying-a-django-app-and-postgresql-to-aws-elastic-beanstalk/

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close