[PYTHON] Einfache Erstellung und Bereitstellung von Webservern mit EB CLI + git + Django

Ist es nicht wirklich ärgerlich, eine Serverumgebung zu erstellen oder ein Bereitstellungstool zu erstellen? Dieses Mal möchte ich einfach einen Server mit dem AWS-Dienst "Elastic Beans Talk" (im Folgenden EB) erstellen und bereitstellen, der solche Probleme löst. Außerdem möchte ich die EB-CLI verwenden, mit der Sie EB über die Befehlszeile bedienen können, ohne die von AWS verwaltete Konsole zu verwenden.

aeb-architecture2.png

Ich möchte die Mindestkonfiguration Django für die Django-Umgebung verwenden. http://qiita.com/yu-sa/items/26e413987efa0debc9d7

Wenn Sie keine AWS-Umgebung haben, können Sie versuchen, mit qwikLabs kostenlos eine Umgebung zu erstellen. https://qwiklabs.com/focuses/2356

Voraussetzung Umgebung

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

Django-Umgebung

Ich werde die Django-Umgebung klonen.

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

Die Ordnerstruktur ist

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

Bitte gehen Sie in den obigen Arbeitsordner und führen Sie die nachfolgenden Arbeiten aus.

AWS CLI-Einstellungen

Richten Sie die AWS CLI ein. Legen Sie fest, auf welches Konto zugegriffen werden soll, und verwenden Sie den Dienst, um Befehle mit der EB-CLI auszuführen.

# aws configure
AWS Access Key ID [********************]: xxxxxxxxxxxx #Zugriffsschlüssel-ID
AWS Secret Access Key [********************]: xxxxxxxxxxxxxxxxxxxxxxxxx #Geheimer Zugangsschlüssel
Default region name [ap-northeast-1]: ap-northeast-1 #Region Tokio
Default output format [json]: json

EB CLI-Einstellungen

Konfigurieren Sie auch die EB-CLI.

# 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): (Geben Sie ein, ohne etwas auszufüllen)
Enter same passphrase again: (Geben Sie ein, ohne etwas auszufüllen)

Erstellen und Konfigurieren von .ebextensions

Sie können die Einstellungen anpassen, indem Sie .ebextensions in die AWS Elastic Beanstalk-Einstellungsdatei einfügen. Wir werden zusätzliche Änderungen vornehmen, um die diesmal verwendete Django-Umgebung zu verwenden.

Die Konfigurationsdatei wird durch Erweitern von .config erstellt.

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

Bitte füllen Sie den folgenden Inhalt in [.ebextensions / django.conf] aus.

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

EB-Erstellung

Da alle Einstellungen usw. abgeschlossen sind, erstellen wir eine EB-Umgebung und erstellen automatisch eine Webserverumgebung.

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

Wenn Sie diesen Befehl drücken, wird die Umgebungskonstruktion unverändert gestartet. Es kann 10 Minuten oder länger dauern, bis der Umgebungsaufbau abgeschlossen ist. Lassen Sie ihn daher bitte eine Weile stehen.

Wenn Sie überprüfen möchten, ob die Umgebung erstellt wurde, überprüfen Sie die in Elastic Beanstalk der AWS-verwalteten Konsole erstellte Umgebung.

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

Bestätigung

Sobald die Umgebung erstellt ist, möchte ich die entsprechende Seite überprüfen.

# eb open my-site-dev

Wenn Sie diesen Befehl drücken, wird der Browser geöffnet und die folgende Seite wird angezeigt.

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

Wenn Sie der obigen URL / views / hinzufügen, wird die folgende Seite angezeigt. スクリーンショット 2016-05-25 11.18.39.png

Damit ist der Umgebungsaufbau abgeschlossen.

Nachtrag

Das obige erstellt nur die Webserverumgebung, nicht die DB-Umgebung. Ich möchte über die Verwendung von RDS usw. schreiben, um die MySQL-Umgebung wieder zu verwenden.

Danach werde ich das Modul einrichten, das die Umgebung wie die eb-Umgebungseinstellung auf github hat. Wenn Sie es also verwenden möchten, klonen Sie es bitte. https://github.com/yu-sa/my_site/tree/elasticbeanstalk

Wenn Sie die Quelle aktualisieren, können Sie sie auch mit "eb deploy my-site-dev" bereitstellen, nachdem Sie mit git festgeschrieben haben. Es dauert ungefähr 5 Minuten.

Recommended Posts

Einfache Erstellung und Bereitstellung von Webservern mit EB CLI + git + Django
Kommentar zum Aufbau des Webservers
Ubuntu (18.04.3) Webserverkonstruktion
Webanwendung erstellt mit Python3.4 + Django (Teil.1 Umgebungskonstruktion)
Richten Sie einen Webserver mit CentOS7 + Anaconda + Django + Apache ein
Erstellen Sie eine Webanwendung mit Django
Einfaches Web-Scraping mit Scrapy
Einfacher HTTP-Server mit Python
Echtzeit-Web mit Django-Kanälen
Aufbau eines Linux-Webservers (Ubuntu & Apache)
Einfache Jupyter-Umgebungskonstruktion mit Cloud9
Erstellen eines Servers mit CONOHA VPS (CentOS)
Erstellen Sie eine Webanwendung mit Django
Aufbau eines VPN-Servers mit Raspberry Pie
Einfache Bereitstellungsumgebung mit Gaffer + Fabric
Webserver zum Testen des Browsers mit Mocha
Django + Apache mit mod_wsgi unter Windows Server 2016
Einfache Web-App mit Python + Flask + Heroku
Aufbau des Python-Ausführungsservers (Python + uWSGI + Django + Nginx)
Einfaches Web-Scraping mit Python und Ruby
Ich habe eine WEB-Bewerbung bei Django gemacht
Webserverkonstruktion mit Apache 2.4 (httpd 2.4.43) + PHP 7.4 unter Linux ―― 4. Sicherheit (chown und firewalld)
Versuchen Sie, eine Webanwendung mit Vue.js und Django (Mac Edition) zu erstellen - (1) Umgebungskonstruktion, Anwendungserstellung