6강 / 20강
TTL — 바꿨는데 왜 안 바뀌나
전파는 퍼지는 게 아니라 캐시가 만료되는 것이다
레코드를 바꿨습니다. 그런데 내 컴퓨터에서는 여전히 옛 주소가 나옵니다. 동료는 새 주소가 나온다고 하고요. 왜 사람마다 다를까요.
답은 캐시가 제각각 다른 시각에 만료되기 때문입니다.
이 한 가지만 기억해도 이사 사고를 절반은 막습니다.
Python
브라우저에서 실행
서버를 옮기기로 했다면 — 이 순서
| 언제 | 무엇을 |
|---|---|
| 이사 하루 전 | TTL 을 60초로 낮춘다. 그리고 옛 TTL 만큼 기다린다 |
| 이사 당일 | 새 서버를 먼저 완전히 띄운다 (옛 서버도 그대로 둔 채) |
| 그다음 | 레코드를 새 주소로 바꾼다 — 60초 뒤면 거의 다 넘어간다 |
| 하루 뒤 | 옛 서버 로그에 요청이 없으면 내린다. TTL 을 원래대로 올린다 |
🤔 확인 문제
TTL 을 86400(하루)으로 걸어 둔 A 레코드를 방금 바꿨습니다. 전 세계가 새 값을 보게 되기까지 최대 얼마?
해설 이미 옛 답을 받아 간 해석기는 그 답을 하루 동안 믿습니다. 그래서 바꾸기 전에 TTL 을 낮춰 두는 것이 유일한 대비책입니다.