En aquest tema, aprendrem com utilitzar Terraform per proveir recursos a Amazon Web Services (AWS). AWS és una de les plataformes de núvol més populars i Terraform facilita la gestió de la seva infraestructura com a codi (IaC). Explorarem els conceptes bàsics, veurem exemples pràctics i realitzarem exercicis per consolidar els coneixements.

Objectius del Tema

  • Comprendre com configurar Terraform per treballar amb AWS.
  • Aprendre a definir i gestionar recursos AWS amb Terraform.
  • Realitzar exercicis pràctics per crear i gestionar recursos AWS.

Requisits Previs

  • Coneixements bàsics de Terraform.
  • Un compte d'AWS actiu.
  • AWS CLI instal·lat i configurat.

Configuració Inicial

  1. Configurar AWS CLI

Abans de començar, assegura't que tens l'AWS CLI instal·lat i configurat. Pots seguir les instruccions oficials d'AWS per a la instal·lació i configuració.

aws configure

  1. Crear un fitxer de configuració de Terraform

Crea un directori per al teu projecte i un fitxer main.tf dins d'aquest directori.

mkdir terraform-aws
cd terraform-aws
touch main.tf

Definició de Proveïdor AWS

El primer pas és definir el proveïdor AWS en el fitxer main.tf.

provider "aws" {
  region = "us-west-2"
}

Aquest bloc indica a Terraform que utilitzarà AWS com a proveïdor i especifica la regió on es crearan els recursos.

Creació d'un Recurs AWS: EC2 Instance

  1. Definir un recurs EC2

Afegim un bloc de recurs per crear una instància EC2.

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0" # AMI d'Amazon Linux 2
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleInstance"
  }
}

  1. Explicació del codi

  • resource "aws_instance" "example": Defineix un recurs d'instància EC2 amb el nom "example".
  • ami: Identificador de la imatge d'Amazon Machine (AMI) que s'utilitzarà per crear la instància.
  • instance_type: Tipus d'instància (en aquest cas, t2.micro).
  • tags: Etiquetes per identificar la instància.

  1. Inicialitzar i aplicar la configuració

Inicialitza el directori de treball de Terraform.

terraform init

Aplica la configuració per crear la instància EC2.

terraform apply

Confirma l'aplicació escrivint yes quan se't demani.

Exercici Pràctic

Objectiu

Crear una instància EC2 amb un grup de seguretat que permeti el trànsit HTTP i SSH.

Passos

  1. Definir el grup de seguretat
resource "aws_security_group" "example" {
  name_prefix = "example-"

  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}
  1. Associar el grup de seguretat a la instància EC2
resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  security_groups = [aws_security_group.example.name]

  tags = {
    Name = "ExampleInstance"
  }
}
  1. Aplicar la configuració
terraform apply

Solució

provider "aws" {
  region = "us-west-2"
}

resource "aws_security_group" "example" {
  name_prefix = "example-"

  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  security_groups = [aws_security_group.example.name]

  tags = {
    Name = "ExampleInstance"
  }
}

Resum

En aquest tema, hem après a configurar Terraform per treballar amb AWS i a crear una instància EC2 amb un grup de seguretat. Hem vist com definir recursos i aplicar configuracions utilitzant Terraform. A més, hem realitzat un exercici pràctic per consolidar els coneixements adquirits. En el proper tema, explorarem com proveir recursos a Azure amb Terraform.

© Copyright 2024. Tots els drets reservats