昨天在調整公司的網址規則時查到的一個情況

因為之前本身的工作沒有這種需求,所以自然沒有遇過

正常來說DNS的網址都是設A解析給IP

例如

www.kilait.com  A  127.0.0.1

kilait.com A 127.0.0.1

但是現在公司的需求要指給ELB,而AWS ELB又是一個URL,所以只能給CNAME

(註:如果帳號是同一個,Route53 是可以用alias直接指定AWS相關服務的URL,但這裡不是同帳號)

舉例

www.kilait.com CNAME test-elb.ap-northeast-1.amazonaws.com

kilait.com CNAME test-elb.ap-northeast-1.amazonaws.com (這個無法指定CNAME)

發現問題了嗎? 答案是 kilait.com 不能指CNAME

因為他是root 網址,只能給A

這就頭痛了,因為對外入口是給ELB的URL,而不是IP

A是解不出去,不過還好有S3的靜態網址功能可以用

首先建立一個S3 Bucket 叫 kilait.com

然後如下圖設定

擷取

之後開 endpoint 的URL 看看是不是被轉給 www.kilait.com了

可以的話就到 route53改解析

擷取

Alias的地方選yes 下拉就會出現你剛剛設定的S3 endpoint

直接轉給s3幫你做靜態轉址

雖然多此一舉,但總算比直接給A解析IP好

會變成 kilait.com -> s3 -> www.kilait.com -> elb -> web

不過如果同帳號就沒這問題了

AWS Route53 可以這樣子做

kilait.com -> elb -> web

跨帳號有時候就是會這麼麻煩~