

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 無需遷移父系網域，將子網域的 DNS 服務遷移到 Amazon Route 53
<a name="MigratingSubdomain"></a>

您可以遷移子網域以便使用 Amazon Route 53 做為 DNS 服務，而不需從其他 DNS 服務遷移父系網域。

此程序具有下列基本步驟：

1. [了解](#decide-procedure-migrate-subdomain)您是否應該使用此程序。

1. [為子網域建立 Route 53 託管區域](#CreateZoneMigratedSubdomain)。

1. [從父系網域目前的 DNS 服務提供者取得目前 DNS 組態](#GetParentDomainResourceRecords)。

1. 將子網域的[記錄](#AddMigratedSubdomainRecords)新增至 Route 53 託管區域。

1. *僅限 API：*[確認您的變更已傳播到](#MigratingSubdomainCheckStatus)所有 Route 53 DNS 伺服器。
**注意**  
目前唯一能驗證變更是否已傳播的方式，就是使用 [GetChange](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html) API 方法。變更通常會在 60 秒內傳播至所有 Route 53 名稱伺服器。

1. [透過為子網域新增名稱伺服器記錄，使用父系網域的 DNS 服務提供者更新 DNS 組態](#UpdateOldDNS)。

## 決定用於建立子網域的程序
<a name="decide-procedure-migrate-subdomain"></a>

本主題中的程序說明如何執行少見的操作。如果您目前正在使用 Route 53 做為網域的 DNS 服務，並且只希望將流量路由至子網域 (例如 www.example.com) 或您的資源 (例如在 EC2 執行個體上執行的 Web 伺服器)，請參閱 [路由傳送子網域的流量](dns-routing-traffic-for-subdomains.md)。

*唯有*當您使用網域 (例如 example.com) 的另一個 DNS 服務，而您希望開始使用 Route 53 做為該網域之現有子網域 (例如 www.example.com) 的 DNS 服務，才應使用此程序。

## 為子網域建立託管區域
<a name="CreateZoneMigratedSubdomain"></a>

如果您要將子網域從其他 DNS 服務遷移至 Amazon Route 53，但不想遷移父系網域，請先為子網域建立託管區域。Route 53 會將子網域的相關資訊存放在託管區域中。

如需有關如何使用 Route 53 主控台建立託管區域的詳細資訊，請參閱 [建立公有託管區域](CreatingHostedZone.md)。

## 從您的 DNS 服務提供者取得目前的 DNS 組態
<a name="GetParentDomainResourceRecords"></a>

為了簡化將現有子網域遷移至 Route 53 的程序，可從目前提供網域服務的 DNS 服務提供者取得網域目前的 DNS 組態。您可以使用這項資訊做為基礎，來設定 Route 53 做為網域的 DNS 服務。

要求和格式取決於目前做為您的 DNS 服務提供者的公司。在理想情況下，他們將為您提供區域檔案，其中包含有關您目前的組態中所有記錄的資訊。(記錄會告知 DNS 為您的網域和子網域路由流量的方式。例如，當有人在 Web 瀏覽器中輸入您的網域名稱，您希望流量路由到資料中心的 Web 伺服器、Amazon EC2 執行個體、CloudFront 分佈或其他位置？) 如果您可以從目前的 DNS 服務提供者取得區域檔案，您可以編輯區域檔案，以移除您不想遷移到 Amazon Route 53 的記錄。然後，您可以將剩餘記錄匯入 Route 53 託管區域，大幅簡化此程序。請嘗試詢問您目前 DNS 服務提供者的客戶支援如何取得「區域檔案」**或「記錄清單」**。

## 建立記錄
<a name="AddMigratedSubdomainRecords"></a>

使用從目前 DNS 服務提供者取得的記錄做為起點，在為網域所建立的 Amazon Route 53 託管區域中建立對應的記錄。將子網域的責任委派給 Route 53 之後，在 Route 53 中建立的記錄會成為 DNS 所使用的記錄，如本程序稍後的 [使用子網域的名稱伺服器記錄來更新您的 DNS 服務](#UpdateOldDNS) 一節中所說明。

**重要**  
請勿在 Route 53 託管區域中建立其他名稱伺服器 (NS) 或起始授權 (SOA) 記錄，也請勿刪除現有的 NS 和 SOA 記錄。

若要使用 Route 53 主控台建立記錄，請參閱 [處理記錄](rrsets-working-with.md)。若要使用 Route 53 API 建立記錄，請使用 `ChangeResourceRecordSets`。如需詳細資訊，請參閱 *[Amazon Route 53 API 參考](https://docs.aws.amazon.com/Route53/latest/APIReference/)* 中的 [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html)。

## 檢查變更的狀態 (僅限 API)
<a name="MigratingSubdomainCheckStatus"></a>

建立新託管區域和變更記錄需要一些時間傳播到 Route 53 DNS 伺服器。如果您使用 [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html) 建立記錄，則可以使用 `GetChange` 動作判斷您的變更是否已傳播。(`ChangeResourceRecordSets` 會傳回 `ChangeId` 的值，您可以將其包含在後續 `GetChange` 請求中。如果您使用主控台建立記錄，則無法使用 `ChangeId`。) 如需詳細資訊，請參閱 *Amazon Route 53 API 參考*中的 [GET GetChange](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html)。

**注意**  
變更通常會在 60 秒內傳播至所有 Route 53 名稱伺服器。

## 使用子網域的名稱伺服器記錄來更新您的 DNS 服務
<a name="UpdateOldDNS"></a>

Amazon Route 53 記錄的變更傳播之後 (請參閱 [檢查變更的狀態 (僅限 API)](#MigratingSubdomainCheckStatus))，請透過為子網域新增 NS 記錄，更新父系網域的 DNS 服務。這稱為將子網域的責任委派給 Route 53。例如，假設父系網域 example.com 透過另一個 DNS 服務託管，並且您要將子網域 test.example.com 遷移到 Route 53。您必須為 test.example.com 建立託管區域，然後使用 Route 53 為 test.example.com 的新託管區域指派的 NS 記錄來更新 example.com 的 DNS 服務。

請執行以下程序。

1. 使用您的 DNS 服務提供的方法，備份父系網域的區域檔案。

1. 如果之前的 DNS 服務提供者有方法為其名稱伺服器變更 TTL 設定，則我們建議您將設定變更為 900 秒。這樣會限制用戶端請求嘗試使用過時的名稱伺服器來解析網域名稱的時間。如果目前的 TTL 是 172800 秒 (兩天，這是常見的預設設定)，您仍需要等待兩天，解析程式和用戶端才能停止使用以前的 TTL 快取 DNS 記錄。TTL 設定過期後，您可以安全地刪除儲存在之前提供者的記錄，並僅對 Route 53 進行變更。

1. 在 Route 53 主控台中，取得 Route 53 託管區域的名稱伺服器：

   1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/) 開啟 Route 53 主控台。

   1. 在導覽窗格中，按一下 **Hosted zones (託管區域)**。

   1. 在 **Hosted zones (託管區域)** 頁面上，選擇託管區域的選項按鈕 (而非名稱)，然後選擇 **View details (檢視詳細資訊)**。

   1. 在託管區域的詳細資訊頁面上，選擇**託管區域詳細資訊**。

   1. 記下 **Name Servers (名稱伺服器)** 下所列的四個名稱。

   或者也可使用 `GetHostedZone` 動作。如需詳細資訊，請參閱 *Amazon Route 53 API 參考*中的 [GetHostedZone](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetHostedZone.html)。

1. 使用父系網域的 DNS 服務提供的方法，將子網域的 NS 記錄新增至父系網域的區域檔案。為 NS 記錄指定與子網域相同的名稱。對於 NS 記錄中的值，指定四個與您在步驟 2 中建立的託管區域關聯的 Route 53 名稱伺服器。請注意，不同的 DNS 服務使用不同的術語。您可能需要聯絡您的 DNS 服務技術支援，了解如何執行此步驟。
**重要**  
請勿將起始授權 (SOA) 記錄新增至父系網域的區域檔案。由於子網域將使用 Route 53，所以父系網域的 DNS 服務不是子網域的授權單位。  
如果您的 DNS 服務為子網域自動新增 SOA 記錄，請刪除子網域的記錄。不過，請勿刪除父系網域的 SOA 記錄。

   根據父系網域的名稱伺服器的 TTL 設定的不同，傳播對 DNS 解析程式的變更可能需要 48 小時或更長的時間。在此期間，DNS 解析程式可能仍使用父系網域 DNS 服務的名稱伺服器來回答請求。此外，用戶端電腦的快取中可能還是子網域以前的名稱伺服器。

1. 在網域註冊商的 TTL 設定過期後 (請參閱步驟 2)，從父系網域的區域檔案中刪除以下記錄：
   + 您新增至 Route 53 中的記錄，如 [建立記錄](#AddMigratedSubdomainRecords) 中所述。
   + 您的 DNS 服務的 NS 記錄。當您完成刪除 NS 記錄後，區域檔案中僅有的 NS 記錄將是您在步驟 4 中建立的 NS 記錄。