這邊的設定比起EC2應該算簡單,但是以網路新手來說可能會有很多專有名詞要了解

設定Route 53 Hosted Zone與Elastic IP

Route 53,是AWS的DNS服務,具有高可用性跟高擴展性。

DNS主要負責將域名轉換成IP位置,這個過程通常被叫做名稱解析(Name Resolution)。大家常用的比喻是查電話簿,但我想這個年頭應該是沒人看過電話簿長甚麼樣子了,也包括我QQ,一時之間不知道怎麼寫下去...

估狗一下之後,電話簿(黃頁)的功能大概就是用某種方式先找到商家名稱,再找出相對應的電話號碼。DNS就是用類似的方式來查詢跟著域名綁在一起的IP。像這樣子給DNS的查詢方式統稱為DNS Query。

當我們想拜訪wugurdriller.com時,首先你的瀏覽器會去快取尋找有沒有跟這個網址對應的IP, 如果有的話將不會對DNS伺服器做Query查詢,會直接往IP位置發送http/https requests。

DNS Query其實有分兩種,但是會在同一個流程中用到這兩種,分為Recursive Query和Iterative Query。Recursive Query就如同程式中的While,直到找到目標IP或是出錯之前都不回傳資料,Iterative Query則像是程式中的for,會照著查詢規則一個個拜訪不同level的DNS Servers。

詳細的DNS流程請看這邊,跟這部影片

在Route 53中,會涉及到設定不同的DNS Records與Routing Policies。

DNS Records是告訴你的電腦跟這個域名有關的資訊,例如Domain或是Subdomain對應的IP,或是管理員的email。DNS Records非常多,但是在Route 53中常用的DNS Records如下:

  1. NS Records(Name Server Records):提供管理你的Domain的伺服器的名稱
  2. SOA Records(Start of Authority):提供跟這個Domain有關的基礎訊息,例如Name Server與Zone Transfer的有關訊息,詳細解說請看這邊
  3. A Records:負責指向IPv4位置
  4. AAAA Records:負責指向IPv6位置
  5. PTR Records:負責從IP位置指向域名
  6. CNAME:負責你設定的域名別名指向註冊的域名
  7. Alias Name:這是AWS Route 53專屬的DNS Record,他會將域名指向AWS中的資源,例如說ELB(Elastic Load Balancer)

Routing Policy是決定將一個域名轉換成IP的方式。如果web server只有一台,我想怎麼轉IP都是轉去那一台,但如果我有好幾台機器的話,我就要決定以哪一種標準去做轉換,例如說我可以靠用戶所在的國家為標準,或者是以連線延遲少為標準去轉換。以下是比較常見的Routing Policy。

  1. Simple Routing Policy:可直接將Domain Name指向IP,如果輸入多個IP地址,將會隨機選一個作為轉換之後的IP
  2. Weighted Routing Policy:分配流量的時候會以權重來做分配IP的參考
  3. Latency-Based Routing Policy:分配流量的時候會以最低的延遲來回傳IP
  4. Failover Routing Policy:如果我們有一台Primary Web Server的Health Check失敗時,將會把流量導向Secondary Web Server,用在active/passive setup時
  5. Geolocation Routing Policy:分配流量的時候會以用戶所在國家來做分配IP的參考
  6. Geoproximity Routing Policy:分配流量的時候會以用戶所在區域來做分配IP的參考,此區域可以自己定義
  7. Multivalue Answer Routing Policy:他像是Simple Routing Policy,但是可以讓你掛一個Health Check在上面,讓你知道有哪些機器還活著

另外,Elstic IP是AWS的IP分配服務,他可以讓你租下一個Public IP,然後把這個IP放到不同的資源裡面,例如EC2或是ELB。由於EC2的Public IP會在你的機器重啟時,重新分配你一個,這樣可能就會讓你重新設定一次DNS Record跟Routing Policy,又尤其是Records的TTL還沒到,舊的Records就會一直存在在用戶的電腦,如果改了Public IP的話,這些用戶可能很快就沒有辦法上你的網站了。

但是如果我們把Elastic IP分給EC2的話,無論怎麼重啟Instance,機器的IP還會是同一個Elastic IP。這樣就可以不需要為了機器重啟而重新設定DNS Records。

那麼因為以自己現行的架構,我的Web Server只有一台,那當然是建立一個A Record,選擇Simple Routing Policy然後填上給EC2用的Elastic IP,直接將域名轉移到單一的Web Server。

那這樣Route 53的相關設定就大功告成了~

安裝Ghost

這邊就是無腦的照著文件安裝下去,然後記得申請一個SSL金鑰。不過這邊是使用Let's Encrypt中的acme.sh,整個過程都很自動化,不需要太多下指令的步驟就可以完成。

如果都安裝完的話,基本上就已經可以開始Blogging囉!


Steps

  1. Ghost介紹以及架構解說
  2. 在Route53註冊域名(Domain Name)與架設VPC(Virtual Private Cloud)
  3. 啟EC2
  4. 設定Route 53 Hosted Zone與Elastic IP與安裝Ghost
  5. 用Health Check + SNS建立警告系統與使用Lifecycle Manager定期創造Snapshot

Widget is loading comments...