[PYTHON] Comment déployer une application Django dans le cloud Alibaba

Cet article décrit comment lancer et déployer une application ** Django ** sur Alibaba Cloud.

Ce blog est une traduction de la version anglaise. Vous pouvez vérifier l'original depuis ici. Certaines traductions automatiques sont utilisées. Nous vous serions reconnaissants de bien vouloir signaler toute erreur de traduction.

Conditions préalables

Comme premier prérequis, virtualenv et [virtualenv wrapper](https: // virtualenvwrapper) pour les applications basées sur Python Vous devez installer .readthedocs.io / en / latest /? Spm = a2c65.11461447.0.0.28a16cabOLprE3) pour créer un environnement distinct pour votre projet Python. Pour faire ça, suit les étapes suivantes.

--Installez pip

sudo apt-get install python-pip

--Installation de virtualenv

sudo pip install virtualenv

--Créez un dir pour stocker les virtualenvs.

mkdir ~/.virtualenvs

--Installation de virtualenvwrapper

sudo pip install virtualenvwrapper

--Définissez WORKON_HOME dans le répertoire virtualenv

export WORKON_HOME=~/.virtualenvs

--Ajoutez virtualenvwrapper.sh à .bashrc. Ajoutez cette ligne à la fin de ~ / .bashrc pour que la commande virtualenvwrapper soit chargée.

/usr/local/bin/virtualenvwrapper.sh

Quittez le shell et rouvrez-le, ou rechargez .bashrc avec la commande .bashrc ou source ~ / .bashrc et vous êtes prêt à partir.

  1. Installez git.
apt-get install git
  1. Installez Nginx en tant que serveur Web et permettez aux applications de s'exécuter derrière lui.
Sudo apt-get install nginx

procédure

Commençons maintenant par configurer et lancer l'instance Alibaba Cloud ECS.

Lancement de la première instance Linux

Jetons un coup d'œil rapide aux étapes pour exécuter une instance ECS à l'aide de la console de gestion Alibaba Cloud.

  1. Connectez-vous à votre compte et dans la section ** Produits et services **, [Elastic Compute Service](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A%2F%2Fecs.console. Accédez à aliyun.com% 2F% 3Fspm% 3Da2c65.11461447.0.0.28a16cabOLprE3 & lang = ja). Cliquez sur ** Aperçu ** dans le menu de la barre latérale. Une liste des instances déjà en cours d'exécution s'affiche. Cliquez sur ** Acheter une instance ** pour acheter une instance dans n'importe quelle région ou passez à l'étape suivante pour créer une nouvelle instance.

image.png

  1. Cliquez sur ** Instances ** dans le menu de la barre latérale. Sélectionnez la région requise dans la liste des instances et cliquez sur Créer une instance (https://www.alibabacloud.com/help/ja/doc-detail/92990.html) dans la barre supérieure droite.

image.png

  1. ** Achat de produit ** Vous serez redirigé vers la console, vous devrez donc sélectionner le package souhaité, mais l'option ** Lancement rapide ** (offre des prix spéciaux pour les instances ECS et les transferts de données), Ou vous pouvez choisir l'une des options ** Lancement personnalisé ** (qui ont deux modèles de tarification différents). Plus précisément, vous pouvez choisir de payer mensuellement ou annuellement, ou de payer à l'utilisation, selon vos besoins. Dans ce tutoriel, nous avons choisi ** Pay-As-You-Go ** comme méthode de facturation.

image.png

  1. Dans cette fenêtre, sélectionnez ** Datacenter Region ** et ** Zone ** pour lancer l'instance ECS. Si vous sélectionnez ** Région ** et non ** Zone **, l'instance sera placée dans une zone aléatoire.

image.png

  1. Vous devez maintenant sélectionner le ** type d'instance ** que vous souhaitez créer. En fonction de vos besoins, sélectionnez le type de génération de votre instance dans l'onglet ** Génération **. Les types de génération représentent différents types d'instances en fonction de la configuration et de la puissance de calcul utilisées.

  2. Sélectionnez ensuite ** Type de réseau ** pour lancer l'instance ECS. Selon vos besoins, il peut s'agir soit de ** Classic Network **, soit de VPC. Dans ** Classic Network **, Alibaba Cloud attribue les adresses IP de manière décentralisée. Convient aux utilisateurs qui ont besoin d'un [ECS] simple et rapide (https://www.alibabacloud.com/en/product/ecs). ** VPC ** est un réseau privé logiquement isolé qui prend en charge les connexions dédiées. Convient aux utilisateurs habitués à des processus de gestion de réseau plus complexes.

image.png

  1. Vous devez maintenant sélectionner ** Système d'exploitation **. Sous chaque option se trouve une liste des différentes versions du système d'exploitation. Sélectionnez l'option ** Ubuntu **.

image.png

  1. Sélectionnez le type ** Disque système ** dans le menu déroulant selon vos besoins. Vous pouvez également cliquer sur ** Ajouter un disque ** pour ajouter un disque à cette liste.

  2. Dans la section Paramètres de sécurité, vous pouvez créer un mot de passe pour plus de sécurité.

image.png

  1. Dans la section ** Plan d'achat **, entrez un nom pour l'instance et définissez le nombre d'instances à lancer.

image.png

  1. Vérifiez les détails de la configuration et le prix total dans la section ** Présentation ** et cliquez sur ** Acheter maintenant **.

  2. Cliquez sur ** Activer ** pour confirmer votre commande et lancer l'instance.

  3. Une fois l'instance lancée, vous pouvez la voir dans l'onglet ** Instances ** de la console.

image.png

Installer et déployer des applications Django

[Alibaba Cloud Management Console](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A%2F%2Fhome-intl.console.aliyun.com%2F%3Fspm%3Da2c65.11461447.0.0.28 Maintenant que nous avons créé et lancé une instance ECS en utilisant a16cabOLprE3 & lang = ja), voyons comment installer et déployer l'application Django.

  1. Connectez-vous au serveur à l'aide des commandes SSH.

image.png

  1. Entrez votre mot de passe.

image.png

  1. Créez une nouvelle virtualenv et configurez l'environnement de déploiement de l'application Django.
mkvirtualenv DjangoApp 

Utilisez disable pour terminer le nouveau virtualenv. Vous pouvez désormais changer d'environnement avec workon. Utilisez la commande workon pour charger et basculer virtualenv.

workon DjangoApp 
  1. Installez Django dans votre environnement actuel.
pip install Django
  1. Créez un ** exemple de projet ** avec la commande django-admin et remplacez le répertoire par le dossier du projet.
django-admin startproject todoApp
cd todoApp/
  1. Migrez ou amorcez la base de données.
python manage.py migrate 
  1. Créez un superutilisateur pour accéder au panneau d'administration.
python manage.py createsuperuser
  1. Après avoir configuré l'utilisateur, testez l'application en exécutant la commande runerver traitée par manage.py.
python manage.py runserver 0.0.0.0:8000

Vous pouvez voir qu'il est exécuté sur le port 8000 comme suit.

image.png

Vous pouvez gérer votre application en accédant à votre panneau d'administration ** / admin **.

image.png

Utilisez maintenant Nginx (https://www.nginx.com/?spm=a2c65.11461447.0.0.28a16cabOLprE3) pour placer l'application derrière le serveur Web.

  1. Créez un schéma de base de données et activez l'environnement Python. Vous pouvez le faire en suivant les étapes ci-dessous.

--Change de répertoire vers le répertoire de projet Django --Exécutez la commande suivante

  python manage.py migrate
  1. Collectez tous les fichiers statiques, y compris les fichiers CSS et JS. Vous pouvez le faire en suivant les étapes ci-dessous. image.png
Python manage.py collectstatic --noinput

1、STATIC_URL 2、STATICFILES_DIRS 3、STATIC_ROOT

image.png

  1. Installez la bibliothèque ** uwsgi ** et utilisez ** uwsgi server ** pour démarrer le serveur. Vous pouvez le faire en suivant les étapes ci-dessous.
 pip install uWSG

Créez un fichier ** ini ** à utiliser pour déployer l'application django.

 vim uwsgi.ini

image.png

--Enregistrer dans ʻuwsgi.ini de ʻapplication dir. Voir ** Démarrage rapide de l'application Python / WSGI ** pour savoir comment écrire un fichier ini. Exécutez la commande suivante pour démarrer l'application.

uwsgi uwsgi.ini (your ini file)
  1. Modifiez le fichier de configuration nginx qui fournit l'application.
server   {       listen 80 default_server;                listen [::]:80 default_server ipv6only=on;                server_name localhost;  location /static/   {                    include uwsgi_params;                    alias /root/todoApp/public/;  } location  /    {                    include uwsgi_params;                    uwsgi_pass unix:/tmp/uwsgi.sock; } } 
  1. Après avoir redémarré nginx, l'application s'exécute derrière nginx sur le port 80.

image.png

Conclusion

Cet article décrit comment déployer une application Django sur Alibaba Cloud. En résumé, la première étape pour ce faire était de lancer et d'exécuter une instance ECS avec Ubuntu comme système d'exploitation, puis d'installer et de déployer l'application Django sur cette instance. Gardez à l'esprit que dans le cadre des prérequis de ce didacticiel, vous devez avoir terminé le déploiement et disposer d'un compte Alibaba Cloud valide.

Vous trouverez ci-dessous une liste de produits liés à ce tutoriel qui vous aideront à déployer votre application Django dans des scénarios de production.

Recommended Posts

Comment déployer une application Django dans le cloud Alibaba
Comment déployer une application Web sur Alibaba Cloud en tant que pigiste
Comment déployer une application Django sur heroku en seulement 5 minutes
Comment déployer une application Streamlit sur GCP (GAE)
Déployer l'application Django sur Google App Engine (Python3)
Comment créer un environnement Django (python) sur Docker
Comment déployer une application Go sur une instance ECS
Comment exécuter Django sur IIS sur un serveur Windows
Comment exécuter une application Django sur un conteneur Docker (environnement de développement et de production)
Déployer l'application Django avec Docker
Déployer l'application Django sur Heroku
Comment déployer django-compresseur sous Windows
Déployer l'application Django sur EC2 avec Nginx + Gunicorn + Supervisor
Comment tester sur une page authentifiée par Django
Comment créer une application à partir du cloud à l'aide du framework Web Django
Comment développer une application de panier avec Django
Comment vivre une vie décente avec Windows 2017
Comment créer une API Rest dans Django
Comment installer Fast.ai sur le GPU Alibaba Cloud et l'exécuter sur un ordinateur portable Jupyter
Déployer des applications Web Python 3.6 / Django / Postgres sur Azure
(Python) Essayez de développer une application Web en utilisant Django
Comment installer Linux sur un PC UEFI 32 bits
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Comment utiliser Django avec Google App Engine / Python
Déployer l'application Django créée avec PTVS sur Azure
Comment référencer des fichiers statiques dans un projet Django
Comment créer un environnement Python sur Amazon Linux 2
Comment configurer une passerelle VPN pour établir une connexion entre Alibaba Cloud et AWS
Comment appeler une fonction
Comment s'inscrire auprès de pypi
Comment pirater un terminal
Déployer le projet django sur heroku
Comment utiliser GitHub sur un serveur multi-personnes sans mot de passe
Comment déployer une application Web créée avec Flask sur Heroku
Comment utiliser Fujifilm X-T3 comme webcam sur Ubuntu 20.04
Une note sur la façon de préparer facilement un environnement de pratique Linux
Comment exécuter un modèle de transformateur entraîné localement sur CloudTPU
Comment créer un nouvel environnement virtuel Python sur Ubuntu
Comment convertir un tableau en dictionnaire avec Python [Application]
Ne perdez pas contre Ruby! Comment exécuter Python (Django) sur Heroku
Crypter ACME avec Alibaba Cloud: concepts liés aux certificats SSL
Comment créer un jeu d'action multijoueur en ligne avec Slack
Comment déployer Pybot, le manuel Python le plus simple, sur Heroku
Comment monter un répertoire Windows 10 sur Ubuntu-Server 20.04 sur VMware Workstation 15.
Remarques sur la façon de charger un environnement virtuel avec PyCharm
Comment générer une requête à l'aide de l'opérateur IN dans Django
Comment enregistrer un package dans PyPI (à partir de septembre 2017)
Pour déployer des applications Java sur VPS (installation / liaison Apache / Tomcat)
Comment se connecter à Cloud SQL PostgreSQL sur Google Cloud Platform à partir d'un environnement local avec Java
[Modèle de code] Comment déployer un exemple d'application d'échange sur OpenShift sur IBM Cloud à l'aide de Red Hat Universal Base Image (UBI)
Comment faire une traduction japonais-anglais
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
[Django] Comment tester le formulaire [TDD]
Comment mettre un lien symbolique
Remarque sur la façon de vérifier la connexion au port du serveur de licences
Comment installer mysql-connector-python sur Mac
Étapes pour créer un projet Django
Comment utiliser Dataiku sous Windows