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 sur
VPC ⇒ 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
.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.
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 sur
RDS ⇒ 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