[PYTHON] Construction et déploiement faciles du serveur Web avec EB CLI + git + Django

N'est-il pas vraiment ennuyeux de créer un environnement de serveur ou de créer un outil de déploiement? Cette fois, j'aimerais créer et déployer facilement un serveur à l'aide du service AWS "Elastic Beans Talk" (ci-après EB) qui résout ces problèmes. De plus, j'aimerais utiliser l'interface de ligne de commande EB, qui vous permet d'utiliser EB à partir de la ligne de commande, sans utiliser la console gérée par AWS.

aeb-architecture2.png

Je souhaite utiliser la configuration minimale Django pour l'environnement Django. http://qiita.com/yu-sa/items/26e413987efa0debc9d7

Si vous ne disposez pas d'un environnement AWS, vous pouvez essayer de créer un environnement gratuitement à l'aide de qwikLabs. https://qwiklabs.com/focuses/2356

Environnement prérequis

mac os x 10.9.5 EB CLI 3.7.6 AWS CLI 1.10.26

Django & python python 2.7.10 Django 1.9

Environnement Django

Je vais cloner l'environnement Django.

# git clone https://github.com/yu-sa/my_site.git

La structure des dossiers est

my_site(Dossier de travail)
├─my_site
│ ├─ __init__.py
│ ├─settings.py
│ ├─templates
│ │ └─index.html
│ ├─urls.py
│ ├─views
│ │ ├─__init__.py
│ │ ├─index.py
│ │ └─urls.py
│ └─wsgi.py
├─requirements.txt
└─manage.py

Veuillez vous déplacer vers le dossier de travail ci-dessus et effectuer le travail suivant.

Paramètres de l'AWS CLI

Configurez l'AWS CLI. Définissez le compte auquel accéder et utilisez le service pour exécuter des commandes avec l'interface de ligne de commande EB.

# aws configure
AWS Access Key ID [********************]: xxxxxxxxxxxx #ID de la clé d'accès
AWS Secret Access Key [********************]: xxxxxxxxxxxxxxxxxxxxxxxxx #Clé d'accès secrète
Default region name [ap-northeast-1]: ap-northeast-1 #Région de Tokyo
Default output format [json]: json

Paramètres de l'interface de ligne de commande EB

Configurez également l'interface de ligne de commande EB.

# eb init -i
Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-southeast-1 : Asia Pacific (Singapore)
7) ap-southeast-2 : Asia Pacific (Sydney)
8) ap-northeast-1 : Asia Pacific (Tokyo)
9) ap-northeast-2 : Asia Pacific (Seoul)
10) sa-east-1 : South America (Sao Paulo)
11) cn-north-1 : China (Beijing)
(default is 3): 8

Select an application to use
1) my_site
2) [ Create new Application ]
(default is 1): 1

It appears you are using Python. Is this correct?
(y/n): y

Select a platform version.
1) Python 3.4
2) Python
3) Python 2.7
4) Python 3.4 (Preconfigured - Docker)
(default is 1): 3

Do you want to set up SSH for your instances?
(y/n): y

Select a keypair.
1) qwikLABS-L98-469340
2) [ Create new KeyPair ]
(default is 2): 2

Type a keypair name.
(Default is aws-eb): aws-eb

Generating public/private rsa key pair.
/Users/xxxxxxxxx/.ssh/aws-eb already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): (Entrez sans rien remplir)
Enter same passphrase again: (Entrez sans rien remplir)

Création et configuration de .ebextensions

Vous pouvez personnaliser les paramètres en ajoutant .ebextensions dans le fichier de paramètres AWS Elastic Beanstalk. Nous apporterons des modifications supplémentaires pour utiliser l'environnement Django utilisé cette fois.

Le fichier de configuration est créé en étendant .config.

# mkdir .ebextensions
# vi .ebextensions/django.config

Veuillez remplir le contenu suivant dans [.ebextensions / django.conf].

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "my_site.settings"
  "aws:elasticbeanstalk:container:python":
    WSGIPath: "my_site/wsgi.py"

Création EB

Puisque tous les paramètres, etc. sont terminés, créons un environnement EB et construisons automatiquement un environnement de serveur Web.

# eb create my-site-dev --timeout 9000

Si vous appuyez sur cette commande, la construction de l'environnement commencera telle quelle. Cela peut prendre 10 minutes ou plus pour terminer la construction de l'environnement, alors laissez-le pendant un moment.

Si vous souhaitez vérifier si l'environnement a été créé, veuillez vérifier l'environnement créé dans Elastic Beanstalk de la console gérée AWS.

スクリーンショット 2016-05-25 11.10.20.png

Vérification

Une fois l'environnement construit, je voudrais consulter la page correspondante.

# eb open my-site-dev

Lorsque vous appuyez sur cette commande, le navigateur s'ouvre et la page suivante s'affiche.

スクリーンショット 2016-05-25 11.13.26.png

Si vous ajoutez / views / à l'URL ci-dessus, la page suivante s'affichera. スクリーンショット 2016-05-25 11.18.39.png

Ceci termine la construction de l'environnement.

Postscript

Ce qui précède ne construit que l'environnement de serveur Web, pas l'environnement de base de données. Je voudrais écrire sur l'utilisation de RDS, etc. pour utiliser à nouveau l'environnement mysql.

Après cela, je vais mettre en place le module qui a l'environnement tel que le paramètre d'environnement eb sur github, donc si vous voulez l'utiliser, veuillez le cloner. https://github.com/yu-sa/my_site/tree/elasticbeanstalk

De plus, si vous mettez à jour la source, vous pouvez également déployer avec ʻeb deploy my-site-dev` après avoir été engagé avec git. Cela prend environ 5 minutes.

Recommended Posts

Construction et déploiement faciles du serveur Web avec EB CLI + git + Django
Commentaire sur la construction du serveur Web
Construction du serveur Web Ubuntu (18.04.3)
Application Web réalisée avec Python3.4 + Django (Construction de l'environnement Part.1)
Configurer un serveur Web avec CentOS7 + Anaconda + Django + Apache
Créer une application Web avec Django
Grattage Web facile avec Scrapy
Serveur HTTP facile avec Python
Web en temps réel avec les chaînes Django
Construction de serveur Web Linux (Ubuntu et Apache)
Construction d'un environnement Jupyter facile avec Cloud9
Construire un serveur avec CONOHA VPS (CentOS)
Créer une application Web avec Django
Construire un serveur VPN avec Raspberry Pie
Environnement de déploiement facile avec gaffer + tissu
Serveur Web pour tester le navigateur avec Mocha
Django + Apache avec mod_wsgi sur Windows Server 2016
Application Web facile avec Python + Flask + Heroku
Construction du serveur d'exécution Python (Python + uWSGI + Django + Nginx)
Scraping Web facile avec Python et Ruby
J'ai fait une application WEB avec Django
Construire un serveur Web avec Apache 2.4 (httpd 2.4.43) + PHP 7.4 sous Linux --4 Security (chown et firewalld)
Essayez de créer une application Web avec Vue.js et Django (édition Mac) - (1) Construction d'environnement, création d'application