TTL Değeri Optimizasyonu: Ne Zaman Değiştirilmeli?
TTL (Time To Live), DNS kaydının önbellekte ne kadar süre saklanacağını belirler. Düşük TTL değişiklikleri hızlandırır ama DNS sorgu sayısını artırır. Yüksek TTL performansı artırır ama değişiklikleri yavaşlatır.
Sunucu taşıma veya IP değişikliğinde yanlış TTL stratejisi saatlerce kesintiye yol açar. Bir e-ticaret sitesi canlı ortamda IP değiştirirken TTL'yi önceden düşürmemişse, eski IP 24 saat boyunca bazı kullanıcılara servis veremez. Sipariş kaybı, destek yükü ve itibar hasarı oluşur.
TTL Nedir?
TTL, DNS kaydının önbellekte kalma süresini saniye cinsinden belirler. 3600 saniye (1 saat) TTL değeri, DNS sunucularının kaydı 1 saat önbellekte tutacağı anlamına gelir. 1 saat sonra yeni sorgu yapılır.
example.com. 3600 A 192.0.2.1
Bu kayıtta TTL değeri 3600 saniyedir. DNS çözümleyicileri bu kaydı 1 saat önbellekte tutar. 1 saat içinde aynı domain sorgulandığında önbellekten yanıt verilir, gerçek DNS sunucusuna sorgu gitmez.
TTL değeri her kayıt türü için ayrı tanımlanabilir. A kaydı için 3600, MX kaydı için 7200, TXT kaydı için 1800 gibi farklı değerler kullanılabilir.
Yaygın TTL Değerleri
DNS yönetim panellerinde yaygın kullanılan TTL değerleri:
60 saniye = 1 dakika
300 saniye = 5 dakika
600 saniye = 10 dakika
1800 saniye = 30 dakika
3600 saniye = 1 saat
7200 saniye = 2 saat
14400 saniye = 4 saat
86400 saniye = 24 saat
Varsayılan TTL genellikle 3600 (1 saat) veya 86400 (24 saat) civarındadır. Bazı DNS sağlayıcıları minimum TTL sınırı koyar. Örneğin 60 saniyeden düşük TTL kabul edilmeyebilir.
Düşük TTL Ne Zaman Kullanılır?
300-600 saniye TTL, IP değişikliğinin 5-10 dakikada yayılmasını sağlar. CDN kullanıyorsanız veya yük dengeleme yapıyorsanız düşük TTL zorunludur. Cloudflare gibi bazı CDN'ler kendi TTL yönetimini yapar; sizin ayarınız etkisiz kalır.
Ama düşük TTL DNS sorgu sayısını artırır. Günde 100 bin ziyaretçisi olan bir site, TTL 300 saniye ise günde yaklaşık 28 bin DNS sorgusu üretir. TTL 3600 saniye olsaydı bu sayı 2400'e düşerdi. Bazı DNS sağlayıcıları sorgu başına ücret alır.
Düşük TTL sayfa yükleme süresine 10-50ms ekler. Çoğu kullanıcı fark etmez ama yüksek trafikli sitelerde bu gecikme birikir.
Yüksek TTL Ne Zaman Kullanılır?
3600-86400 saniye TTL, statik altyapılar için uygundur. IP adresi ayda bir veya daha seyrek değişiyorsa yüksek TTL DNS yükünü azaltır ve maliyet düşürür.
Ama IP değişikliğinde eski IP 24 saat boyunca bazı önbelleklerde kalır. Kullanıcıların bir kısmı siteye erişemez. Kurumsal ağlar ve bazı ISP'ler TTL'yi yok sayıp kendi önbellek politikalarını uygular; bu durumda propagation daha da uzar.
Yüksek TTL kullanıyorsanız IP değişikliğini en az 48 saat önceden planlamalısınız. Önce TTL'yi 300'e düşürün, eski TTL süresinin dolmasını bekleyin, sonra IP'yi değiştirin.
Değişiklik Öncesi TTL Düşürme Stratejisi
DNS değişikliği planlanıyorsa TTL'yi önceden düşürün:
1. Değişiklikten 24-48 saat önce TTL'yi 300 saniyeye düşürün.
2. Eski TTL süresinin dolmasını bekleyin. Eski TTL 86400 saniye ise 24 saat bekleyin. Bu süre zarfında tüm önbellekler yeni TTL değerini alır.
3. DNS değişikliğini yapın. TTL 300 saniye olduğu için değişiklik 5 dakikada yayılmaya başlar.
4. Değişiklik tamamlandıktan sonra TTL'yi tekrar yükseltin. Ama acele etmeyin; birkaç gün düşük TTL ile çalışmak sorun yaratmaz.
Bu stratejiyi atlarsanız kesinti süresi saatlere çıkar. Bir müşteri, nameserver değişikliğinde TTL'yi düşürmeyi unutmuş ve 18 saat boyunca sitenin yarısı eski sunucuya, yarısı yeni sunucuya bağlanmış. E-posta teslimi bozulmuş, form gönderimi çalışmamış.
Kayıt Türüne Göre TTL Stratejisi
A kaydı için 3600-7200 saniye uygundur. IP adresi sık değişmiyorsa yüksek TTL DNS yükünü azaltır.
MX kaydı için 7200-14400 saniye tercih edilir. E-posta sunucusu adresi nadiren değişir. Yüksek TTL e-posta teslimatını hızlandırır. Ama SPF kaydı değiştiğinde MX kaydı da etkilenebilir; bu durumda TTL'yi geçici olarak düşürün.
TXT kaydı (SPF, DKIM, DMARC) için 3600 saniye uygundur. SPF kaydı yanlış yapılandırılmışsa e-posta spam klasörüne düşer. Düzeltme yaptığınızda değişikliğin hızlı yayılmasını istersiniz.
CNAME kaydı için 1800-3600 saniye tercih edilir. CNAME hedefi değişebilir; özellikle CDN veya üçüncü parti servis kullanıyorsanız düşük TTL mantıklıdır.
CDN ve Yük Dengeleme Senaryoları
CDN kullanıyorsanız 300-600 saniye TTL önerilir. CDN sağlayıcısı IP adreslerini dinamik değiştirir; düşük TTL bu değişikliklerin hızlı yayılmasını sağlar.
Yük dengeleme sistemlerinde düşük TTL kritik. Sunucu çökerse sağlık kontrolü IP adresini değiştirir. TTL 300 saniye ise çöken sunucu 5 dakikada devre dışı kalır. TTL 3600 saniye ise 1 saat boyunca bazı kullanıcılar çöken sunucuya yönlendirilir.
Cloudflare gibi bazı CDN'ler kendi TTL yönetimini yapar. Sizin TTL ayarınız etkisiz kalır. Cloudflare her zaman 300 saniye TTL kullanır. CDN sağlayıcısının dokümantasyonunu kontrol edin; yoksa gereksiz yere TTL ayarıyla uğraşırsınız.
TTL ve DNS Propagation İlişkisi
TTL 300 saniye ise propagation en az 5 dakika sürer. TTL 86400 saniye ise 24 saat veya daha uzun sürebilir.
Tüm DNS sunucuları TTL'ye uymaz. Bazı ISP'ler kendi önbellek politikalarını uygular. TTL 300 saniye olsa bile bazı sistemler 1 saat önbellekte tutar. Kurumsal ağlar bazen 24 saat sabit önbellek kullanır; TTL ayarınız ne olursa olsun.
TTL düşürme stratejisi bu yüzden eski TTL süresinin dolmasını bekler. Eski TTL 24 saat ise, TTL'yi düşürdükten sonra 24 saat beklersiniz. Böylece tüm önbellekler yeni TTL değerini alır. Bu bekleme süresini atlarsanız bazı kullanıcılar eski IP'yi 24 saat daha görür.
TTL Değişikliği Sonrası Yükseltme
DNS değişikliği tamamlandıktan sonra TTL'yi tekrar yükseltin. Düşük TTL kalıcı olarak kullanılmamalı; DNS sorgu sayısı gereksiz yere yüksek kalır.
1. DNS değişikliğini doğrulayın. Farklı lokasyonlardan dig veya nslookup ile kontrol edin.
2. 24-48 saat bekleyin. Propagation tamamen tamamlansın.
3. TTL'yi 3600 veya daha yüksek bir değere çıkarın.
Birkaç gün düşük TTL ile çalışmak sorun yaratmaz. Ama bir ay boyunca TTL 300 saniye kalırsa DNS maliyeti 10 kat artar.
Minimum ve Maksimum TTL Sınırları
Çoğu DNS sağlayıcısı minimum TTL sınırı koyar. Cloudflare 60 saniye, AWS Route 53 60 saniye, Google Cloud DNS 0 saniye (ama önerilmez) kabul eder. 30 saniyeden düşük TTL genellikle reddedilir.
Maksimum TTL genellikle 86400 saniye (24 saat) veya daha yüksektir. Bazı sağlayıcılar 604800 saniye (7 gün) izin verir. Ama 7 günlük TTL kullanırsanız IP değişikliğinde 7 gün boyunca bazı kullanıcılar eski IP'yi görür. Pratik değil.
RFC standartları TTL için üst sınır belirtmez. Teoride 2147483647 saniye (68 yıl) bile kullanabilirsiniz. Ama 86400 saniyeden yüksek TTL nadiren mantıklıdır.
TTL İzleme ve Optimizasyon
DNS sağlayıcınız sorgu istatistikleri sunuyorsa kontrol edin. Günlük sorgu sayısı beklediğinizden yüksekse TTL'yi artırın. Cloudflare Analytics, AWS Route 53 Metrics veya Google Cloud DNS Logging bu verileri gösterir.
Değişiklik sıklığını değerlendirin. Ayda bir veya daha seyrek değişiklik yapıyorsanız 7200-14400 saniye uygundur. Haftada bir veya daha sık değişiklik yapıyorsanız 1800-3600 saniye tercih edin.
WebPageTest veya Chrome DevTools ile DNS çözümleme süresini ölçün. DNS süresi 100ms'nin üstündeyse sorun var demektir; ama bu genellikle TTL'den değil DNS sunucu performansından kaynaklanır.
Statik altyapı (IP nadiren değişir) → 7200-14400 saniye. Orta dinamiklik (ayda 1-2 değişiklik) → 1800-3600 saniye. Yüksek dinamiklik (haftalık değişiklik veya CDN) → 300-600 saniye. Değişiklik öncesi her durumda 300'e düş, sonra geri yükselt.