본문 바로가기

네트워크(Network)

DNS Cache TTL(Time To Live)

failover 관련된 학습을 하면서 추가로 공부한 설정값이다.

 

DNS는 도메인 이름과 매핑된 IP 주소를 저장해 놓고 요청이 오면 해당 도메인에 맞는 IP를 반환해 주는 역할을 한다. (CNAME으로 도메인과 도메인을 매핑해주기도 함)

 

그리고 어플리케이션에서는 도메인에 해당하는 IP를 가져오기 위해 DNS 에 요청을 보내고 이 과정을 dns lookup 이라고 한다.

IP를 가져오는 과정은 비용이 많이 들기 때문에, JVM의 경우 가져온 IP를 캐싱하고 있는데, 이 캐싱 유지 시간을 DNS Cache TTL 이라고 한다.

AWS 에서는 캐싱 시간을 5초 정도로 설정해 둘것을 권장하고 있다. (https://docs.aws.amazon.com/ko_kr/sdk-for-java/latest/developer-guide/jvm-ttl-dns.html)

캐싱시간을 짧게 유지하는 이유는, 로드 벨런싱, failover 등으로 인해 매핑된 IP 주소가 바뀔 수 있기 때문이다.

 

 

실제 로컬에서 테스트 하는 방법은 참고 링크로 남겨 둔다.

https://medium.com/naverfinancial/jvm%EC%9D%98-dns-cache-%EC%84%A4%EC%A0%95%EC%97%90-%EB%94%B0%EB%A5%B8-%EA%B0%B1%EC%8B%A0%EC%8B%9C%EA%B0%84-%ED%85%8C%EC%8A%A4%ED%8A%B8-c66d7b871302