3
respostas

[Dúvida] Connection Refused

Boa tarde, fiquei praticamente a tarde inteira tentando entender por que está dando connection refused na minha instância. Eu salvei um projeto backend java e spring boot, consegui chamar os endpoints via CURL normalmente dentro da máquina utilizando ssh mas tentei usar a URL public IPv4 DNS e completei com o request mapping mas dá connection refused. Seguem minhas configurações: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

Também tenho uma task definition. Consegui acessar esse container na port 8080 dentro do console da ec2, mas não consigo bater na ec2 para devolver a mesma resposta

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Também tenho uma task definition. Consegui acessar esse container na port 8080 dentro do console da ec2, mas não consigo bater na ec2 para devolver a mesma resposta

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

up...

Oi Yves, tudo bem?

Desculpe a demora em retornar. Vi que você já finalizou o curso, mas irei dar dicas do que pode ter acontecido.

Primeiramente, é ótimo saber que você já realizou várias tentativas para resolver essa questão. O erro "Connection Refused" geralmente indica que a conexão com a porta desejada na instância foi recusada. Isso pode ser causado por várias razões, e vou abordar algumas possíveis soluções e direcionamentos para você investigar.

  1. Verifique as Regras de Segurança (Security Groups): O AWS EC2 utiliza os Security Groups para controlar o tráfego de entrada e saída das instâncias. Se você consegue acessar o container na porta 8080 dentro do console da EC2, mas está enfrentando problemas ao acessar através do endereço público, é importante revisar as regras de segurança. Certifique-se de que a porta 8080 está aberta para o tráfego externo no Security Group associado à sua instância.

    Aqui está um exemplo de como adicionar uma regra de entrada no grupo de segurança através da AWS CLI:

    aws ec2 authorize-security-group-ingress --group-id SEU_ID_DO_SECURITY_GROUP --protocol tcp --port 8080 --cidr 0.0.0.0/0
    
  2. Confirme as Configurações de Firewall Interno: Além das configurações de segurança da AWS, verifique se não há um firewall interno dentro da instância (como o firewall do sistema operacional) bloqueando as conexões na porta 8080. Certifique-se de que o serviço do Spring Boot está realmente ouvindo na porta 8080 e não sendo bloqueado por configurações internas.

  3. Verifique as Configurações de Rede do Spring Boot: No seu projeto Spring Boot, confirme se as configurações do servidor estão corretas. Certifique-se de que você está usando a configuração adequada para o host e porta em que o servidor Spring Boot está sendo executado. Uma configuração típica pode ser:

    server.address=0.0.0.0
    server.port=8080
    

    O server.address=0.0.0.0 permite que o servidor aceite conexões de qualquer endereço IP.

  4. Verifique o Endereço IPv4 Público DNS: Ao tentar acessar a sua instância EC2 via URL pública IPv4 DNS, certifique-se de que o endereço esteja correto e que você esteja usando o formato correto, como http://seu-dns-publico:8080. Certifique-se também de que a instância esteja em estado "running" e com um endereço IP público associado.

  5. Verifique se o Serviço está em Execução: Verifique se o seu serviço Spring Boot está realmente em execução dentro da instância EC2. Você pode fazer isso através do comando SSH na instância e executando um teste de conexão local:

    curl http://localhost:8080
    

    Isso ajudará a garantir que o serviço esteja realmente ouvindo na porta 8080 e capaz de lidar com solicitações.

  6. Logs e Debugging: Caso todas as configurações pareçam corretas, mas você ainda está enfrentando problemas, é uma boa ideia verificar os logs de aplicativos e servidores para obter mais informações sobre o que pode estar dando errado. Logs detalhados podem ajudar a identificar onde o processo está falhando.

Lembre-se de que a resolução de problemas é um processo iterativo e muitas vezes envolve verificar várias configurações e cenários. No entanto, com paciência e persistência, você poderá encontrar a causa raiz do problema e resolvê-lo com sucesso.

Espero que essas orientações tenham sido úteis para você.

Um abraço e bons estudos.