

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

# 還原測試
<a name="restore-testing"></a>

*還原測試*是 提供的一項功能 AWS Backup，可提供自動和定期的還原可行性評估，以及監控還原任務持續時間的能力。

**Topics**
+ [概要](#restore-testing-overview)
+ [還原測試與還原程序的比較](#restore-testing-compare)
+ [還原測試管理](#restore-testing-management)
+ [建立還原測試計畫](#restore-testing-create)
+ [更新還原測試計畫](#restore-testing-update)
+ [檢視現有的還原測試計畫](#restore-testing-view)
+ [檢視還原測試任務](#restore-testing-jobs)
+ [刪除還原測試計畫](#restore-testing-delete)
+ [稽核還原測試](#restore-testing-audit)
+ [還原測試配額和參數](#restore-testing-quotas)
+ [還原測試失敗疑難排解](#restore-testing-troubleshooting)
+ [還原測試推斷的中繼資料](restore-testing-inferred-metadata.md)
+ [還原測試驗證](restore-testing-validation.md)

## 概要
<a name="restore-testing-overview"></a>

請先建立還原測試計畫，您會在其中提供計畫名稱、還原測試的頻率，以及目標開始時間。然後，您會指派要在計畫中包含的資源。然後，您可以選擇在測試中包含特定或隨機復原點。 AWS Backup 備份會以智慧方式[推斷還原任務成功所需的中繼資料](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)。

當您計劃中的排程時間到達時， 會根據您的計劃 AWS Backup 開始還原任務，並監控完成還原所需的時間。

還原測試計畫完成執行之後，您可以使用結果來顯示組織或控管需求的合規性，例如還原測試案例的成功完成或還原任務完成時間。

或者，您可以使用 [還原測試驗證](restore-testing-validation.md) 來確認還原測試結果。

一旦選擇性驗證完成或驗證視窗關閉， 會 AWS Backup 刪除與還原測試相關的資源，並根據服務 SLAs 刪除資源。

在測試程序結束時，您可以檢視測試的結果和完成時間。

## 還原測試與還原程序的比較
<a name="restore-testing-compare"></a>

還原測試會以與隨需還原相同的方式執行還原任務，並使用與隨需還原相同的復原點 (備份)。對於透過還原測試開始的每個任務，您將在 CloudTrail (如果選擇加入) 中看到對 `StartRestoreJob` 的呼叫

不過，排程還原測試的作業與隨需還原作業之間有一些差異：


|  | 還原測試 | 還原 | 
| --- | --- | --- | 
| **帳戶** | 建議的最佳實務是指定用於還原測試的帳戶 | 您可以從帳號還原資源 | 
| **AWS Backup Audit Manager** | 可以開啟控制項以確認還原測試是否符合指定的還原目標 |  | 
| **節奏** | 定期作為排程計畫的一部分。 | 隨需 | 
| **資源** | 您可以指派給測試計畫的資源類型包括：Aurora、Amazon DocumentDB、Amazon DynamoDB、Amazon EBS、Amazon EC2、Amazon EFS、Amazon FSx (Lustre、ONTAP、OpenZFS, Windows)、Amazon Neptune、Amazon RDS 和 Amazon S3。 | 所有資源皆可還原。 | 
| **結果** | 還原測試任務完成後，還原的資源會在[還原測試驗證](restore-testing-validation.md)視窗完成後刪除。 | 還原任務完成後，資源的還原版本仍會保留。 | 
| **Tags** (標籤) | 對於在還原時支援標籤的資源類型，測試會在還原時套用標籤。 | 對於支援的資源，標籤是選用的。 | 

## 還原測試管理
<a name="restore-testing-management"></a>

您可以在 [AWS Backup 主控台](https://console.aws.amazon.com/backup/)中建立、檢視、更新或刪除還原測試計畫。

您可以使用 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/index.html#cli-aws-backup) 以程式設計方式執行還原測試計畫的作業。每個 CLI 都專屬於其產生的 AWS 服務。命令前面應加上 `aws backup`。

### 資料刪除
<a name="restore-testing-data-deletion"></a>

還原測試完成後，開始 AWS Backup 刪除測試中涉及的資源。此刪除並非即時進行。每個資源都有一個基礎組態，可決定這些資源的存放和生命週期方式。例如，如果 Amazon S3 儲存貯體是還原測試的一部分，[則會將生命週期規則新增至儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html)。規則執行以及完全刪除儲存貯體及其物件最多可能需要數天的時間，但只有到生命週期規則啟動的那天 (預設為 1 天) 才會針對這些資源收取費用。刪除速度將因資源類型而異。

屬於還原測試計畫一部分的資源包含名為 `awsbackup-restore-test` 的標籤。如果使用者移除此標籤， AWS Backup 則無法在測試期間結束時刪除資源，使用者必須改為手動刪除該資源。

若要確認資源未如預期刪除的原因，您可以在主控台中搜尋失敗的任務，或使用命令列介面呼叫 API `DescribeRestoreJob` 請求以擷取刪除狀態訊息。

備份計畫 （非還原測試計畫） 會忽略還原測試所建立的資源 （標籤為 `awsbackup-restore-test`或以 開頭的名稱`awsbackup-restore-test`)。

### 成本控制
<a name="restore-testing-cost-control"></a>

每次還原測試都會產生費用。根據還原測試計畫中包含的資源而定，屬於計畫一部分的還原任務也可能會產生費用。如需詳細資訊，請參閱 [AWS Backup 定價](https://aws.amazon.com/backup/pricing/)。

第一次設定還原測試計畫時，您可能會發現，納入最少數量的資源類型和受保護資源，對於熟悉功能、程序和所涉及的平均成本很有幫助。您可以在建立計畫後加以更新，以新增更多資源類型和受保護的資源。

## 建立還原測試計畫
<a name="restore-testing-create"></a>

還原測試計畫有兩個部分：計畫建立和指派資源。

使用主控台時，這些部分是有順序的。在第一部分中，您可以設定名稱、頻率和開始時間。在第二部分期間，您將資源指派給測試計畫。

使用 AWS CLI 和 API 時，請先使用 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-plan.html)。收到成功回應並建立計畫後，請[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-selection.html)針對要包含在計畫中的每個資源類型使用 。

當您建立還原測試計畫時，我們會為您建立服務連結角色。如需詳細資訊，請參閱[使用角色進行還原測試](using-service-linked-roles-AWSServiceRoleForBackupRestoreTesting.md)。

------
#### [ Console ]

**第 I 部分：使用主控台建立還原測試計畫**

1. 在 https：//[https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 開啟 AWS Backup 主控台。

1. 在左側導覽中，找到**還原測試**並加以選取。

1. 選擇**建立還原測試計畫**。

1. **一般**

   1. **名稱：**輸入新還原測試計畫的名稱。此名稱建立後就不可變更。此名稱必須包含英數字元和底線。

   1. **測試頻率：**選擇還原測試的執行頻率。

   1. **開始時間：**設定您希望測試開始的時間 (以小時和分鐘為單位)。您也可以設定希望還原測試計畫執行所用的當地時區。

   1. **開始於：**此值 （以小時為單位） 是指定還原測試開始的期間。 AWS Backup 會盡最大努力在開始時間內開始所有指定的還原任務，並隨機化此期間內的開始時間。

1. **復原點選擇：**您可以在此設定來源保存庫、復原點範圍，以及您希望哪些復原點 (備份) 成為計畫一部份的選取條件。

   1. **來源保存庫：**選擇要包括所有可用的保存庫還是僅包括特定的保存庫，以協助篩選可納入計畫的復原點。如果您選擇**特定保存庫**，請從下拉式功能表中選取您要包括的保存庫。

   1. **合格的復原點：**指定要從中選取復原點的時間範圍。您可以選取 1 至 365 天、1 至 52 週、1 至 12 個月或 1 年。

   1. **選取條件：**指定復原點的日期範圍後，您可以選擇是否要在計畫中包含最新還是隨機的復原點。您可能希望選擇隨機的復原點，以更頻繁的頻率來衡量復原點的一般運作狀態，以防需要還原到舊版本的情況。

   1. **Point-in-time復原點：**如果您的計劃包含具有連續備份 (point-in-time-restore/PITR) 點的資源，您可以勾選此方塊，讓測試計劃包含連續備份做為合格的復原點 （請參閱[依資源類型列出的功能可用性](backup-feature-availability.md#features-by-resource)，其中的資源類型具有此功能）。

1. *(選用)* **為還原測試計畫新增的標籤：**您可以選擇在還原測試計畫中新增最多 50 個標籤。每個標籤都必須個別新增。若要新增標籤，請選取**新增標籤**。

**第 II 部分：使用主控台將資源指派給計畫**

在本節中，您可以選擇已備份要包含在還原測試計畫中的資源。您將選擇資源指派的名稱、選擇用於還原測試的角色，並在清除之前設定保留期限。然後，您將選取資源類型、選取範圍，並選擇性地使用標籤縮小選擇範圍。
**提示**  
若要重新瀏覽至要新增資源的還原測試計畫，您可以前往 [AWS Backup 主控台](https://console.aws.amazon.com/backup)、選取**還原測試**，然後尋找您偏好的測試計畫並加以選取。

1. **一般**

   1. **資源指派名稱：**使用英數字元與底線的字串 (不含空格)，輸入此資源指派的名稱。

   1. **還原 IAM 角色：**此測試必須使用您指定的 Identity and Access Management (IAM) 角色。您可以選擇 AWS Backup 預設角色或不同的角色。如果在您完成此程序時 AWS Backup ，預設值尚未存在， AWS Backup 會自動為您建立它，並具有必要的許可。您為還原測試選擇的 IAM 角色必須包含 [https://docs.aws.amazon.com/aws-backup/latest/devguide/security-iam-awsmanpol.html#aws-managed-policies](https://docs.aws.amazon.com/aws-backup/latest/devguide/security-iam-awsmanpol.html#aws-managed-policies) 中找到的許可。

   1. **清除前的保留期：**在還原測試期間，會暫時還原備份資料。根據預設，此資料會在測試完成後遭到刪除。如果您希望在還原時執行驗證，則可以選擇延遲刪除此資料。

      如果您計畫執行驗證，請選取**保留特定小時數**，並輸入 1 到 168 小時 (含) 之間的值。請注意，驗證可以透過程式設計的方式執行，但不能從 AWS Backup 主控台執行。

1. **受保護的資源：**

   1. **選取資源類型：**選取要在資源測試計畫中包含的資源類型和這些類型的備份範圍。每個計畫都可以包含多種資源類型，但是必須將每種資源個別指派給計畫。

   1. **資源選擇範圍：**選擇類型之後，請選取是否要包含該類型的所有可用受保護資源，或者只包含特定受保護的資源。

   1. *(選用)* **使用標籤調整資源選擇：**如果備份具有標籤，則可以按標籤篩選以**選取特定的受保護資源**。輸入標籤索引鍵、要包含或不包含此索引鍵的條件，以及該索引鍵的值。然後，選取**新增標籤**按鈕。

      透過檢查內含受保護資源的備份保存庫中最新復原點上的標籤，以評估受保護資源上的標籤。

1. **還原參數：**某些資源需要指定參數來為還原任務做準備。在大多數情況下， AWS Backup 會根據儲存的備份推斷值。

   在大多數情況下，建議您保留這些參數；但是，您可以從下拉式功能表中選擇不同的項目來變更這些值。變更值的最佳範例包括覆寫加密金鑰、無法推斷資料的 Amazon FSx 設定，以及建立子網路。

   例如，如果 RDS 資料庫是您指派給還原測試計畫的其中一種資源，則可用區域、資料庫名稱、資料庫執行個體類別和 VPC 安全群組等參數都將顯示，並帶有您可以變更的推斷值 (如果適用)。

------
#### [ AWS CLI ]

CLI 命令 `CreateRestoreTestingPlan` 會用於制定還原測試計畫。

此測試計畫必須包含：
+ `RestoreTestingPlan`，其中必須包含唯一的 `RestoreTestingPlanName`
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingPlanForCreate.html#Backup-Type-RestoreTestingPlanForCreate-ScheduleExpression](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingPlanForCreate.html#Backup-Type-RestoreTestingPlanForCreate-ScheduleExpression) Cron 表達式
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingRecoveryPointSelection.html](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingRecoveryPointSelection.html) 

  雖然名稱類似，但這與 **不同**`RestoreTestingSelection`。

  [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingRecoveryPointSelection.html](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingRecoveryPointSelection.html) 有五個參數 （三個必要，兩個選用）。您指定的值會決定還原測試中包含哪個復原點。您必須使用 指出`Algorithm`您是否要在 內使用最新的復原點，`SelectionWindowDays`或者如果您想要隨機復原點，則必須指出`IncludeVaults`可從哪個保存庫中選擇復原點。

選擇可以有一或多個受保護的資源 ARN，或者可以有一或多個條件，但不能同時具有兩者。

您也可以包含：
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingPlanForCreate.html#Backup-Type-RestoreTestingPlanForCreate-ScheduleExpressionTimeZone](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingPlanForCreate.html#Backup-Type-RestoreTestingPlanForCreate-ScheduleExpressionTimeZone)
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#Backup-CreateRestoreTestingPlan-request-Tags](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#Backup-CreateRestoreTestingPlan-request-Tags)
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#API_CreateRestoreTestingPlan_RequestSyntax](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#API_CreateRestoreTestingPlan_RequestSyntax)
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#API_CreateRestoreTestingPlan_RequestSyntax](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#API_CreateRestoreTestingPlan_RequestSyntax)

使用 CLI 命令 [`create-restore-testing-plan`。](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-plan.html)

成功建立計畫後，您需要使用 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-selection.html) 將資源指派至其中。

其中包括 `RestoreTestingSelectionName`、`ProtectedResourceType` 以及下列其中一項：

**注意**  
**RestoreTestingSelectionName 命名要求：**  
長度必須為 1-256 個字元
可包含字母 (a-z、A-Z)、數字 (0-9)、連字號 (-) 和底線 (\$1)
必須以字母或數字開頭
不能以連字號或底線結尾
在還原測試計畫中必須是唯一的
+ `ProtectedResourceArns`
+ `ProtectedResourceConditions`

每個受保護的資源類型可以有一個單一值。還原測試選擇可以包含 `ProtectedResourceArns` 和 `ProtectedResourceConditions` 的萬用字元值 (「\$1」)。或者，您可以在 `ProtectedResourceArns` 中包含最多 30 個特定受保護的資源 ARN。

------

**還原測試頻率**

AWS Backup 會評估介於 00：00 和 23：59 之間的 cron 表達式。如果您建立「每 12 小時一次」的還原測試計劃，但提供晚於 11：59 的開始時間，則每天只會執行一次。

**復原點判斷**

每次執行測試計畫時 （根據您指定的頻率和開始時間），還原測試會還原所選項目中每個受保護資源的一個合格復原點。如果資源沒有復原點符合復原點選擇條件，則該資源將不會包含在測試中。

如果 符合指定時間範圍的條件，並在還原測試計畫中包含保存庫，則測試選擇中受保護資源的復原點符合資格。

如果資源測試選擇包含資源類型，且符合下列任一條件，則會選取受保護的資源：
+ 資源 ARN 指定在該選擇中；或
+ 該選取項目上的標籤條件符合資源最新復原點上的標籤

## 更新還原測試計畫
<a name="restore-testing-update"></a>

您可以透過主控台或 AWS CLI更新還原測試計畫的部分內容以及其中的資源選擇。

------
#### [ Console ]

**更新主控台中的還原測試計畫和選擇**

在主控台中檢視還原測試計畫詳細資訊頁面時，您可以編輯 (更新) 計畫的許多設定。若要這樣做，

1. 在 https：//[https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 開啟 AWS Backup 主控台。

1. 在左側導覽中，找到**還原測試**並加以選取。

1. 選取**編輯**按鈕。

1. 調整頻率、開始時間以及測試開始時間 (測試將在所選開始時間之後於此時間內開始)。

1. 儲存您的變更。

------
#### [ AWS CLI ]

**透過 更新還原測試計劃和選擇 AWS CLI**

請求 [UpdateRestoreTestingPlan](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_UpdateRestoreTestingPlan.html) 和 [UpdateRestoreTestingSelection](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_UpdateRestoreTestingSelection.html) 可用來將部分更新傳送至指定的計畫或選擇。名稱無法變更，但您可以更新其他參數。在每個請求中僅包含您希望變更的參數。

傳送更新請求之前，請先使用 [GetRestoreTestingPlan](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_GetRestoreTestingPlan.html) 和 [GetRestoreTestingSelection](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_GetRestoreTestingSelection.html)，來判斷 RestoreTestingSelection 是否包含特定的 ARN，或者其是否使用萬用字元和條件。

如果還原測試選擇已指定 ARN (而非萬用字元)，且您想要將其變更為具有條件的萬用字元，則更新請求必須同時包含 ARN 萬用字元和條件。選擇可以具有受保護的資源 ARN，也可以使用萬用字元搭配條件，但不能同時具有兩者。
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-plan.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-selection.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/updated-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/updated-restore-testing-plan.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/update-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/update-restore-testing-selection.html)

------

## 檢視現有的還原測試計畫
<a name="restore-testing-view"></a>



------
#### [ Console ]

**在主控台中檢視與現有還原測試計畫和指派資源的詳細資訊**

1. 在 https：//[https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 開啟 AWS Backup 主控台。

1. 從左側導覽中選取**還原測試**。此畫面會顯示還原測試計畫。依預設會依照上次執行期顯示這些計畫。

1. 從計畫中選取連結以查看其詳細資訊，包括計畫的摘要、名稱、頻率、開始時間和以下時間後開始值。

您也可以檢視此計畫中受保護的資源、此計畫中包含最近 30 天的還原測試任務，以及您可以建立屬於此測試計畫的任何標籤。

------
#### [ AWS CLI ]



**使用命令列取得與現有還原測試計畫和測試選擇的詳細資訊**
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-plan.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-selections.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-selections.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-plan.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-selection.html)

------

## 檢視還原測試任務
<a name="restore-testing-jobs"></a>

------
#### [ Console ]

**在主控台中檢視現有的還原測試任務**

還原任務頁面上包含還原測試任務。

1. 在 https：//[https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 開啟 AWS Backup 主控台。

1. 瀏覽至**任務**頁面。

   或者，您可以選取**還原測試**，然後選取還原測試計畫以查看其詳細資訊以及與計畫相關聯的任務。

1. 選取**還原任務**索引標籤。

   您可以在此頁面檢視狀態、還原時間、還原類型、資源 ID、資源類型、任務所屬的還原測試計畫、建立時間以及還原任務的復原點 ID。

   還原測試計畫中包含的任務具有還原類型**測試**。

還原測試任務有幾個狀態類別：
+ 需要注意的**狀態**類型會加上底線；將游標暫留在狀態上可查看其他詳細資訊 (如果有的話)。
+ 如果[還原測試驗證](restore-testing-validation.md)已在測試上啟動 （主控台中無法使用），則會顯示**驗證狀態**。
+ 刪除狀態會記錄還原測試所產生之資料的狀態。三種可能的刪除狀態：**成功**、**正在刪除**和**失敗**。

  如果還原測試任務刪除失敗，您將需要手動移除資源，因為還原測試流程無法自動完成資源。通常如果從資源中移除標籤 `awsbackup-restore-test`，則會觸發失敗的刪除。

------
#### [ AWS CLI ]

**從命令列檢視現有的還原測試任務**
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-jobs-by-protected-resource.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-jobs-by-protected-resource.html)

------

## 刪除還原測試計畫
<a name="restore-testing-delete"></a>



------
#### [ Console ]

**在主控台中刪除還原測試計畫**

1. 請前往 [檢視現有的還原測試計畫](#restore-testing-view) 以查看您目前的還原測試計畫。

1. 在還原測試計畫詳細資訊頁面上，選取**刪除**以刪除計畫。

1. 選取 [刪除] 後，會出現快顯確認畫面，確認您是否要刪除計畫。在此畫面中，特定還原測試計畫的名稱將以粗體顯示。如要繼續，請輸入測試計畫的確切區分大小寫的名稱，包括任何底線、破折號和句號。

   如果無法選取**刪除還原測試計畫**選項，請重新輸入名稱，直到名稱與顯示的名稱相符為止。一旦完全相符，刪除還原測試計畫的選項將變為可選取的狀態。

------
#### [ AWS CLI ]

**透過命令列刪除還原測試計畫**

CLI 命令 [DeleteRestoreTestingSelection](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_DeleteRestoreTestingSelection.html) 可用於刪除還原測試選選擇。在請求中包含 `RestoreTestingPlanName` 和 `RestoreTestingSelectionName`。

刪除測試計畫之前，必須先刪除與測試計畫相關的所有測試選擇。刪除所有測試選擇後，您可以使用 API 請求 [DeleteRestoreTestingPlan](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_DeleteRestoreTestingPlan.html) 來刪除還原測試計畫。您需要包括 `RestoreTestingPlanName`。
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/delete-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/delete-restore-testing-selection.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/delete-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/delete-restore-testing-plan.html)

------

## 稽核還原測試
<a name="restore-testing-audit"></a>

還原與 AWS Backup Audit Manager 的測試整合，協助您評估還原的資源是否在目標還原時間內完成。

如需詳細資訊，請參閱 [AWS Backup Audit Manager 控制項與修補](https://docs.aws.amazon.com/aws-backup/latest/devguide/controls-and-remediation.html)中的[資源的還原時間符合目標](https://docs.aws.amazon.com/aws-backup/latest/devguide/controls-and-remediation.html#restore-time-meets-target-control)控制項。

## 還原測試配額和參數
<a name="restore-testing-quotas"></a>
+ 100 個還原測試計畫
+ 可以在每個還原測試計畫新增 50 個標籤
+ 每個計畫 30 個選擇
+ 每個選擇 30 個受保護資源的 ARN 
+ 每個選擇 30 個受保護資源的條件 (包括 `StringEquals` 和 `StringNotEquals` 內的條件) 
+ 每個選擇 30 個保存庫選擇器
+ 最長選擇時段天數：365 天 
+ 開始時段時數：最短 1 小時；最長 168 小時 (7 天) 
+ 計畫名稱長度上限：50 個字元 
+ 選擇名稱長度上限：50 個字元

您可在 [AWS Backup 配額](aws-backup-limits.md) 檢視有關限制的其他資訊。

## 還原測試失敗疑難排解
<a name="restore-testing-troubleshooting"></a>

如果您有還原狀態為 的還原測試任務`Failed`，下列原因可協助您判斷原因和補救措施。

[錯誤訊息可在 主控台 （任務狀態詳細資訊） 頁面或使用 CLI 命令或 進行檢視](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing.html#restore-testing-jobs)`list-restore-jobs`。 AWS Backup `list-restore-jobs-by-protected-resource`

1. ***錯誤：**`No default VPC for this user. GroupName is only supported for EC2-Classic and default VPC.`*

   **解決方案 1：**更新您的還原測試選擇並[覆寫](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing-inferred-metadata.html) 參數 `SubnetId`。 AWS Backup 主控台會將此參數顯示為「子網路」。

   **解決方案 2：**重新建立[預設 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-vpc)。

   **受影響的資源類型：**Amazon EC2

   

1. ***錯誤：**`No subnets found for the default VPC [vpc]. Please specify a subnet.`*

   **解決方案 1：**更新您的還原測試選擇並[覆寫](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)`SubnetId`還原參數。 AWS Backup 主控台會將此參數顯示為「子網路」。

   **解決方案 2：**[在預設 VPC 中建立預設子網路](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet)。

   **受影響的資源類型：**Amazon EC2

   

1. ***錯誤：**`No default subnet detected in VPC. Please contact AWS 支援 to recreate default Subnets.`*

   **解決方案 1：**更新您的還原測試選擇並[覆寫](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)`DBSubnetGroupName`還原參數。主控台會將 AWS Backup 此參數顯示為子網路群組。

   **解決方案 2：**[在預設 VPC 中建立預設子網路](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet)。

   **受影響的資源類型：**Amazon Aurora、Amazon DocumentDB、Amazon RDS、Neptune

   

1. ***錯誤：**`IAM Role cannot be assumed by AWS Backup`。*

   **解決方案：**還原角色必須由 擔任 AWS Backup。在 IAM 中更新角色的信任政策，以允許其被擔任，`"backup.amazonaws.com"`或更新您的還原測試選擇以使用可擔任的角色 AWS Backup。

   **受影響的資源類型：**全部

   

1. ***錯誤：** `Access denied to KMS key.` 或 `The specified AWS KMS key ARN does not exist, is not enabled or you do not have permissions to access it.`*

   **解決方案：**驗證下列項目：

   1. 還原角色可存取用於加密備份的 AWS KMS 金鑰，如果適用，可存取用於加密還原資源的 KMS 金鑰。

   1. 上述 KMS 金鑰上的資源政策允許還原角色存取它們 (KMS)。

   如果尚未符合上述條件，請設定還原角色和資源政策以進行適當的存取。然後，再次執行還原測試任務。

   **受影響的資源類型：**全部

   

1. ***錯誤：** `User ARN is not authorized to perform action on resource because no identity based policy allows the action.`或 `Access denied performing s3:CreateBucket on awsbackup-restore-test-xxxxxx`。*

   **解決方案：**還原角色沒有足夠的許可。更新 IAM 中還原角色的許可。

   **受影響的資源類型：**全部

   

1. ***錯誤：** `User ARN is not authorized to perform action on resource because no resource-based policy allows the action.` 或 `User ARN is not authorized to perform action on resource with an explicit deny in a resource based policy.`*

   **解決方案：**還原角色對訊息中指定的資源沒有足夠的存取權。在提及的資源上更新資源政策。

   **受影響的資源類型：**全部

   

# 還原測試推斷的中繼資料
<a name="restore-testing-inferred-metadata"></a>

還原復原點需要還原中繼資料。若要執行還原測試， AWS Backup 會自動推斷可能導致還原成功的中繼資料。命令`get-restore-testing-inferred-metadata`可用來預覽 AWS Backup 將推斷的內容。命令會`get-restore-job-metadata`傳回由 推斷的中繼資料集 AWS Backup。請注意，對於某些資源類型 (Amazon FSx)， AWS Backup 無法推斷完整的中繼資料集。

*推斷的還原中繼資料*是在還原測試程序期間決定的。您可以將參數 `RestoreMetadataOverrides` 包含在 `RestoreTestingSelection` 的主體中，來覆寫某些還原中繼資料索引鍵。某些中繼資料覆寫無法在 AWS Backup 主控台中使用。

每個支援的資源都有推斷還原中繼資料索引鍵和值，以及可覆寫的還原中繼資料索引鍵。只有標記*成功還原所需*的 `RestoreMetadataOverrides` 索引鍵值配對或巢狀索引鍵值對必須包含在其中；其他都是選用的值。請留意，索引鍵值不區分大小寫。

**重要**  
AWS Backup 可以推斷資源應還原至預設設定，例如 Amazon EC2 執行個體或還原至預設 VPC 的 Amazon RDS 叢集。不過，如果預設值不存在，例如已刪除預設 VPC 或子網路，且未輸入中繼資料覆寫，則還原將不會成功。


| Resource Type (資源類型) | 推斷還原中繼資料索引鍵和值 | 可覆寫中繼資料 | 
| --- | --- | --- | 
| **DynamoDB** |  `deletionProtection`，其中值會設定為 `false` `encryptionType` 已設定為 `Default` `targetTableName`，其中值會設定為開頭為 `awsbackup-restore-test-` 的隨機值  |  `encryptionType` `kmsMasterKeyArn`  | 
| **Amazon EBS** |  `availabilityZone`，其值會設定為隨機可用區域 `encrypted`，其值會設定為 `true`  |  `availabilityZone` `iops` `kmsKeyId` `throughput` `volumesize` `volumetype`  | 
| **Amazon EC2** |  `disableApiTermination` 值會設定為 `false` `instanceType` 值會設定為要還原之復原點的 instanceType `requiredImdsV2` 值會設定為 `true`  |  `iamInstanceProfileName` (null 或 `UseBackedUpValue`) `instanceType` `requireImdsV2` `securityGroupIds` `subnetId`  | 
| **Amazon EFS** |  `encrypted` 值會設定為 `true` `file-system-id` 值會設定為要還原之復原點的檔案系統 ID `kmsKeyId value` 已設定為 `alias/aws/elasticfilesystem` `newFileSystem` 值會設定為 `true` `performanceMode` 值會設定為 `generalPurpose`  |  `kmsKeyId` `performanceMode`  | 
| **Amazon FSx for Lustre** |  `lustreConfiguration` 具有巢狀索引鍵。一個巢狀索引鍵是 `automaticBackupRetentionDays`，其值會設為 `0`  |  `kmsKeyId` `lustreConfiguration` 具有巢狀索引鍵 `logConfiguration` `securityGroupIds` `subnetIds`，*成功還原所需*  | 
| **Amazon FSx for NetApp ONTAP** |  `name` 會設定為開頭為 `awsbackup_restore_test_` 的隨機值 `ontapConfiguration` 具有巢狀索引鍵，包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  |  `ontapConfiguration` 具有特定的可覆寫巢狀索引鍵，包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  | 
| **Amazon FSx for OpenZFS** |  `openZfzConfiguration`，其中有巢狀索引鍵，包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  |  `kmsKeyId` `openZfsConfiguration` 具有特定的可覆寫巢狀索引鍵，包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/aws-backup/latest/devguide/restore-testing-inferred-metadata.html) `securityGroupIds` `subnetIds`  | 
| **Amazon FSx for Windows File Server** |  `windowsConfiguration`，其中有巢狀索引鍵，包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  |  `kmsKeyId` `securityGroupIds` `subnetIds` *成功還原所需* `windowsConfiguration`，包含特定的可覆寫巢狀索引鍵 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  | 
| **Amazon RDS、Aurora、Amazon DocumentDB、Amazon Neptune 叢集** |  `availabilityZones`，將值設定為最多三個隨機可用區域的清單 `dbClusterIdentifier`，包含開頭為 `awsbackup-restore-test` 的隨機值 `engine`，將值設定為要還原之復原點的引擎  |  `availabilityZones` `databaseName` `dbClusterParameterGroupName` `dbSubnetGroupName` `enableCloudwatchLogsExports` `enableIamDatabaseAuthentication` `engine` `engineMode` `engineVersion` `kmskeyId` `port` `optionGroupName` `scalingConfiguration` `vpcSecurityGroupIds`  | 
| **Amazon RDS 執行個體** |  `dbInstanceIdentifier`，包含開頭為 `awsbackup-restore-test-` 的隨機值 `deletionProtection`，將值設定為 `false` `multiAz`，將值設定為 `false` `publiclyAccessible`，將值設定為 false  |  `allocatedStorage` `availabilityZones` `dbInstanceClass` `dbName` `dbParameterGroupName` `dbSubnetGroupName` `domain` `domainIamRoleName` `enableCloudwatchLogsExports` `enableIamDatabaseAuthentication` `iops` `licensemodel` `multiAz` `optionGroupName` `port` `processorFeatures` `publiclyAccessible` `storageType` `vpcSecurityGroupIds`  | 
| **Amazon Simple Storage Service (Amazon S3)** |  `destinationBucketName`，包含開頭為 `awsbackup-restore-test-` 的隨機值 `encrypted `，將值設定為 `true` `encryptionType`，將值設定為 `SSE-S3` `newBucket`，將值設定為 `true`  |  `encryptionType` `kmsKey`  | 

# 還原測試驗證
<a name="restore-testing-validation"></a>

您可以選擇建立在還原測試任務完成時執行的事件驅動驗證。

首先，使用 Amazon EventBridge 支援的任何目標建立驗證工作流程，例如 AWS Lambda。其次，新增 EventBridge 規則，以接聽達到 狀態的還原任務`COMPLETED`。第三，建立還原測試計劃 （或讓現有的還原測試計劃如期執行）。最後，在還原測試完成後，監控驗證工作流程的日誌，以確保其如預期般執行 （一旦驗證執行，驗證狀態會顯示在[AWS Backup 主控台](https://console.aws.amazon.com/backup)中）。

1. 

**設定驗證工作流程**

   您可以使用 Lambda 或 EventBridge 支援的任何其他目標來設定驗證工作流程。例如，如果您正在驗證包含 Amazon EC2 執行個體的還原測試，則可以包含 ping 運作狀態檢查端點的程式碼。

   您可以使用事件中的詳細資訊來判斷要驗證哪些資源 （哪些資源）。

   您可以使用 [Lambda 層](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html)來使用最新的 SDK （因為`PutRestoreValidationResult`無法透過 Lambda 開發套件使用）。

   以下是範例：

   ```
   import { Backup } from "@aws-sdk/client-backup";
   
   export const handler = async (event) => {
     console.log("Handling event: ", event);
   
     const restoreTestingPlanArn = event.detail.restoreTestingPlanArn;
     const resourceType = event.detail.resourceType;
     const createdResourceArn = event.detail.createdResourceArn;
   
     // TODO: Validate the resource
     
     const backup = new Backup();
     const response = await backup.putRestoreValidationResult({
       RestoreJobId: event.detail.restoreJobId,
       ValidationStatus: "SUCCESSFUL", // TODO
       ValidationStatusMessage: "" // TODO
     });
     
     console.log("PutRestoreValidationResult: ", response);
     console.log("Finished");
   };
   ```

1. 

**新增 EventBridge 規則**

   [建立 EventBridge 規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html#eb-gs-create-rule)來接聽還原任務[`COMPLETED`事件](https://docs.aws.amazon.com/aws-backup/latest/devguide/eventbridge.html#monitoring-events-in-eventbridge)。

   或者，您可以依資源類型或還原測試計畫 ARN 來篩選事件。將此規則的目標設定為叫用您在步驟 1 中定義的驗證工作流程。請見此處範例：

   ```
   {
     "source":[
       "aws.backup"
     ],
     "detail-type":[
       "Restore Job State Change"
     ],
     "detail":{
       "resourceType":[
         "..."
       ],
       "restoreTestingPlanArn":[
         "..."
       ],
       "status":[
         "COMPLETED"
       ]
     }
   }
   ```

1. 

**讓還原測試計劃執行並完成**

   還原測試計劃會根據您設定的排程執行。

   如果您還沒有[還原測試計畫，請參閱建立](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing.html#restore-testing-create)還原測試計畫；如果您想要變更設定[，請參閱更新還原測試計畫](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing.html#restore-testing-update)。

1. 

**監控結果**

   還原測試計劃如期執行後，您可以檢查驗證工作流程的日誌，以確保其正確執行。

   您可以呼叫 API `PutRestoreValidationResult` 來發佈結果，然後可在[AWS Backup 主控台](https://console.aws.amazon.com/backup)中透過描述和列出還原任務的 AWS Backup API 呼叫來檢視結果，例如 `DescribeRestoreJob`或 `ListRestoreJob`。

   設定驗證狀態後，就無法變更。