2
respostas

[Dúvida] Erro ao executar Terraform e executar nohup

Boa tarde, pessoal! Estou executando o código abaixo, mas não fica disponível a página para acessar via IP na porta 8080, mas quando eu conecto via SSH e inicio o busybox com nohup, ele funciona. Alguém tem uma ideia do que pode ser ?

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

  required_version = ">= 1.2.0"
}

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

resource "aws_instance" "app_server" {
  ami           = "ami-0e83be366243f524a"
  instance_type = "t2.micro"
  key_name = "iac_estudos"
user_data = <<-EOF
              #!/bin/bash
              apt-get update
              apt-get install -y busybox
              cd /home/ubuntu
              echo "<h1>Feito! Terraform</h1>" > index.html
              nohup busybox httpd -f -p 8080 &
              EOF


  tags = {
    Name = "TesteAWS"
  }
}
2 respostas

Boa tarde! Faça essas etapas

  1. Segurança de Grupo (Security Group): Certifique-se de que a instância tenha as regras de segurança de grupo corretas que permitam o tráfego na porta 8080. O código que você compartilhou não inclui a configuração de segurança de grupo, portanto, a instância pode ter uma política de segurança padrão que não permite o tráfego na porta 8080.

  2. Firewall do AWS: Além das regras de segurança de grupo, verifique se não há nenhuma configuração de firewall adicional no AWS que possa estar bloqueando o tráfego para a porta 8080.

  3. Registro de Eventos: Verifique os logs e eventos da instância para ver se há algum erro relacionado à execução do busybox. Você pode acessar os registros do AWS Console para obter informações detalhadas.

  4. Tempo de inicialização: Pode levar algum tempo para que o servidor HTTP dentro do busybox inicie e fique disponível. Verifique se a instância está totalmente iniciada antes de tentar acessar a página.

  5. Conectividade de rede: Certifique-se de que a instância tenha conectividade de rede para baixar os pacotes do busybox e para servir a página na porta 8080. Isso pode envolver a configuração correta de rotas e conectividade com a Internet.

  6. Teste localmente: Tente acessar o servidor HTTP a partir da própria instância, utilizando curl ou wget, para garantir que o servidor esteja realmente funcionando. Você pode executar comandos como curl http://localhost:8080 na instância para verificar isso.

Ao usar nohup e busybox para criar um servidor HTTP é uma abordagem simplificada. Para ambientes de produção, é recomendável usar servidores web mais robustos, como o Apache ou o Nginx. E , considere a adição de um script de inicialização adequado ao invés do user_data, que pode lidar com casos de falha e reinicialização automática do servidor HTTP, caso ele pare de funcionar.

Oi, obrigado pelo retorno. tem política liberando todo acesso de entrada e saída para ipv4 e ipv6. Inclusive, quando conecto na EC2 e inicio manualmente funciona, estranhamente via terraform não.