네임서버에서 TTL(Time To Live)의 개념






사내에 네임서버가 먼지 TTL이 먼지 이해를 못하는 분에게 읽어 봐라고 급 작성한걸 정리 합니다.

정작 중요한건 전 SE가 아닌데 말이지요....


일단 TTL은 DNS쿼리에 대한 결과를 받아갔을 경우 결과값을 캐쉬에 저장하는 시간을 의미합니다.

네임서버에서 TTL(Time To Live) 의 개념은 서비스 관리자 입장에서는 너무나 중요하다고 알고 있습니다 관련 팁들도 많이 보이구요


TTL은 다음 레코드 변경사항이 적용될 때까지 걸리는 시간(초)을 결정하는 DNS 레코드 값입니다. 

레코드의 현재 TTL은 변경사항이 적용될 때까지 걸리는 시간을 결정합니다. 

예를 들어 TTL 값이 86400초인 레코드에 대한 변경사항은 적용될 때까지 24시간이 소요됩니다.


PC는 세팅된 네임서버를 통래 여러분의 IP쿼리를 시도하게 됩니다.

이렇게 되는 이유는 모든 서비스는 일단 서버의 IP를 프로그램이 알아야 하기 때문입니다. 


TTL이 3600초로 설정된 l2j.co.kr 이라는 도메인을 최초 쿼리를 해서 응답 값을 가지고 오면, 이값은 DNS서버나 사용자 PC의 캐쉬(메모리)에 3600초를 시작으로 매초마다 시간이 감소 되다 0이 되면 메모리에서 사라집니다. 


그러면 PC가 사용하는 네임서버는 처음으로 질문되어진 여러분 도메인에 대한 IP주소를 모르기 때문에, 최상위 도메인 관리자로부터 여러분이 지정해준 도메인의 네임서버까지 도메인의 IP쿼리 작업을 진행할 것입니다.


이 TTL값은 너무 크게 주면 DNS 서버가 받는 쿼리에 대한 부하는 적어지지만 갱신주기가 느려지기 때문에 

IP가 변경 되어 DNS에서 수정을 할 경우 전파 되는 시간이 길어집니다. 반대로 너무 적게주면 DNS서버의 부하는 커지는 

반면 전파되는 시간은 짧아집니다. 이 점을 감안하시어 적절한 값을 주시는 것이 좋습니다. 

이런 경우 홈페이지 접속이 2~3초 혹은 4~5초 정도 접속 지연이 생깁니다.


정상적인 서비스가 되고 있는 도메인의 경우 IP변경이 1년에 한두번 있을까 말까 합니다.

신규 서비스나 서브 도메인 추가나 개발완료후 DNS 연결을 변경 하는 작업이나 서버 교체나 증설 등등에 작업이 아니고선 거의 없지요


Refresh는 1차와 2차 네임서버가 Zone Transfer 를 이용해 동기화 할 경우 어느 주기마다 동기화를 할지 정해주는 시간입니다. 

예를 들어 3600초로 설정을 하게되면 1시간마다 동기화를 시도하게 됩니다. 

RFC1912 에 의한 권장 SOA Refresh Time은 20분~2시간 또는 2시간~12시간 입니다. 


인터넷상의 서버가 레코드의 업데이트 사항을 매시간 확인하도록 TTL 값을 3600으로 설정할 것을 권장하는곳이 많습니다.

이렇게 하면 향후 레코드를 업데이트할 경우 변경사항이 적용될 때까지 한 시간이 소요됩니다. 


보통은 변경 사항이 발생되면 빠른 업데이트를 해야 하기 때문에 IP변경 이벤트 발생시점 TTL 이전에만 30분으로 TTL을 설정하시고

변경사항이 더욱 빠르게 적용되도록 하려면 TTL을 300초(5분)와 같이 더 짧게 설정할 수도 있습니다.


IP변경 후 정상적인 서비스가 3일정도 지난 후에는 다시 하루로(TTL 값이 86400초) TTL을 설정을 변경하시는게 좋다고 생각합니다.


뭐 SE가 아닌 개발자의 짧은 지식이므로 영양가 없을 수도 있으나 전 이렇게 진행을 보통 하고 있습니다.










저작자 표시 동일 조건 변경 허락
신고