Comment créer une instance EC2 sur AWS en utilisant Terraform

Comment créer une instance EC2 sur AWS en utilisant Terraform

Avec l'augmentation de la technologie du cloud computing, plus d'industries migrent leurs charges de travail vers une infrastructure basée sur le cloud. À la suite de ce modèle, les technologues ont ressenti le besoin d'un mécanisme pour automatiser le processus de déploiement d'instance (et d'autres ressources cloud). Terraform est l'un de ces outils open source pour faciliter ces progrès.

Ce que nous couvrirons

Cet article montrera comment nous pouvons créer une instance EC2 sur AWS en utilisant Terraform. Nous verrons un exemple d'installation d'un serveur Web simple sur cette instance. Parlons d'abord un peu de l'installation de Terraform.

Comment installer Terraform

Packages officiels Terraform pour divers systèmes d'exploitation comme Windows, Mac et les distros basés sur Linux, tels que Ubuntu / Debian, Centos / Rhel, etc., sont disponibles. De plus, Terraform maintient également le binaire pré-compilé et peut également être compilé à partir de la source. Vous pouvez consulter les différentes procédures d'installation sur le site Web de Terraform. Pour vérifier votre installation Terraform, exécutez la commande suivante:

1
$ Terraform - Version

Création d'une instance AWS EC2 en utilisant Terraform

Après avoir installé Terraform sur votre système, procédez par la création d'une instance EC2 sur AWS. Il existe des fichiers pour gérer efficacement un déploiement Terraform. Bien que nous puissions créer un seul fichier et déclarer toutes les choses, cette approche rendra le scénario entier maladroit. Alors, créons d'abord un répertoire de travail comme indiqué dans ce qui suit:

Étape 1. Commencez par un dossier qui tiendra tous les fichiers de configuration. Créez le dossier et déplacez-vous comme indiqué dans ce qui suit:

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

Étape 2. Créons notre premier fichier de configuration, «Variables.tf ”, qui contient des informations sur notre région AWS et le type d'instance que nous voulons utiliser, comme indiqué dans ce qui suit:

1
$ variables nano.TF

Maintenant, mettez le texte ci-dessous à l'intérieur et enregistrez le fichier comme indiqué dans ce qui suit:

1
2
3
4
5
6
7
8
9
dix
variable "aws_region"
Description = "La région AWS pour déployer l'instance EC2 dans."
default = "US-East-1"

variable "instance_type"
description = "Type d'instance pour EC2"
default = "T2.micro "

Étape 3. Par défaut, lorsque Terraform crée une nouvelle instance, le groupe de sécurité par défaut associé à l'instance nie tout le trafic. Nous créerons donc un nouveau fichier, «secgrp.tf ", pour créer un groupe de sécurité," web-sg ", qui permettra le trafic« SSH »et« HTTP »entrant, ainsi que tout le trafic sortant, comme indiqué ci-dessous:

1
$ nano secgrp.TF

Maintenant, mettez le code suivant à l'intérieur comme indiqué dans ce qui suit:

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
18
19
20
21
22
23
ressource "aws_security_group" "web-sg"
name = "new-secgrp"
entrave
From_port = 80
to_port = 80
protocole = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

entrave
From_port = 22
to_port = 22
protocole = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

sortie
From_port = 0
to_port = 0
protocole = "-1"
cidr_blocks = ["0.0.0.0/0 "]

Étape 4. Créer un «principal.Fichier TF ”qui définira l'infrastructure souhaitée comme indiqué dans ce qui suit:

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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"

ressource "aws_instance" "webserver"
ami = "AMI-09D56F8956AB235B3"
instance_type = var.instance_type
key_name = "ec2-keypair-name"
vpc_security_group_ids = [aws_security_group.web-sg.identifiant]
associé_public_ip_address = true
root_block_device
volume_type = "gp2"
volume_size = "30"
delete_on_termination = false

user_data = <#!/ bac / bash
Mise à jour Sudo apt-get
Sudo apt-get upgrade -y
sudo apt-get install apache2 -y
sudo systemctl redémarrer apache2
sudo chmod 777 -r / var / www / html /
cd / var / www / html /
sudo echo "

Ceci est notre site Web de test déployé à l'aide de terraform.

"> Index.html
Eof
tags =
Name = "exampleec2instance"


sortie "iPaddress"
value = "$ aws_instance.serveur Web.public_ip "

Dans le code précédent, n'oubliez pas de modifier le «nom d'utilisateur» au nom de votre système et au nom de «EC2-Keypair» au nom de la paire de clés dans votre cas. Voyons un peu les paramètres utilisés dans les fichiers ci-dessus:

aws_instance: Cela crée une ressource d'instance EC2. Les instances peuvent être créées, modifiées et détruites

SUIS-JE: Spécifiez l'ID AMI à utiliser avec l'instance EC2

instance_type: Cette option est utilisée pour déclarer le type de l'instance à utiliser

key_name: Spécifie le nom de la paire de clés à utiliser avec l'instance EC2

vpc_security_group_ids: Un argument pour une liste des identifiants de groupe de sécurité à joindre

associé_public_ip_address: Spécifiez si vous devez joindre IP publique avec une instance à l'intérieur d'un VPC

données d'utilisateur: Utilisé pour passer des commandes / données sur une instance lors du lancement

Maintenant, initialisez Terraform en exécutant la commande suivante:

1
$ Terraform init

Maintenant, appliquez les modifications en utilisant la commande suivante:

1
$ terraform s'applique

Vérification de la procédure

Maintenant, vérifions si l'instance EC2 souhaitée est créée. Dirigez-vous vers la console EC2 et vérifiez les instances en cours comme indiqué dans l'image suivante:

Puisque notre instance a été créée avec succès, nous verrons maintenant si le site Web que nous avons déployé fonctionne correctement ou non. Copiez le nom DNS ou l'IP publique de l'instance et entrez-le dans un navigateur Web comme indiqué dans les éléments suivants:

Bien joué! Notre serveur Web fonctionne bien.

Nettoyer les ressources

Lorsque vous avez testé votre infrastructure ou lorsque vous n'en avez pas besoin, nettoyez les ressources en exécutant la commande suivante:

1
$ terraform détruire

Conclusion

Ce guide nous a appris à créer une instance EC2 sur AWS en utilisant Terraform. Nous avons également démontré comment provisionner un simple serveur Web AWS à l'aide de Terraform.