Curs 4 - Terraform și AWS: Automatizarea Infrastructurii

Acest curs explorează utilizarea Terraform pentru gestionarea infrastructurii în AWS.

1. Ce este Terraform?

Terraform este un instrument Infrastructure as Code (IaC) care permite crearea, gestionarea și versionarea infrastructurii folosind fișiere de configurare.

2. Instalarea Terraform

Terraform poate fi instalat pe Windows, macOS și Linux. Pe Linux și macOS, instalarea se face cu:

curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt update && sudo apt install terraform

3. Configurarea Terraform pentru AWS

Terraform necesită configurarea credențialelor AWS pentru a putea interacționa cu infrastructura.

aws configure

Fișierul `~/.aws/credentials` va conține cheile de acces AWS:

[default]
aws_access_key_id=YOUR_ACCESS_KEY
aws_secret_access_key=YOUR_SECRET_KEY

4. Crearea unei Instanțe EC2 cu Terraform

Exemplu de fișier `main.tf` pentru crearea unei instanțe EC2:

provider "aws" {
  region = "us-east-1"
}

resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  tags = {
    Name = "Terraform-EC2"
  }
}

Comenzi Terraform pentru aplicarea configurației:

# Inițializarea Terraform
terraform init

# Crearea planului infrastructurii
terraform plan

# Aplicarea configurației
terraform apply -auto-approve

5. Gestionarea Grupurilor de Securitate

Terraform poate configura reguli de firewall folosind `aws_security_group`.

resource "aws_security_group" "web_sg" {
  name_prefix = "web-sg-"
  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

6. Crearea unei Baze de Date RDS

Terraform poate gestiona baze de date AWS RDS.

resource "aws_db_instance" "mydb" {
  allocated_storage    = 20
  engine              = "mysql"
  instance_class      = "db.t2.micro"
  username           = "admin"
  password           = "password123"
}

7. Distrugerea Infrastructurii

Terraform permite eliminarea tuturor resurselor cu o singură comandă:

terraform destroy -auto-approve

Resurse suplimentare: