Saya menjalankan DNS RR failover pada situs web produksi yang ditrafik moderat namun bisnis-kritis (di dua wilayah geografis) selama bertahun-tahun.
Ini berfungsi dengan baik, tetapi setidaknya ada tiga kehalusan yang saya pelajari dengan cara yang sulit.
1) Browser akan gagal dari IP yang tidak berfungsi ke IP yang bekerja setelah 30 detik (terakhir kali saya periksa) jika keduanya dianggap aktif dalam DNS caching apa pun yang tersedia untuk klien Anda. Ini pada dasarnya adalah hal yang baik.
Tetapi memiliki "setengah" pengguna Anda menunggu 30 detik tidak dapat diterima, jadi Anda mungkin ingin memperbarui catatan TTL Anda menjadi beberapa menit, bukan beberapa hari atau minggu sehingga jika terjadi pemadaman, Anda dapat dengan cepat menghapus server down dari DNS Anda. Yang lain menyinggung ini dalam tanggapan mereka.
2) Jika salah satu server nama Anda (atau salah satu dari dua geografi Anda seluruhnya) turun yang melayani domain round-robin Anda, dan jika yang utama dari mereka turun, saya samar-samar ingat Anda dapat mengalami masalah lain mencoba untuk menghapus itu server nama turun dari DNS jika Anda belum menetapkan SOA TTL / kedaluwarsa untuk server nama Anda ke nilai yang cukup rendah juga. Saya dapat memiliki rincian teknis yang salah di sini, tetapi ada lebih dari satu pengaturan TTL yang Anda butuhkan untuk benar-benar bertahan melawan satu titik kegagalan.
3) Jika Anda mempublikasikan API web, layanan REST, dll, itu biasanya tidak dipanggil oleh browser, dan dengan demikian menurut saya DNS failover mulai menunjukkan kelemahan nyata. Ini mungkin mengapa beberapa orang mengatakan, seperti yang Anda katakan "tidak direkomendasikan". Inilah mengapa saya mengatakan itu. Pertama, aplikasi yang menggunakan URL tersebut biasanya bukan browser, sehingga tidak memiliki properti failover / logika browser umum selama 30 detik. Kedua, apakah entri DNS kedua dipanggil atau bahkan DNS disurvei kembali sangat tergantung pada detail pemrograman tingkat rendah dari pustaka jaringan dalam bahasa pemrograman yang digunakan oleh klien API / REST ini, plus bagaimana tepatnya mereka dipanggil oleh aplikasi klien API / REST. (Di bawah mereka meliputi, apakah panggilan perpustakaan get_addr, dan kapan? Jika soket menggantung atau menutup, apakah aplikasi membuka kembali soket baru? Apakah ada semacam logika batas waktu? Dll dll)
Ini murah, sudah teruji, dan "sebagian besar bekerja". Jadi seperti kebanyakan hal, jarak tempuh Anda mungkin berbeda.