1
resposta

[Projeto] Script Terraform para subir um projeto em uma instancia EC2

Olá pessoal, Espero que todos estejam bem.

Na aula 03, onde criamos arquivos com terraform, decidi ir um pouco além do conteudo e pensei, porque não criar um script que pode copiar a pasta de uma aplicaçao ou projeto, e já criar nossa EC2 com estes arquivos? Depois de algumas estudando e utilizando algumas ferramentas, criei este script que faz exatamente isso: Cria uma instancia EC2 já com o codigo do projeto e com a porta 8080 liberada. Gostaria de compartilhar o codigo com voces e, claro, sugestoes sempre vindas.

Obrigado aos instrutores Guilherme Lima e Leonardo Sartorello pelo conteudo.

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

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

resource "aws_instance" "app_server" {
  ami           = "ami-080e1f13689e07408"
  instance_type = "t2.micro"
  key_name = "lab"

  tags = {
    Name = "Primeira Instancia"
  }

    connection {
    type        = "ssh"
    user        = "ubuntu"
    private_key = file("~/Desktop/.pem") *local da chave pem*
    host        = self.public_ip
  }

  provisioner "file" {
    source      = "~/Desktop/ecom_tools" - *aqui esta a pasta dos meus arquivos*
    destination = "/home/ubuntu/ecom_tools"
  }

  # Executar script após a cópia dos arquivos
  user_data = <<-EOF
    #!/bin/bash
    nohup busybox httpd -f -p 8080 -h /home/ubuntu/ecom_tools &
  EOF
}


resource "aws_security_group" "instance_sg" {
  name        = "instance_sg"
  description = "Security group for instance"

  # Regra de ingresso para liberar a porta 8080
  ingress {
    from_port   = 8080
    to_port     = 8080
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}
1 resposta

Oii, Victor, tudo bem?

Muito obrigada por compartilhar aqui o que você fez! É bem legal que você foi além e incrementou o script.

Se quiser postar mais sobre suas descobertas, fique à vontade! ^_^

Abraços e bons estudos!