Como criar uma instância do EC2 na AWS usando o Terraform

Como criar uma instância do EC2 na AWS usando o Terraform

Com o aumento da tecnologia de computação em nuvem, mais indústrias estão migrando suas cargas de trabalho para a infraestrutura baseada em nuvem. Como resultado desse padrão, os tecnólogos sentiram a necessidade de algum mecanismo de automatizar o processo de implantação de instância (e outros recursos em nuvem). Terraform é uma dessas ferramentas de código aberto para facilitar este progresso.

O que vamos cobrir

Este artigo mostrará como podemos criar uma instância do EC2 na AWS usando o Terraform. Veremos um exemplo de instalação de um servidor da web simples nesta instância. Vamos primeiro falar um pouco sobre a instalação do Terraform.

Como você pode instalar o Terraform

Pacotes oficiais da Terraform para vários sistemas operacionais, como Windows, Mac e Distros baseados em Linux, como Ubuntu/Debian, Centos/Rhel, etc., Estão disponíveis. Além disso, o Terraform também mantém o binário pré-compilado e também pode ser compilado a partir da fonte. Você pode verificar os vários procedimentos de instalação no site da Terraform. Para verificar sua instalação no Terraform, execute o seguinte comando:

1
$ Terraform -Version

Criando a instância do AWS EC2 usando o Terraform

Depois de instalar o TerraForm em seu sistema, prossiga com a criação de uma instância do EC2 na AWS. Existem alguns arquivos para gerenciar efetivamente uma implantação de Terraform. Embora possamos criar um único arquivo e declarar tudo, essa abordagem tornará todo o cenário desajeitado. Então, vamos primeiro criar um diretório de trabalho como visto no seguinte:

Passo 1. Comece com uma pasta que manterá todos os arquivos de configuração. Crie a pasta e mova -se dentro dela, como mostrado no seguinte:

1
$ mkdir linuxhint-terraform && CD Linuxhint-Terraform

Passo 2. Vamos criar nosso primeiro arquivo de configuração, “Variáveis.TF ”, que contém informações sobre nossa região da AWS e o tipo de instância que queremos usar, conforme mostrado no seguinte:

1
$ nano variáveis.tf

Agora, coloque o texto abaixo e salve o arquivo como mostrado no seguinte:

1
2
3
4
5
6
7
8
9
10
variável "aws_region"
Descrição = "A região da AWS para implantar a instância do EC2 em."
default = "EUA-East-1"

variável "instance_type"
Descrição = "Tipo de instância para EC2"
default = "T2.micro "

etapa 3. Por padrão, quando a Terraform cria uma nova instância, o grupo de segurança padrão associado à instância nega todo o tráfego. Portanto, criaremos um novo arquivo, “Secgrp.TF ”, para criar um grupo de segurança,“ Web-SG ”, que permitirá o tráfego“ SSH ”e“ HTTP ”de entrada, bem como todo o tráfego de saída, conforme mostrado no seguinte:

1
$ nano secgrp.tf

Agora, coloque o seguinte código dentro dele, como mostrado no seguinte:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Recurso "AWS_SECURITY_GROUP" "Web-SG"
Nome = “Novo seggrp”
Ingressão
de_port = 80
to_port = 80
protocolo = "tcp"
cidr_blocks = ["0.0.0.0/0 "]

Ingressão
de_port = 22
to_port = 22
protocolo = "tcp"
cidr_blocks = ["0.0.0.0/0 "]

saída
de_port = 0
to_port = 0
protocolo = "-1"
cidr_blocks = ["0.0.0.0/0 "]

Passo 4. Crie um “principal.arquivo tf ”que definirá a infraestrutura desejada, como mostrado no seguinte:

1
$ nano Main.tf

Agora, coloque a seguinte configuração dentro dele:

1
2
3
4
5
6
7
8
9
10
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
requerir_providers
aws =
fonte = "Hashicorp/AWS"
versão = "~> 3.27 "


requerir_version = "> = 0.14.9 "

Provedor "AWS"
região = var.aws_region
shared_credentials_file = "/home/user_name/.AWS/credenciais "
perfil = "perfil1"

Recurso "AWS_INSTANCE" "WebServer"
ami = "ami-09d56f8956ab235b3"
Instância_type = var.Instância_type
key_name = "EC2-KYYYPAIR-NAME"
vpc_security_group_ids = [AWS_SECURITY_GROUP.web-sg.eu ia]
associado_public_ip_address = true
root_block_device
volume_type = "gp2"
volume_size = "30"
Delete_on_nMensination = false

user_data = <#!/BIN/BASH
Atualização de sudo apt-get
sudo apt -get upgrade -y
sudo apt -get install apache2 -y
sudo systemctl reiniciar apache2
sudo chmod 777 -r/var/www/html/
CD/var/www/html/
sudo eco "

Este é o nosso site de teste implantado usando o Terraform.

"> ÍNDICE.html
Eof
tags =
Name = "Expletec2Instance"


saída "ipaddress"
value = "$ aws_instance.servidor web.IP Público"

No código anterior, não se esqueça de alterar o "nome do usuário" para o nome do usuário do seu sistema e o "nome EC2-Kyypair" para o nome do par de chaves no seu caso. Vamos ver um pouco sobre os parâmetros usados ​​nos arquivos acima:

aws_instance: Isso cria um recurso de instância do EC2. Instâncias podem ser criadas, alteradas e destruídas

Ami: Especifique o ID AMI a ser usado com a instância do EC2

Instância_type: Esta opção é usada para declarar o tipo de instância a ser usada

key_name: Especifica o nome do par de chaves para usar com a instância do EC2

VPC_Security_Group_Ids: Um argumento para uma lista de IDs do grupo de segurança para anexar

Associate_public_ip_address: Especifique se deseja anexar IP público com uma instância dentro de um VPC

dados do usuário: Usado para passar comandos/dados em uma instância ao lançá -los

Agora, inicialize o Terraform executando o seguinte comando:

1
$ Terraform init

Agora, aplique as alterações usando o seguinte comando:

1
$ Terraform se aplica

Verificando o procedimento

Agora, vamos verificar se a instância EC2 desejada é criada. Vá para o console do EC2 e verifique as instâncias em execução, como mostrado na imagem a seguir:

Como nossa instância foi criada com sucesso, veremos agora se o site que implantamos está funcionando corretamente ou não. Copie o nome DNS ou o IP público da instância e insira -o dentro de um navegador da web, como mostrado no seguinte:

Bom trabalho! Nosso servidor da web está funcionando bem.

Limpando os recursos

Quando você testar sua infraestrutura ou quando não precisar, limpe os recursos executando o seguinte comando:

1
$ Terraform Destruir

Conclusão

Este guia nos ensinou sobre a criação de uma instância do EC2 na AWS usando o Terraform. Também demonstramos como provisionar um servidor web AWS simples usando o Terraform.