En tant qu'ingénieur d'application, je n'ai pas beaucoup d'expérience dans la conception d'infrastructure dans mon travail quotidien, mais j'ai été impressionné de pouvoir facilement créer une infrastructure d'infrastructure même si je n'ai presque aucune connaissance de l'infrastructure via AWS. Cette fois, pour les mêmes débutants que moi, je partagerai la procédure de la création de l'environnement cloud AWS au déploiement de l'application Spring Boot.
Pour la configuration AWS, nous adopterons une configuration redondante utilisant deux zones de disponibilité (AZ) dans la région de Tokyo. Les instances EC2 seront distribuées dans les deux AZ, et l'accès sera distribué via ALB (Load Balancer). De plus, l'instance RDS sera configurée en Multi-AZ afin qu'elle soit distribuée dans deux AZ comme dans EC2.

Chaque instance dans AWS doit se voir attribuer une adresse IP et être correctement acheminée afin qu'elle puisse atteindre les instances dans AWS à partir du réseau externe. Le service qui fournit un tel réseau virtuel est appelé Amazon Virtual Private Cloud (VPC).
Bien que ce soit pratique, nous visons un environnement VPC proche de la bataille réelle. Ce VPC se compose de deux types: ** sous-réseau public ** pour les communications Internet et ** sous-réseau privé ** qui est bloqué sur Internet. Appliquez différents groupes de sécurité à chacun pour contrôler l'accès aux deux types de sous-réseaux. Le serveur AP est construit sur le sous-réseau public et le serveur DB est construit sur le sous-réseau privé.

Après avoir enregistré un nouveau compte AWS, l'environnement VPC par défaut a déjà été créé, mais cette fois, nous allons créer le VPC suivant à partir de zéro sans l'utiliser.

⇒ Cliquez surVPC ⇒ Sélectionnez VPC dans le menu de gauche ⇒ Appuyez sur le bouton Créer VPC`.
Créez un sous-réseau dans le VPC ci-dessus. Un sous-réseau ne peut pas être créé sur plusieurs zones de disponibilité, assurez-vous donc de spécifier une zone de disponibilité lors de sa création. Pour la répartition de la charge et la redondance, créez deux sous-réseaux pour le serveur AP et deux pour le serveur DB.

Sous-réseau dans le menu de gauche ⇒ Cliquez sur le bouton Créer une sous-section.
| Subnet | AZ | Bloc d'adresse CIDR IPv4 | 
|---|---|---|
| public-subnet1 | ap-northeast-1a | 10.0.0.0/24 | 
| public-subnet2 | ap-northeast-1c | 10.0.1.0/24 | 
| private-subnet1 | ap-northeast-1a | 10.0.2.0/24 | 
| private-subnet2 | ap-northeast-1c | 10.0.3.0/24 | 
Écran de la liste des sous-sections après la fin

La ** Internet Gateway (IGW) **, comme son nom l'indique, est la passerelle vers Internet et est installée pour communiquer entre le VPC et le réseau externe.
En outre, si le sous-réseau créé ci-dessus est un sous-réseau public ou un sous-réseau privé est déterminé par la ** table de routage ** appliquée à ce sous-réseau.
Destination: Le sous-réseau auquel la table de routage avec IGW défini comme cible de 0.0.0.0/0 est appliquée est le sous-réseau public. D'autre part, le sous-réseau auquel la table de routage (laissez la valeur par défaut) sans IGW comme cible de destination: 0.0.0.0/0 est appliquée est un sous-réseau privé.

 dans le menu de gauche ⇒ Cliquez sur le bouton Create Internet Gateway`.

Route Table dans le menu de gauche ⇒ Cliquez sur le bouton Create Route Table.
Les informations d'itinéraire «10.0.0.0/16 local» dans la table d'itinéraire ne peuvent pas être modifiées ou supprimées avec les paramètres par défaut. Ce paramètre par défaut signifie que la communication au sein du VPC ne peut pas être contrôlée par la table de routage, ce qui signifie que la communication entre les sous-réseaux est possible au sein du même VPC.Un groupe de sécurité est un pare-feu pour chaque instance dans AWS qui peut contrôler l'accès entrant (entrant) et sortant (sortant). Au moins un groupe de sécurité doit être appliqué à chaque instance.



D'autre part, le groupe de sécurité du serveur DB maintient le port Aurora 3306 ouvert pour autoriser uniquement l'accès à la base de données à partir du serveur AP.

Ceci termine la construction de VPC.
RDS est un service de gestion de base de données relationnelle. Les 6 types de moteurs de base de données suivants peuvent être sélectionnés avec RDS.
・ Amazon Aurora
・ MySQL
・ MariaDB
・ PostgreSQL
-Oracle
· MS SQL Server
Cette fois, nous allons construire Aurora DB. Aurora est le moteur de base de données relationnel propriétaire d'AWS compatible avec MySQL et aurait des performances de débit PostgreSQL jusqu'à 5x et 3x de MySQL.

Comme condition préalable à la création d'une instance de base de données, vous devez spécifier un groupe de sous-réseaux de base de données dans le VPC. Un groupe de sous-réseaux de base de données nécessite des sous-réseaux dans au moins deux zones de disponibilité d'une région particulière. Vous devez sélectionner un groupe de sous-réseaux de base de données lorsque vous créez une instance de base de données sur votre VPC. Amazon RDS utilise son groupe de sous-réseaux de base de données et sa zone de disponibilité préférée pour sélectionner le sous-réseau et les adresses IP de ce sous-réseau à associer à l'instance de base de données.
⇒ Cliquez surRDS ⇒ Sélectionnez Groupe sous-marin dans le menu de gauche ⇒ Appuyez sur le bouton Créer un groupe sous-marin`.Créer.

 dans le menu de gauche ⇒ Appuyez sur le bouton Démarrer l'instance DB`.



Enfin, je suis arrivé à EC2. Amazon Elastic Compute Cloud (EC2) est un serveur virtuel dans AWS. Cette fois, nous allons créer deux instances pour la répartition de la charge.

 ⇒ ʻEC2 ⇒ Sélectionnez Instance dans le menu de gauche ⇒ Appuyez sur le bouton Créer une instance.




Créer une instance pour terminer la création de l'instance.

L'attribution d'IP ELASTIC est requise pour attribuer une adresse IP publique statique aux instances EC2 ci-dessus.
 dans le menu de gauche ⇒ Appuyez sur le bouton ʻAssign New Address.


Entrez l'adresse IP ELASTIC ci-dessus à l'aide d'un client SSH tel que Tera Term pour accéder à l'instance EC2.
Connectez-vous avec la clé que vous avez téléchargée précédemment en utilisant l'utilisateur "ec2-user".


#Mettez à jour le dernier logiciel
$ sudo yum update -y
#Changement de nom d'hôte
$ sudo hostname ec2-1-cinpo1
$ sudo vim /etc/sysconfig/network
HOSTNAME=ec2-cinpo1;
#Fichier hôte modifié et émis depuis AWS<Private IP>écrire.
$ echo "17X.XX.X.X30 ec2-cinpo1" |sudo tee -a /etc/hosts
#Confirmation du nom d'hôte
$ hostname -f
#Changement de fuseau horaire
# /etc/sysconfig/Édition de l'horloge
$ echo -e 'ZONE="Asia/Tokyo"\nUTC=false' | sudo tee /etc/sysconfig/clock
#Modifier le fichier de fuseau horaire
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
#Vérifiez le résultat
$ date
#Installation de Java 8
$ sudo yum install java-1.8.0-openjdk.x86_64
#Sélection Java 8
$ sudo alternatives --config java
#Vérifiez le résultat
$ java -version
Suivez les mêmes étapes que ci-dessus pour créer une deuxième instance EC2.
#Installez le client MySQL pour vous connecter au serveur Aurora.
$ sudo yum install mysql
#Connectez-vous au serveur Aurora pour créer une nouvelle base de données ou des données de port.
$ mysql -h <Point de terminaison d'instance RDS> -u username -p
$ create database sampleDB
...Ce qui suit est omis...

$ java -jar XXXXXXXX.jar

Enfin, appliquez un équilibreur de charge (Application Load Balancer [ALB]) pour réaliser l'équilibrage de charge du serveur AP.

Comme condition préalable à l'application d'ALB, vous devez enregistrer l'instance EC2 en tant que cible dans le groupe cible. ALB agit comme une destination unique pour les clients, distribuant le trafic entrant aux cibles enregistrées.
 ⇒ ʻEC2 ⇒ Sélectionnez Groupe cible dans le menu de gauche ⇒ Appuyez sur le bouton Créer un groupe cible.



Load Balancer dans le menu de gauche ⇒ Appuyez sur le bouton Create Load Balancer et sélectionnez Application Load Balancer.





Cela complète tout, de la création de l'environnement AWS au déploiement de l'application.
http://<ALBのDNS名>:ポート/にアクセスすれば、アプリ画面が表示されたら完成です。

Recommended Posts