1
resposta

[Projeto] Projeto iac

O uso de Infrastructure as Code com Terraform traz automação, padronização e controle para a criação de ambientes em nuvem. No exemplo abaixo, mostramos como criar um cluster ECS com Fargate e definir uma task que executa uma aplicação Django containerizada.

O primeiro bloco utiliza um módulo pronto da comunidade para configurar o ECS:

module "ecs" {
  source = "terraform-aws-modules/ecs/aws"

  name               = var.ambiante
  container_insights = true
  capacity_providers = ["FARGATE"]
  default_capacity_provider_strategy = [
    {
      capacity_provider = "FARGATE"
    }
  ]
}

Esse módulo automatiza a criação do cluster ECS com suporte ao Fargate e ativa os insights de monitoramento. Usar módulos prontos do Terraform Registry ajuda a acelerar o desenvolvimento e reduzir erros.

Na sequência, temos a definição de uma task do ECS, que representa a aplicação Django que será executada em containers:

resource "aws_ecs_task_definition" "Django-API" {
  family                   = "Django-API"
  requires_compatibilities = ["FARGATE"]
  network_mode             = "awsvpc"
  cpu                      = 256
  memory                   = 512
  execution_role_arn       = aws_iam_role.cargo.arn
  container_definitions = jsonencode(
    [
      {
        "name"      = "producao"
        "image"     = "962752222089.dkr.ecr.us-west-2.amazonaws.com/producao:v1"
        "cpu"       = 256
        "memory"    = 512
        "essential" = true
        "portMappings" = [
          {
            "containerPort" = 8000
            "hostPort"      = 8000
          }
        ]
      }
    ]
  )
}

Nessa definição, é configurado:

O uso do Fargate, que elimina a necessidade de gerenciar servidores

CPU e memória alocados para o container

A imagem Docker hospedada no ECR

O mapeamento da porta 8000, onde o Django estará escutando

Além disso, é usada uma role do IAM para execução da task, garantindo os devidos acessos à infraestrutura.

Essa abordagem permite criar, escalar e manter ambientes de produção ou desenvolvimento de forma segura, reutilizável e rastreável, com todo o histórico versionado em arquivos Terraform.

1 resposta

Oi, Ubirajara! Como vai?

Agradeço por compartilhar.

Gostei da forma como você destacou o uso de módulos do Terraform Registry, pois realmente traz agilidade e padronização no provisionamento. Sua explicação sobre a definição da task do ECS também ficou bem clara.

Continue explorando esse tipo de abordagem, pois ela fortalece bastante seu domínio em Infraestrutura como Código.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!