

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

# CloudFormation 堆疊備份
<a name="applicationstackbackups"></a>

CloudFormation 堆疊是由多個具狀態和無狀態的資源所組成，可作為一個單位進行備份。換句話說，您可以透過備份堆疊並還原其中的資源，來備份和還原包含多個資源的應用程式。堆疊中所有的資源都是由堆疊的 CloudFormation 範本定義。

備份 CloudFormation 堆疊時，會為 CloudFormation 範本和堆疊 AWS Backup 中 支援的每個額外資源建立復原點。這些復原點會在一個稱為**複合**的整體復原點中群組在一起。

您無法還原此複合復原點，但可以還原巢狀復原點。您可以使用主控台或 AWS CLI還原複合備份中的任何位置，從一個巢狀備份到所有巢狀備份。

## CloudFormation 應用程式堆疊術語
<a name="appstackterminology"></a>
+ **複合復原點**：用來將巢狀復原點以及其他中繼資料群組在一起的復原點。
+ **巢狀復原點**：一個資源的復原點，屬於 CloudFormation 堆疊的一部分，並作為複合復原點的一部分進行備份。每個巢狀復原點都屬於一個複合復原點堆疊。
+ **複合任務**：CloudFormation 堆疊的備份、複製或還原任務，可能會觸發堆疊內個別資源的其他備份任務。
+ **巢狀任務**： CloudFormation 堆疊中資源的備份、複製或還原任務。

## CloudFormation 堆疊備份任務
<a name="howtobackupcfn"></a>

建立備份的程序稱為備份任務。CloudFormation 堆疊備份任務具有[狀態](https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup.html#backup-job-statuses)。備份任務完成後，其狀態會變成 `Completed`。這表示已建立 [CloudFormation 復原點](#cfnrecoverypoints) (備份)。

CloudFormation 堆疊可以使用主控台進行備份，或以程式設計方式進行備份。若要備份任何資源 (包括 CloudFormation 堆疊)，請參閱位於本《AWS Backup 開發人員指南》**其他地方的《[建立備份](https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup.html)》。

您可以使用 API 命令 `StartBackupJob` 備份 CloudFormation 堆疊。請注意，說明文件和主控台是以複合復原點和巢狀復原點指稱；API 語言在相同的內容關係中則使用「父系和子系復原點」術語。

CloudFormation 堆疊包含 [CloudFormation 範本](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)指出的所有 AWS 資源。請注意，您的範本可能包含 AWS Backup目前不支援的資源。如果您的範本包含 AWS 支援的資源和不支援的資源組合， AWS Backup 仍會將範本備份到複合堆疊中，但 Backup 只會建立備份支援服務的復原點。CloudFormation 範本中的所有資源類型都會包含在備份中，即使您尚未選擇加入特定服務也一樣 (在主控台的「設定」中將服務切換為「已啟用」)。

## CloudFormation 復原點
<a name="cfnrecoverypoints"></a>

### 復原點狀態
<a name="cfnrecoverypointstatus"></a>

堆疊的備份任務完成後 (任務狀態為 `Completed`)，即已建立堆疊的備份。此備份也稱為複合復原點。複合復原點可能具有下列其中一種狀態：`Completed`、`Failed` 或 `Partial`。請注意，備份任務具有狀態，而復原點 (也稱為備份) 也會有個別的狀態。

已完成的備份任務表示您的整個堆疊和 中的資源受到 保護 AWS Backup。失敗狀態表示備份任務失敗；您應該在修正造成失敗的問題之後重新建立備份。

`Partial` 狀態表示堆疊中並非所有資源都已備份。如果 CloudFormation 範本包含目前不支援的資源，則可能會發生這種情況 AWS Backup，或者如果屬於堆疊中資源 （巢狀資源） 的一或多個備份任務具有 以外的狀態，則可能會發生這種情況`Completed`。您可以手動建立隨需備份，重新執行產生 `Completed` 以外狀態的任何資源。如果您預期堆疊的狀態為 `Completed`，但卻標記為 `Partial`，請確認您的堆疊可能發生以上哪種情況。

複合復原點中的每個巢狀資源都有自己的個別復原點，每個復原點都有自己的狀態 (`Completed` 或 `Failed`)。您可以還原狀態為 `Completed` 的巢狀復原點。

### 管理復原點
<a name="cfnmanagerecoverypoints"></a>

您可以複製複合復原點 (備份)，以及複製、刪除、取消關聯或還原巢狀復原點，但無法刪除包含巢狀備份的複合復原點。刪除或取消關聯複合復原點中的巢狀復原點之後，您可以手動刪除複合復原點，或保留直到備份計畫生命週期將其刪除為止。

### 刪除復原點
<a name="cfndeleterecoverypoint"></a>

您可以使用 AWS Backup 主控台或使用 刪除復原點 AWS CLI。

若要使用 AWS Backup 主控台刪除復原點，

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

1. 按一下左側導覽列中的 **受保護的資源**。在文字方塊中，輸入 `CloudFormation` 僅顯示您的 CloudFormation 堆疊。

1. 複合復原點會隨即顯示在「復原點」窗格中。您可以按一下每個復原點 ID 左側的加號 (\$1) 來展開每個複合復原點，以顯示複合中包含的所有巢狀復原點。您可以勾選任何復原點左側的方塊，將其包含在您選取要刪除的復原點中。

1. 按一下 **刪除** 按鈕。

當您使用主控台刪除一或多個複合復原點時，會快顯一個警告方塊。此警告方塊會要求您確認是否有意刪除複合復原點 (包括複合堆疊內的巢狀復原點)。

若要使用 API 刪除復原點，請使用 `DeleteRecoveryPoint` 命令。

當您搭配 使用 API 時 AWS Command Line Interface ，您必須先刪除所有巢狀復原點，才能刪除複合點。如果您傳送 API 請求以刪除其中仍包含巢狀復原點的複合堆疊備份 (復原點)，該請求會傳回錯誤。

### 取消巢狀復原點與複合復原點的關聯
<a name="cfndisassociaterecoverypoints"></a>

您可以取消巢狀復原點與複合復原點的關聯 (例如，您想要保留巢狀復原點但刪除複合復原點)。兩個復原點都會保留下來，但不再相互關聯；也就是說，取消關聯之後，在複合復原點上進行的動作將不會再套用至巢狀復原點。

您可以使用主控台或呼叫 API `DisassociateRecoveryPointFromParent` 來取消復原點的關聯。[請注意，API 呼叫使用「父系」術語來表示複合復原點。]

### 複製復原點
<a name="cfncopyrecoverypoint"></a>

您可以複製複合復原點，或者如果資源支援[跨帳戶和跨區域複製](backup-feature-availability.md#features-by-resource)，則可以複製巢狀復原點。

若要使用 AWS Backup 主控台複製復原點：

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

1. 按一下左側導覽列中的 **受保護的資源**。在文字方塊中，輸入 `CloudFormation` 僅顯示您的 CloudFormation 堆疊。

1. 複合復原點會隨即顯示在「復原點」窗格中。您可以按一下每個復原點 ID 左側的加號 (\$1) 來展開每個複合復原點，以顯示複合中包含的所有巢狀復原點。您可以按一下任何復原點左側的圓形選項按鈕進行複製。

1. 選取後，請按一下窗格右上角的 **複製** 按鈕。

當您複製複合復原點時，不支援複製功能的巢狀復原點不會出現在複製的堆疊中。複合復原點的狀態將會是 `Partial`。

## 常見問答集
<a name="cfnfaq"></a>

1. 「在應用程式備份過程中會包含哪些內容？」**

   做為使用 CloudFormation 定義之應用程式的每個備份的一部分，範本、範本中每個參數的處理值，以及 支援的巢狀資源 AWS Backup 都會進行備份。巢狀資源的備份方式與備份不屬於 CloudFormation 堆疊之個別資源的方式相同。請注意，不會備份標記為 `no-echo` 的參數值。

   

1. *「我可以備份具有巢狀 CloudFormation 堆疊的堆疊嗎？」*

   是。您可以備份包含巢狀堆疊的 CloudFormation 堆疊。

   

1. 「`Partial` 狀態是否表示我的備份建立失敗？」**

   否。部分狀態表示某些復原點已備份，某些復原點則否。如果您預期 `Completed` 備份結果，可檢查下列三種情況：

   1. 您的 CloudFormation 堆疊是否包含 AWS Backup目前不支援的資源？ 如需支援的資源清單，請參閱《 開發人員指南》中的[支援 AWS 的資源和第三方應用程式](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#supported-resources)。

   1. 屬於堆疊內資源的一或多個備份任務失敗，必須重新執行任務。

   1. 已從複合復原點中刪除或取消關聯巢狀復原點。

   

1. 「如何從 CloudFormation 堆疊備份中排除資源？」**

   當您備份 CloudFormation 堆疊時，您可以排除要備份的資源。在主控台中，[建立備份計畫](https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup-plan.html)和[更新備份計畫](https://docs.aws.amazon.com/aws-backup/latest/devguide/updating-a-backup-plan.html)過程中會有一個[指派資源](https://docs.aws.amazon.com/aws-backup/latest/devguide/assigning-resources.html)步驟。在此步驟中，有一個 **資源選取** 區段。如果您選擇 **包含特定資源類型**，並將 CloudFormation 納入為要備份的資源，則可以**從選取的資源類型中排除特定資源 ID**。您也可以使用標籤來排除堆疊內的資源。

   利用 CLI，您可以
   + 在備份計畫中使用 `NotResources`，從 CloudFormation 堆疊中排除特定資源。
   + 使用 `StringNotLike` 透過標籤排除項目。

   

1. 「巢狀資源支援哪些類型的備份？」**

   巢狀資源的備份可以是完整備份或增量備份，取決於 AWS Backup 這些資源支援的備份類型。如需詳細資訊，請參閱《[增量備份的運作方式](https://docs.aws.amazon.com/aws-backup/latest/devguide/creating-a-backup.html#how-incremental-backup-works)》。不過，請注意，Amazon S3 和 Amazon RDS 巢狀資源[不支援](backup-feature-availability.md#features-by-resource) PITR (時間點還原)。

   

1. 「是否會備份屬於 CloudFormation 堆疊一部分的變更集？」**

   否。在 CloudFormation 堆疊備份過程中不會備份變更集。

   

1. *「 CloudFormation 堆疊的狀態如何影響備份？」*

   CloudFormation 堆疊的狀態可能會影響備份。您可以備份狀態包含 `COMPLETE` 的堆疊，例如 `CREATE_COMPLETE`、`ROLLBACK_COMPLETE`、`UPDATE_COMPLETE`、`UPDATE_ROLLBACK_COMPLETE`、`IMPORT_COMPLETE` 或 `IMPORT_ROLLBACK_COMPLETE` 狀態。

   如果上傳新範本失敗且堆疊移至 `ROLLBACK_COMPLETE` 狀態，則會備份新範本，但巢狀資源的備份則會視資源是否已復原而定。

   

1. 「應用程式堆疊生命週期與其他復原點生命週期有何不同？」**

   巢狀復原點生命週期取決於其所屬的備份計畫。複合復原點取決於所有巢狀復原點的最長生命週期。刪除或取消關聯複合復原點內的最後一個巢狀復原點時，也會刪除複合復原點。

   

1. 「CloudFormation 的標籤如何複製到復原點？」**

   是。這些標籤會複製到各自的巢狀復原點。

1. 「刪除複合復原點和巢狀復原點 (備份) 是否有先後順序？」**

   是。您必須先刪除某些備份，才能刪除其他備份。在刪除複合內的所有復原點之前，無法刪除包含巢狀復原點的複合備份。一旦複合復原點不再包含巢狀復原點，就可以手動將其刪除。否則，系統會根據備份計畫生命週期將其刪除。

   

## 還原堆疊內的應用程式
<a name="restore-app-stack"></a>

如需還原巢狀復原點的資訊，請參閱《[如何還原應用程式堆疊備份](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-application-stacks.html)》。