TTL은 어떤 역할을 합니까?
브라우저에 도메인 이름을 입력하는 행위는 로컬 리졸브 이름 서버에 도메인의IP 주소를 요청하는 것과 같습니다.
이러한 요청이 발생하면 리졸브 이름 서버가 결과를 더 빨리 전달할 수 있도록 요청과 관련된 정보를 캐시하거나 저장합니다. 이 정보가 캐시에 없는 경우 리졸브 이름 서버는 몇 단계를 더 진행하여 권한 있는 이름 서버에 도메인을 요청합니다.
정보를 캐시와 권한 있는 이름 서버 중 어디에서 수신하든 상관없이 해당 정보는 리졸브 이름 서버에 저장되어 다음 번 요청이 이루어질 때 확인 시간이 빨라집니다.
TTL은 어떤 원리로 작동합니까?
TTL은 분 또는 시간이 아닌 초 단위로 측정됩니다. 예를 들어, 30분 TTL을 설정하면 30분은 TTL 1,800초로 변환됩니다.
TTL이 낮으면 클라이언트가 이름 서버를 더 자주 쿼리해야 하므로, 도메인 이름에 대한 쿼리 트래픽이 더 높아집니다. 반대로 TTL이 높으면 IP를 빨리 전환해야 할 경우 중단이 발생할 수 있습니다.
초기 TTL 설정은 고정되지 않습니다. IP를 변경할 계획인 경우 중단을 방지하려면 변경하기 몇 시간 전에 TTL을 낮은 값으로 설정하면 됩니다. IP가 변경되면 TTL을 다시 늘릴 수 있습니다.
TTL을 어떤 값으로 설정해야 합니까?
권장 TTL은 레코드 유형에 따라 달라집니다.
페일오버를 포함한 레코드
페일오버를 포함한 A 레코드의 경우 TTL이 180초 이하인 것이 좋습니다. 기본 IP가 중단된 동안 레코드의 IP가 변경되므로, TTL을 낮게 설정하면 트래픽이 중단된 IP로 이동하지 않습니다.
페일오버가 없는 레코드
페일오버가 없는 A 레코드의 경우TTL이 1,800~3,600초인 것이 좋습니다. 이러한 레코드는 무척 자주 쿼리되므로, TTL을 높게 설정할수록 대량의 쿼리 비용이 부과되지 않습니다. 그러나 TTL을 3,600초 이하로 설정하면 적절한 시간 내에 레코드를 변경할 수 있습니다.
배니티 이름 서버에 대한 레코드
레코드가 변경되지는 않아도 해당 배니티 이름 서버가 있는 도메인에 대해 새 쿼리가 생성되는 경우 쿼리가 이루어지므로, 배니티 이름 서버의 A 레코드에 대해 86,400초의 TTL이 권장됩니다.
CNAME/ANAME/MX/HTTP 리디렉션 레코드
CNAME/ANAME/MX/HTTP 리디렉션 레코드의 경우 TTL은 1,800~3,600초가 권장되며, TTL이 높은 편이 좋습니다. 이러한 레코드는 변경이 적용될 다른 레코드로 지정되기 때문에 해당 레코드 자체는 거의 변경되지 않습니다. 그러나 이러한 레코드는 상당히 자주 쿼리되기 때문에 TTL이 높을수록 쿼리 수가 줄어듭니다.
TXT(SPF)/DMARC/DKIM/CAA 레코드
TXT(SPF)/DMARC/DKIM/CAA 레코드의 경우 1,800~3,600초의 TTL이 권장됩니다. 자주 변경할 필요가 없다면 TTL을 높게 설정하면 됩니다. 이러한 레코드는 주로 정적 확인에 사용되므로, 높게 지정해도 충분합니다.
NS 레코드
이름 서버 레코드는 쿼리 수가 많고 변경률이 낮은 유형이기 때문에 86,400초의 TTL이 권장됩니다. 이러한 레코드는 도메인에 대한 레코드를 쿼리할 때마다 쿼리되므로, TTL이 높을수록 쿼리 수가 줄어듭니다.
PTR 레코드
포인터 레코드는사용 방법에 따라 자주 변경될 수 있기 때문에 1,800~3,600초의 TTL이 권장됩니다. 자주 변경할 계획이 없다면 TTL을 높게 설정하는 것이 좋습니다.