Comment créer AWS VPC à l'aide de Terraform

Comment créer AWS VPC à l'aide de Terraform

AWS fournit un service de cloud privé virtuel (VPC) pour créer un réseau virtuel logiquement isolé dans le cloud. Ici, nous pouvons lancer des instances EC2 et RDS et créer des groupes de sécurité et d'autres ressources. Comme beaucoup d'autres tâches, nous pouvons également créer un VPC utilisant Terraform.

Ce que nous couvrirons

Ce guide montrera comment créer un VPC AWS (Cloud privé virtuel) à l'aide de Terraform.

Ce dont tu auras besoin

  1. Compte AWS
  2. Accès à Internet
  3. Bases de Terraform

Création d'AWS VPC à l'aide de Terraform

Maintenant que nous avons installé Terraform sur notre machine locale, nous pouvons continuer notre tâche de travailler avec VPC. Ici, nous avons décrit la configuration VPC pour notre cas:

Nous avons un sous-réseau privé et un sous-réseau public avec leur table d'itinéraire correspondante. Le sous-réseau public a également une passerelle NAT attachée. La configuration Terraform pour différents composants est stockée dans différents fichiers comme:

  1. variables.TF: Définition des variables utilisées dans les fichiers
  2. VPC.TF: pour les ressources VPC
  3. passerelle.TF: pour les ressources de passerelle
  4. sous-réseaux.TF: Pour définir des sous-réseaux publics et privés
  5. table.TF: pour les ressources de table d'itinéraire publique et privée
  6. principal.TF

Comme mentionné précédemment, Terraform utilise plusieurs fichiers de configuration pour l'approvisionnement des ressources, et chacun de ces fichiers doit résider dans leur dossier / répertoire de travail respectif. Créons un répertoire à cet effet:

Étape 1. Créez un dossier qui conservera vos fichiers de configuration, puis accédez à ce dossier:

1
$ Mkdir Linuxhint-Terraform && CD Linuxhint-Terraform

Étape 2. Créons notre premier fichier de configuration, «Variables.TF », qui contiendra des informations sur notre région AWS et le type d'instance que nous voulons utiliser:

1
$ variables nano.TF

Maintenant, mettez le texte suivant à l'intérieur et enregistrez le fichier:

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
variable "aws_region"
Description = "La région AWS pour créer le VPC dans."
default = "US-East-1"

variable "VPC-CIDR"
cidr_block = "172.168.0.0/16 "

variable "pubsubcidr"
cidr_block = "172.168.0.0/24 "

variable "Prisubcidr"
cidr_block = "172.168.1.0/24 "

Étape 3. Créer VPC.TF:

1
$ nano vpc.TF

Maintenant, mettez le texte suivant à l'intérieur et enregistrez le fichier:

1
2
3
4
5
ressource "aws_vpc" "my-vpc"
cidr_block = var.VPC-CIDR

Étape 4. Créer une passerelle.Fichier TF et définir la passerelle Internet et la passerelle NAT ici:

1
$ nano passerelle.TF

Maintenant, mettez le texte suivant à l'intérieur et enregistrez le fichier:

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
18
19
# Créez une ressource de passerelle Internet et attachez-la au VPC
ressource "aws_internet_gateway" "igw"
vpc_id = aws_vpc.my-vpc.identifiant

# Créer EIP pour l'IGW
ressource "aws_eip" "myeip"
VPC = vrai

# Créez une ressource NAT Gateway et attachez-la au VPC
ressource "aws_nat_gateway" "nat-gw"
allocation_id = aws_eip.myeip.identifiant
subnet_id = aws_subnet.mypublicsubnet.identifiant

Étape 5. Créer des sous-réseaux.TF pour les sous-réseaux privés et publics à l'intérieur du VPC:

1
$ sous-réseaux nano.TF

Maintenant, mettez le texte suivant à l'intérieur et enregistrez le fichier:

1
2
3
4
5
6
7
8
9
ressource "aws_subnet" "myprivatesubnet"
vpc_id = aws_vpc.my-vpc.identifiant
cidr_block = var.prisubcidr

ressource "aws_subnet" "mypublicsubnet"
vpc_id = aws_vpc.my-vpc.identifiant
cidr_block = var.pubsubcidr

Étape 6. Créer la table d'itinéraire.TF pour les sous-réseaux privés et publics:

1
$ Nano Route-Table.TF

Maintenant, mettez le texte suivant à l'intérieur et enregistrez le fichier:

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Création de RT pour le sous-réseau privé
ressource "aws_route_table" "privrt"
vpc_id = aws_vpc.my-vpc.identifiant
itinéraire
cidr_block = "0.0.0.0/0 "
nat_gateway_id = aws_nat_gateway.Nat-gw.identifiant


# Création de RT pour le sous-réseau public
Ressource "aws_route_table" "Publrt"
vpc_id = aws_vpc.my-vpc.identifiant
itinéraire
cidr_block = "0.0.0.0/0 "
Gateway_id = aws_internet_gateway.IGW.identifiant


#Association du RT public avec les sous-réseaux publics
ressource "aws_route_table_association" "pubrtass"
subnet_id = aws_subnet.mypublicsubnet.identifiant
Route_Table_id = AWS_ROUTE_TABLE.public.identifiant

#Association du RT privé avec les sous-réseaux privés
ressource "aws_route_table_association" "prirtass"
subnet_id = aws_subnet.myprivatsubnet.identifiant
Route_Table_id = AWS_ROUTE_TABLE.privé.identifiant

Étape 7. Faire un «principal.Fichier TF ”qui contiendra la définition de notre infrastructure:

1
$ nano main.TF

Maintenant, mettez la configuration suivante à l'intérieur:

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
18
19
20
21
Terraform
requis_providers
aws =
source = "hashicorp / aws"
version = "~> 3.27 "


required_version = "> = 0.14.9 "

fournisseur "aws"
région = var.aws_region
shared_credentials_file = "/ home / user_name /.AWS / Prédients "
profil = "Profil1"

Modifier le "Nom d'utilisateur"Dans le code ci-dessus avec le nom d'utilisateur dans votre cas. Voyons un peu sur les paramètres utilisés dans les fichiers précédents:

  • shared_credentials_file: C'est le chemin du fichier contenant les informations d'identification des utilisateurs AWS.
  • profil: Il spécifie le profil de l'utilisateur à utiliser pour travailler avec AWS.
  • aws_vpc: Ressource pour construire un VPC.
  • cidr_block: Fournit un bloc CIDR IPv4 pour le VPC.
  • aws_internet_gateway: Ressource pour créer une passerelle Internet pour le VPC.
  • aws_eip: Ressource pour produire une IP élastique (EIP).
  • aws_nat_gateway: Ressource pour créer une passerelle NAT pour le VPC.
  • Allocation_id: Attribut pour l'identification d'allocation de l'EIP généré ci-dessus.
  • Subnet_id: Attribut pour le sous-réseau ID du sous-réseau où la passerelle NAT est déployée.
  • aws_subnet: Ressource pour créer un sous-réseau VPC.
  • AWS_ROUTE_TABLE: Ressource pour créer une table de route VPC.
  • itinéraire: Argument qui contient une liste d'objets d'itinéraire.
  • nat_gateway_id: Argument indiquant l'ID de la passerelle VPC NAT.
  • gateway_id: Argument facultatif pour la passerelle Internet VPC.
  • aws_route_table_association: Ressource pour créer une association entre le tableau des routes (public ou privé) et 1) la passerelle Internet et 2) la passerelle privée virtuelle.
  • Route_Table_id: L'ID de table d'itinéraire avec lequel nous associons le sous-réseau.

Initialisation du répertoire Terraform

Pour télécharger et installer le fournisseur que nous avons défini dans notre configuration et autres fichiers, nous devons initialiser le répertoire contenant ce fichier:

1
$ Terraform init

Construire l'infrastructure

Pour appliquer les modifications que nous avons planifiées ci-dessus, exécutez la commande suivante:

1
$ terraform s'applique

Entrez «oui» sur le terminal lorsque vous avez invité.

Vérification de la procédure

Maintenant, vérifions si le VPC souhaité est créé ou non. Dirigez-vous vers la console VPC et vérifiez les VPC disponibles:

Nous pouvons voir que notre VPC est créé avec succès.

Après avoir effectué cette tâche, supprimez les ressources pour éviter les frais inutiles:

1
$ terraform détruire

Entrez «oui» pour appliquer l'action.

Conclusion

Dans ce guide, nous avons appris à créer un VPC sur AWS à l'aide de Terraform. La prochaine chose que vous pouvez faire est d'essayer de provisionner une instance RDS ou EC2 à l'aide de Terraform.