Domain-Name-System

為什麼在 Route 53+S3 組合中使用 CNAME

  • July 25, 2014

我一直在閱讀亞馬遜關於使用 Route 53 和 S3 為靜態網站提供服務的文件。

他們展示的策略是:

example.com A -> alias to s3-website-eu-west-1.amazonaws.com (example.com bucket)
www.example.com CNAME -> www.example.com.s3-website-eu-west-1.amazonaws.com

example.com儲存桶設置為託管靜態內容,www.example.com儲存桶設置為永久重定向到example.com.

很好,它可以工作,但是因為我正在嘗試學習和了解 DNS 的詳細工作原理,所以我不明白他們為什麼不簡單地這樣做:

example.com A -> alias to s3-website-eu-west-1.amazonaws.com (example.com bucket)
www.example.com A -> alias to s3-website-eu-west-1.amazonaws.com (www.example.com bucket)

它不會有助於減少一個額外的 DNS 解析步驟(A查找www.example.com.s3-website-eu-west-1.amazonaws.com)嗎?

考慮到 Route 53 能夠直接別名為儲存桶,在這裡使用 CNAME 有什麼好處嗎?

需要明確的是,使用 CNAME 是可行的,但我試圖從學術上理解為什麼他們不建議使用 A 別名。

我認為在了解 DNS 本身的工作原理方面,重要的是要注意沒有他們推薦的別名example.com記錄之類的東西,這完全是 Route53 功能,他們在幕後解析指定的名稱並公開標準A記錄在 DNS 中(無論您在創建它時選擇了何種記錄類型,但在他們的範例中它是一條A記錄)。

為什麼他們選擇不推薦使用他們的別名功能www.example.com並不完全清楚。如果您使用正常的靜態記錄,也許它們的成本會更少?也許他們認為正常的靜態記錄更健壯?也許還有其他記錄而不是A理想www.example.com.s3-website-eu-west-1.amazonaws.com情況下應該存在,但他們不覺得他們可以要求您一個一個添加作為別名(CNAME使名稱成為另一個的別名,無論請求的記錄類型如何)?

相反,CNAME在這兩種情況下都使用不是一種選擇。由於CNAME記錄不能與其他數據共存,因此永遠不可能CNAME在區域頂點有一個,因為至少有SOA一個NS記錄在那裡。

引用自:https://serverfault.com/questions/615481