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.
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
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.
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.
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.
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.
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.