Hvordan lage en EC2 -forekomst på AWS ved hjelp av Terraform

Hvordan lage en EC2 -forekomst på AWS ved hjelp av Terraform

Med økningen i cloud computing-teknologi, migrerer flere bransjer arbeidsmengden til skybasert infrastruktur. Som et resultat av dette mønsteret har teknologer følt behovet for en eller annen mekanisme for å automatisere prosessen med instansutplassering (og andre skyressurser). Terraform er et slikt open source-verktøy for å lette denne fremgangen.

Hva vi vil dekke

Denne artikkelen vil vise hvordan vi kan lage en EC2 -forekomst på AWS ved hjelp av Terraform. Vi vil se et eksempel på å installere en enkel webserver på denne forekomsten. La oss først snakke litt om installasjonen av Terraform.

Hvordan du kan installere Terraform

Offisielle Terraform-pakker for forskjellige operativsystemer som Windows, Mac og Linux-baserte distros, for eksempel Ubuntu/Debian, Centos/RHEL, etc., er tilgjengelig. I tillegg opprettholder Terraform også forhåndskompilert binær og kan også samles fra kilden. Du kan sjekke de forskjellige installasjonsprosedyrene på nettstedet Terraform. For å bekrefte din terraforminstallasjon, kjør følgende kommando:

1
$ Terraform -version

Opprette AWS EC2 -forekomst ved hjelp av Terraform

Etter å ha installert terraform på systemet ditt, fortsett med å lage en EC2 -forekomst på AWS. Det er noen filer som effektivt administrerer en Terraform -distribusjon. Selv om vi kan lage en enkelt fil og erklære alle tingene, vil denne tilnærmingen gjøre hele scenariet klønete. Så la oss først lage en fungerende katalog som sett i følgende:

Trinn 1. Start med en mappe som holder alle konfigurasjonsfilene. Lag mappen, og flytt inn i den som vist i følgende:

1
$ mkdir linuxhint-terraForm && cd linuxhint-terraformform

Steg 2. La oss opprette vår første konfigurasjonsfil, “Variabler.TF ”, som inneholder informasjon om AWS -regionen vår og typen forekomst vi ønsker å bruke, som vist på følgende:

1
$ nano -variabler.tf

Legg nå teksten nedenfor inni den og lagre filen som vist i følgende:

1
2
3
4
5
6
7
8
9
10
variabel "aws_region"
beskrivelse = "AWS -regionen for å distribuere EC2 -forekomsten i.""
Standard = "US-East-1"

variabel "instance_type"
Beskrivelse = "Forekomsttype for EC2"
standard = "T2.mikro "

Trinn 3. Som standard, når Terraform oppretter en ny forekomst, benekter standard sikkerhetsgruppe tilknyttet forekomsten all trafikk. Vi vil derfor opprette en ny fil, “Secgrp.TF ”, for å opprette en sikkerhetsgruppe,“ Web-SG ”, som vil tillate den inngående“ SSH ”og“ HTTP ”-trafikken, så vel som all utgående trafikk, som vist i følgende:

1
$ Nano Secgrp.tf

Legg nå følgende kode inni den som vist i følgende:

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
17
18
19
20
21
22
23
ressurs "aws_security_group" "web-sg"
Navn = “New-Secgrp”
Ingress
fra_port = 80
TO_PORT = 80
protokoll = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

Ingress
fra_port = 22
to_port = 22
protokoll = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

egress
fra_port = 0
to_port = 0
protokoll = "-1"
cidr_blocks = ["0.0.0.0/0 "]

Trinn 4. Lag en “hoved.TF ”-fil som vil definere ønsket infrastruktur som vist i følgende:

1
$ nano main.tf

Legg nå følgende konfigurasjon inni den:

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
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
krevde_providers
aws =
Source = "Hashicorp/AWS"
versjon = "~> 3.27 "


krevde_versjon = "> = 0.14.9 "

leverandør "aws"
Region = var.aws_region
shared_credentials_file = "/home/user_name/.AWS/legitimasjon "
profil = "Profil1"

ressurs "aws_instance" "webserver"
AMI = "AMI-09D56F8956AB235B3"
instans_type = var.forekomst_type
Key_name = "EC2-nøkkelnavn"
vpc_security_group_ids = [aws_security_group.Web-SG.id]
Associate_public_ip_address = true
root_block_device
volum_type = "gp2"
volum_stize = "30"
delete_on_termination = falsk

user_data = <#!/bin/bash
sudo apt-get oppdatering
sudo apt -get oppgradering -y
sudo apt -get installer apache2 -y
sudo SystemCTL Restart Apache2
sudo chmod 777 -r/var/www/html/
CD/var/www/html/
sudo ekko "

Dette er testnettstedet vårt distribuert med Terraform.

"> Indeks.html
Eof
tags =
Name = "Eksempelc2instance"


output "ipadress"
verdi = "$ aws_instance.Internett server.public_ip "

I den forrige koden, ikke glem å endre "brukernavnet" til systembrukerens navn og "EC2-nøkkelnavnet" til navnet på nøkkelparet i ditt tilfelle. La oss se litt om parametrene som brukes i filene ovenfor:

aws_instance: Dette skaper en EC2 -forekomst ressurs. Forekomster kan opprettes, endres og ødelegges

Ami: Spesifiser ami -IDen som skal brukes med EC2 -forekomsten

forekomst_type: Dette alternativet brukes til å erklære hvilken type forekomst som skal brukes

Key_name: Angir navnet på nøkkelparet som skal brukes med EC2 -forekomsten

vpc_security_group_ids: Et argument for en liste over sikkerhetsgruppe -ID -er å legge ved

Associate_public_ip_address: Spesifiser om du vil knytte offentlig IP med en forekomst inne i en VPC

brukerdata: Brukes til å bestå kommandoer/data om en forekomst når du lanserer den

Nå, initialiser terraform ved å kjøre følgende kommando:

1
$ terraform init

Bruk nå endringene ved å bruke følgende kommando:

1
$ Terraform Søk

Verifisere prosedyren

La oss nå sjekke om ønsket EC2 -forekomst er opprettet. Gå til EC2 -konsollen og sjekk for løpsforekomstene som vist i følgende bilde:

Siden forekomsten vår ble opprettet med hell, vil vi nå se om nettstedet vi distribuerte fungerer riktig eller ikke. Kopier DNS -navnet eller offentlig IP for forekomsten og skriv den inn i en nettleser som vist i det følgende:

Bra gjort! Webserveren vår fungerer pent.

Rydde opp i ressursene

Når du har testet infrastrukturen din eller når du ikke trenger den, kan du rydde opp ressursene ved å kjøre følgende kommando:

1
$ terraform ødelegger

Konklusjon

Denne guiden lærte oss om å lage en EC2 -forekomst på AWS ved hjelp av Terraform. Vi har også demonstrert hvordan vi skal levere en enkel AWS -webserver ved hjelp av Terraform.