본문 바로가기
삵

자바 앱이 내부 ALB로 붙는데 며칠 지나면 연결 타임아웃이 납니다

조회 2 · 댓글 0
영영웅문작성자2026년 10월 8일

사내 배치성 자바 앱(Spring Boot 2.7, Temurin JDK 17, RHEL 8)에서 AWS 내부 ALB의 DNS 이름으로 REST 호출을 하는데, 배포 직후에는 멀쩡하다가 며칠 지나면 특정 인스턴스에서만 연결이 안 됩니다. 앱을 재기동하면 바로 정상으로 돌아옵니다.

증상이 나는 쪽 스택은 이렇게 찍힙니다.

java.net.SocketTimeoutException: Connect timed out
  at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect
  ...
Caused while calling https://internal-xxxx.ap-northeast-2.elb.amazonaws.com/api/...

그 시점에 장비에서 직접 확인해보면 DNS 자체는 정상입니다.

# dig +short internal-xxxx.ap-northeast-2.elb.amazonaws.com
10.31.20.41
10.31.20.9
# (앱 재기동 전에 잡아둔 패킷에서는)
# SYN 목적지가 10.31.20.133 -> 응답 없음

즉 OS resolver가 주는 IP와 앱이 실제로 붙는 IP가 다릅니다. ALB가 스케일되면서 예전 노드 IP가 빠진 걸로 보이는데, 앱만 옛날 주소를 계속 물고 있는 모양입니다. JVM 기동 옵션에는 DNS 관련으로 넣은 게 없고 -Dsun.net.inetaddr.ttl 같은 걸 줘봐도 안 먹는 것 같습니다.

ALB는 60초 TTL이라고 알고 있는데 왜 앱은 하루이틀 지난 IP를 붙잡고 있는지, 그리고 이걸 애플리케이션 레벨에서 어디로 제어하는 게 맞는지 궁금합니다. 조언 부탁드립니다.

로그인 후 답글을 남길 수 있습니다.