# AWS ROUTE53 設定 ###### tags: `AWS 功能` ### 第一部分 : 購買 or 託管域名 * <b>直接購買</b> : 已註冊網域 -> 註冊網域 -> 選擇網域名稱 -> 購買 -> 顯示在 "託管區域" ![](https://i.imgur.com/1wiFuB7.png) * <b>託管</b> : 建立託管區域 -> 填寫網域資訊 -> 建立 ![](https://i.imgur.com/SRd7aSs.png) ![](https://i.imgur.com/yjfp17t.png) ### 第二部分 : 簡單路由設定 > * 配置標準 DNS 記錄 * A record ( – IPv4 地址 ) ![](https://i.imgur.com/miDWO7T.png) * CNAME record ( – 域名 ) ![](https://i.imgur.com/Ez3BLew.png) * TXT record ( – 文字) ![](https://i.imgur.com/ICMtRv7.png) ### 第三部分 : 地理位置路由設定 > * 根據使用者的地理位置 (DNS 查詢的來源位置) 選擇服務流量的資源 > * 要先設定預設 * A record ( – IPv4 地址 ) ![](https://i.imgur.com/1gJxU44.png) * CNAME record ( – 域名 ) ![](https://i.imgur.com/w4Yx4f8.png) * EXAMPLE > 會優先倒到 "較近的位置" ![](https://i.imgur.com/CyPEfjb.png) ### 第四部分 : 容錯移轉路由設定 > * 可以讓資源出現錯誤時將流量路由到正確的資源 > * 如果選擇主要則要選擇運作狀態檢查ID,次要可以不用 > * 需要設定 Healthchecks * A record ( – IPv4 地址 ) ![](https://i.imgur.com/Bb2MR3Y.png) * CNAME record ( – 域名 ) ![](https://i.imgur.com/lmdFLaA.png) * EXAMPLE > 會優先倒到 "主要" 設定,如果失敗才會倒到 "次要" 設定 ![](https://i.imgur.com/2SmTSiA.png) ### 第五部分 : 延遲路由設定 > * 選擇延遲最低的 AWS 區域處理使用者的請求,來幫助使用者提高效能 * A record ( – IPv4 地址 ) ![](https://i.imgur.com/0hsc4KB.png) * CNAME record ( – 域名 ) ![](https://i.imgur.com/bxl9mE2.png) * EXAMPLE > 會優先倒到最接近的區域,已達到最低延遲 ![](https://i.imgur.com/KiK2s6N.png) ### 第六部分 : 頂級域名 * A record ( – IPv4 地址 ) ![](https://i.imgur.com/soWuZmK.png) * CNAME record ( – 域名 ) > 因為DNS協議不允許在頂級域名處定義CNAME,因此Route 53 也不允許給頂級域名創建CNAME。但是可以創建一個子域名指向頂級域名。 > 例如:www.wise-cdn.com CNAME wise-cdn.com ### 第七部分 : 萬用解析 * A record ( – IPv4 地址 ) ![](https://i.imgur.com/R0fziJP.png) * CNAME record ( – 域名 ) ![](https://i.imgur.com/iH7FBwp.png) ## 腳本 ### 託管域名 * `aws route53 create-hosted-zone --name <DomainName> --caller-reference <Caller_Reference> --hosted-zone-config Comment="test version"` ``` #!/bin/bash DomainName="www.example.com" Caller_Reference="00000000" Hosted_zone_ID=$(aws route53 create-hosted-zone --name "$DomainName" --caller-reference "$Caller_Reference" --hosted-zone-config Comment="test version" | jq -r '.HostedZone.Id' | cut -c 13-33) echo "$Hosted_zone_ID" ``` ### 設定紀錄 * `aws route53 change-resource-record-sets --hosted-zone-id <hosted-zone-id> --change-batch file://<file_name>` ``` aws route53 change-resource-record-sets --hosted-zone-id Z051163617Q7R1OCQQL9M --change-batch file://record.json ``` ### 簡單路由設定文件 * 規則 ``` { "Comment": "SIMPLE", "Changes": [ { "Action": "CREATE"|"DELETE"|"UPSERT", "ResourceRecordSet": { "Name": "DNS domain name", "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA", "TTL": time to live in seconds, "SetIdentifier": "string", "ResourceRecords": [{"Value": "<IP>"}] } } ] } ``` * 範例 ``` { "Comment": "SIMPLE", "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "a.wise-cdn.com", "Type": "A", "TTL": 300, "SetIdentifier": "string", "ResourceRecords": [{"Value": "192.169.0.108"}] } }, { "Action": "CREATE", "ResourceRecordSet": { "Name": "b.wise-cdn.com", "Type": "CNAME", "TTL": 300, "ResourceRecords": [{"Value": "123.wise-cdn.com"}] } } ] } ``` ### 地理位置路由設定文件 * 規則 ``` { "Comment": "GEOLOCATION", "Changes": [ { "Action": "CREATE"|"DELETE"|"UPSERT", "ResourceRecordSet": { "Name": "DNS domain name", "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA", "SetIdentifier": "string", "GeoLocation": {"CountryCode": "<CountryCode>"}, "TTL": time to live in seconds, "ResourceRecords": [{"Value": "<IP>"}], "HealthCheckId": "<HealthCheckId>" } } ] } ``` * 範例 ``` { "Comment": "GEOLOCATION", "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "testcli.wise-cdn.com", "Type": "A", "SetIdentifier": "test", "GeoLocation": {"CountryCode": "TW"}, "TTL": 300, "ResourceRecords": [{"Value": "192.169.0.108"}], "HealthCheckId": "e4dbb08f-8e39-4d3f-940a-75d219608897" } } ] } ``` ### 容錯移轉路由設定文件 * 規則 ``` { "Comment": "FAILOVER", "Changes": [ { "Action": "CREATE"|"DELETE"|"UPSERT", "ResourceRecordSet": { "Name": "DNS domain name", "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA", "TTL": time to live in seconds, "SetIdentifier": "test-primary", "Failover": "PRIMARY" | "SECONDARY" , "ResourceRecords": [{"Value": "<IP>"}], "HealthCheckId": "<HealthCheckId>" } } ] } ``` * 範例 ``` { "Comment": "FAILOVER", "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "testcli.wise-cdn.com.", "Type": "A", "TTL": 300, "SetIdentifier": "test-primary", "Failover": "PRIMARY", "ResourceRecords": [{"Value": "192.169.0.108"}], "HealthCheckId": "e4dbb08f-8e39-4d3f-940a-75d219608897" } } ] } ``` ### 延遲路由設定 * 規則 ``` { "Comment": "LATENCY", "Changes": [ { "Action": "CREATE"|"DELETE"|"UPSERT", "ResourceRecordSet": { "Name": "DNS domain name", "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA", "SetIdentifier": "test", "Region": "Region name", "TTL": time to live in seconds, "ResourceRecords": [{"Value": "<IP>"}], "HealthCheckId": "<HealthCheckId>" } } ] } ``` * 範例 ``` { "Comment": "LATENCY", "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "testcli.wise-cdn.com", "Type": "A", "SetIdentifier": "test", "Region": "ap-northeast-1", "TTL": 300, "ResourceRecords": [{"Value": "192.169.0.108"}], "HealthCheckId": "e4dbb08f-8e39-4d3f-940a-75d219608897" } } ] } ```