C'était la première fois que je touchais l'arrière, ce qui était assez ennuyeux. La prochaine fois que je l'ai créé, j'ai pensé que je pourrais le créer immédiatement après avoir vu cet article, alors je l'ai créé pour moi-même ou pour ceux qui sont également confus **.
Puisque je suis débutant, il peut y avoir des erreurs ou des idées étranges. Dans ce cas, je vous serais reconnaissant si vous pouviez me le faire savoir dans la section commentaires.
$ <-Commandes sur votre terminal PC
[ec2-user] $ <-Commandes lorsque vous êtes connecté à EC2
MySQL > <-Commandes lorsque vous êtes connecté à MySQL
# <-Mon commentaire
>>> <-Résultat d'exécution(Valeur de sortie)
--Compte AWS créé
VPC est un service qui fournit un environnement de cloud privé dédié aux utilisateurs. Par exemple, de nombreux AWS utilisent VPC lorsque vous souhaitez communiquer EC2 en interne, communiquer avec RDS et connecter des réseaux internes et externes.
** Procédure de création **
Ceci termine la création du VPC.
Un sous-réseau est un groupe de réseaux qui divise d'abord le bloc CIDR créé par le VPC. Vous pouvez créer autant de sous-réseaux que vous le souhaitez, tant que vous ne dépassez pas la limite du VPC. Il existe principalement des ** sous-réseaux publics ** et des ** sous-réseaux privés **.
Je pense qu'il est difficile d'obtenir une image au début, alors ... J'ai créé un ** VPC ** appelé ** Home ** dans un vaste espace Internet ** Earth ** . L'image est que nous avons créé des pièces avec différents rôles ( sous-réseau **) tels que ** bain ** et ** chambre **. Je suis désolé si je pense mal (; ´Д `)
Créez des sous-réseaux publics et privés. ** EC2 ** pour les sous-réseaux publics Mettez ** RDS ** dans le sous-réseau privé. Créez deux ** sous-réseaux privés ** car RDS doit ** avoir différentes zones de disponibilité **.
** Procédure de création **
--Création d'un sous-réseau
Ceci termine les paramètres de sous-réseau.
La table de routage définit les règles de communication des instances du sous-réseau. En d'autres termes, la table de routage est une table qui décrit où envoyer la communication en regardant la destination (adresse IP) du paquet. Puisque nous transportons des paquets en regardant ce tableau, les destinations non répertoriées dans le tableau n'envoient pas de paquets et ne peuvent pas communiquer. Le fait est qu'il définit où la communication peut être effectuée pour chaque sous-réseau.
** Procédure de création **
Vient ensuite la création de la passerelle Internet.
Une passerelle pour se connecter à Internet depuis le VPC. En utilisant cela, le système dans VPC peut utiliser l'adresse IP globale.
Par exemple, c'est le rôle de ** sécurité d'entrée ** (clé) qui place ** personnes ** (Internet) dans ** domicile ** (zone VPC).
** Procédure de création **
Ceci termine les paramètres de la passerelle Internet.
** Procédure de création **
Ceci termine les paramètres de la table de routage.
Modifiez l'association de la table de routage.
** Procédure de création **
** Procédure de création **
Vérifions si EC2 peut être démarré Tapez la commande suivante
$ cd
$ cd (test-key.CHEMIN vers pem)
#Si tu ne comprends pas le sens$Les téléchargements cd sont OK
$ chmod 400 test-key.pem
$ ssh -i test-key.pem [email protected]
#L'adresse IPv4 publique EC2 est entrée dans xxx
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
#Si les caractères EC2 ci-dessus sont affichés, le démarrage est terminé.
[ec2-user] $ exit
#Fin
Vous venez de démarrer EC2.
** Procédure de création **
La quantité d'apprentissage sur les groupes de sécurité est encore faible et la sécurité peut être un paramètre lâche. Essayez de l'utiliser uniquement dans ** l'environnement de test **.
En tant qu'image, pensez-vous qu'il y a 65535 entrées (numéro de port) à la maison, etc. et que seules les entrées autorisées par le groupe de sécurité sont déverrouillées?
Modifier le groupe de sécurité webtest-sg
** Procédure de création **
(J'ai oublié d'unifier sg aux rangs inférieurs (; ´Д `))
Vérifions si RDS peut être démarré Tapez la commande suivante
$ cd
$ cd (test-key.CHEMIN vers pem)
$ ssh -i test-key.pem [email protected]
[ec2-user] $ sudo yum install mysql -y
[ec2-user] $ mysql -h Point de terminaison DB-u Nom d'utilisateur du maître DB-p
#Il vous sera demandé un mot de passe, alors entrez-le(Les caractères ne sont pas affichés mais saisis)(Le copier-coller est possible)
>>> Welcome to the MariaDB monitor.
#Est affiché, vous pouvez vous connecter à MySQL sur RDS.
#Afficher la liste dans la base de données(Peut être une base de données d'exposition en minuscules;)
MySQL > SHOW databases;
#Créez une base de données nommée "dbtest"
MySQL > CREATE DATABASE dbtest;
#Fin
MySQL > exit
Ceci termine les paramètres RDS.
#mettre à jour yum
[ec2-user] $ sudo yum update -y
#Installez git avec yum
[ec2-user] $ sudo yum install git -y
#Puis clonez pyenv à partir du référentiel github
[ec2-user] $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
#Permet de saisir des commandes via le chemin
[ec2-user] $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
[ec2-user] $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
[ec2-user] $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
[ec2-user] $ source ~/.bash_profile
#######Vous pouvez tout copier et coller en même temps
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
#################
#Vérifiez si pyenv est inclus
[ec2-user] $ pyenv -v
>>> pyenv 1.2.20-7-gdd62b0d1
Vérifiez la version actuelle de Python La série Python 2 a mis fin au service le 1er janvier 2020 Pour plus d'informations sur la série Python 2, consultez cet article
#Vérifier la version de Python
[ec2-user] $ python --version
>>> Python 2.7.18
#Migrer vers Python 3
#Installation des dépendances requises
[ec2-user] $ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel -y
>>>(Abréviation)A completé!
[ec2-user] $ sudo yum install libffi-devel -y
#Vérifiez la version de Python actuellement disponible au téléchargement
[ec2-user] $ pyenv install -l
>>>(Abréviation)
3.8.5
3.8.6
(Abréviation)
#En ce moment(R2,9/26)Dernière version en 3.8.Installer 6
[ec2-user] $ pyenv install 3.8.6
>>> Downloading Python-3.8.6.tar.xz...
-> https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz
Installing Python-3.8.6...
#Cela prendra du temps
Installed Python-3.8.6 to /home/ec2-user/.pyenv/versions/3.8.6
#Passer de la version 2 de Python à la 3
[ec2-user] $ pyenv global 3.8.6
[ec2-user] $ pyenv rehash
[ec2-user] $ python --version
>>> Python 3.8.6
#Packages qui seront nécessaires plus tard
[ec2-user] $ pip install --upgrade pip
[ec2-user] $ sudo yum install python-devel mysql-devel -y
[ec2-user] $ pip install mysqlclient
#Ceci termine la migration vers Python3
pip est à l'origine inclus dans EC2 (Linux2)
#Vérifier la version de pip
[ec2-user] $ pip -V
>>> pip 20.2.1 from /home/ec2-user/.pyenv/versions/3.8.6/lib/python3.8/site-packages/pip (python 3.8)
#Installez Django
[ec2-user] $ pip install django
#Si vous obtenez l'erreur suivante, citation unique selon le contenu ('xxxx') Veuillez copier et réinstaller Django
>>> WARNING: You are using pip version 20.2.1; however, version 20.2.3 is available.
You should consider upgrading via the 'xxxx' command.
#Vérification de la version de Django
[ec2-user] $ python -m django --version
#Créez un projet nommé "test"
[ec2-user] $ django-admin startproject testDjango
Si vous le cochez, il devrait être généré
[ec2-user] $ ls
>>> mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
--Top mysite: Vous pouvez le créer avec n'importe quel nom dans le répertoire racine. Peut être changé. --manage.py ・ ・ ・ Utilitaire de ligne de commande pour effectuer diverses opérations du projet Django. --mysite ・ ・ ・ Package pour ce projet. --mysite / init.py ・ ・ ・ Un fichier vide indiquant que ce répertoire est python. --mysite / settings.py ・ ・ ・ Fichier de paramètres du projet. --mysite / urls.py ・ ・ ・ Déclarer l'URL. --mysite / asgi.py ・ ・ ・ Point d'entrée du serveur WEB compatible ASGI qui fournit le projet. --mysite / wsgi.py ・ ・ ・ Point d'entrée du serveur WEB compatible WSGI pour servir le projet.
Vous pouvez également éditer en utilisant vim directement en SSH pour éditer le code de testDjango, mais cette fois j'essaierai d'utiliser FailZila Pour les super débutants! Comment utiliser FileZilla
Téléchargement de la version Win de FileZila Téléchargement FileZila pour Mac
Installez et ouvrez, appuyez sur le bouton du serveur en haut à gauche et l'écran suivant apparaîtra
** Étapes de configuration **
Une fois le réglage terminé, l'écran ci-dessus apparaîtra ** À gauche, le site local (sur mon PC) ** ** À droite, site distant (dans EC2) ** Ici, vous pouvez transférer et réécrire des fichiers. Dupliquer le testDjango que j'ai fait pour le moment sur le site local
Après avoir cliqué avec le bouton droit sur le fichier que vous souhaitez modifier, vous pouvez le modifier en l'affichant et en le modifiant. Autoriser l'édition avec PyCharm dans la prochaine [2.4]
L'environnement de développement intégré Python le plus puissant PyCharm
Comment associer PyCharm
[ec2-user] $ cd
[ec2-user] $ cd testDjango
[ec2-user] $ python manage.py startapp polls
settings.py
...
(Abréviation)
...
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
# }
# }
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbtest',
'USER': 'Utilisateur maître DB',
'PASSWORD': 'Mot de passe de l'utilisateur principal de la base de données',
'HOST': 'Point de terminaison DB',
'PORT': '3306',
}
}
...
(Abréviation)
...
#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Tokyo'
Télécharger avec FileZilla
[ec2-user] $ cd
[ec2-user] $ cd testDjango
[ec2-user] $ python manage.py migrate
#Si une erreur se produit ici, les causes possibles sont décrites ci-dessous.
[ec2-user] $ python manage.py dbshell
** Cause d'erreur **
** Autre ** Aucun module nommé'_ctypes 'ne se produit lors de l'installation de pipenv CentOS7.2 + MySQL5.6 + Python3 --- pip install mysqlclient donne mysql_config introuvable
Si vous pensez que c'est impossible, vous pouvez recréer l'instance à partir de zéro. Avec l'instance EC2 sélectionnée, appuyez sur l'action et lancez-en une similaire Une instance avec les mêmes paramètres sera créée.
Ceci complète les paramètres EC2, RDS et Django.
J'étais trop mauvais pour nommer cette fois. (´︵`) Par exemple, si le nom du blog est xblog xblog-vpc xblog-public-subnet xblog-ec2 xblog-rtb xblog-ec2-sg xblog-db-sg Je pense que c'est plus facile à comprendre.
J'espère que cet article aide quelqu'un.
La prochaine fois, j'essaierai d'implémenter l'API pour cela.
Ce qui suit et les sites auxquels j'ai beaucoup fait référence au milieu de cet article sont présentés. Merci beaucoup.
[1] Créer un environnement Python3 sur le serveur EC2 [2] Développement d'applications WEB à l'aide de django-development 1- [3] Django, syncdb dans l'environnement AWS EC2 + RDS [4] Connectez-vous à Amazon RDS depuis Django sur EC2 [5] Jusqu'à ce que l'application Django (+ MySQL) soit publiée sur AWS EC2 (+ RDS (+ S3)) [6] (Django memo) Définir MySQL dans la base de données [7] Créer une base de données avec MySQL [8] Que faire si une erreur SQLite3 se produit lors du démarrage du serveur de développement dans Django 2.2 [9] Introduction pratique pour les débutants de Vim [10] [Qu'est-ce que la table de routage AWS? Expliquons brièvement en fonction du VPC et du sous-réseau](https://qiita.com/chro96/items/21863e0960ba4ac72470#:~:text=%E6%9C%AC%E9%A1%8C%E3%81%AEAWS % E3% 81% AE% E3% 83% AB% E3% 83% BC% E3% 83% 88% E3% 83% 86% E3% 83% BC% E3% 83% 96% E3% 83% AB% E3 % 81% A8% E3% 81% AF% EF% BC% 9F & texte =% E3% 82% B5% E3% 83% 96% E3% 83% 8D% E3% 83% 83% E3% 83% 88% E5% 86% 85% E3% 81% AB% E3% 81% 82% E3% 82% 8B% E3% 82% A4% E3% 83% B3% E3% 82% B9% E3% 82% BF% E3% 83% B3% E3% 82% B9,% E9% 80% 81% E3% 82% 89% E3% 81% AA% E3% 81% 84% E3% 81% AE% E3% 81% A7% E3% 80% 81 % E9% 80% 9A% E4% BF% A1% E3% 81% A7% E3% 81% 8D% E3% 81% BE% E3% 81% 9B% E3% 82% 93% E3% 80% 82)
Recommended Posts