

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

# 教學課程：建立主動/被動區域切換計畫
<a name="tutorial-region-switch"></a>

本教學課程會引導您為在 us-east-1 中執行的應用程式建立主動/被動區域切換計畫，並復原至 us-west-2。此範例包括用於運算的 Amazon EC2 執行個體、用於儲存的 Amazon Aurora 全域資料庫，以及用於 DNS 的 Amazon Route 53。

在本教學課程中，您將完成下列步驟：
+ 建立區域切換計畫
+ 建置計劃的工作流程和執行區塊
+ 建置 EC2 Auto Scaling 群組執行區塊
+ 建置兩個手動核准執行區塊
+ 建置兩個自訂動作 Lambda 執行區塊
+ 建置 Amazon Aurora Global Database 執行區塊
+ 建置 ARC 路由控制區塊
+ 執行區域切換計畫

## 先決條件
<a name="tutorial-rs-prerequisites"></a>

開始本教學課程之前，請確認您在這兩個區域中都具備下列先決條件：
+ 具有適當許可的 IAM 角色
+ EC2 Auto Scaling 群組
+ 用於維護頁面和圍欄的 Lambda 函數
+ Aurora 全域資料庫
+ ARC 路由控制

## 步驟 1：建立區域切換計畫
<a name="tutorial-rs-create-plan"></a>

1. 從區域切換主控台中，選擇**建立區域切換計畫**。

1. 提供下列詳細資訊：
   + **主要區域**：選擇 us-east-1
   + **待命區域**：選擇 us-west-2
   + **所需的復原時間目標 (RTO)** （選用）
   + **IAM 角色**：輸入計劃執行 IAM 角色。此 IAM 角色允許區域切換在執行期間呼叫 AWS 服務。

1. 選擇**建立**。

（選用） 將來自不同 AWS 帳戶的資源新增至您的區域切換計畫：

1. 建立跨帳戶角色：
   + 在託管資源的帳戶中，建立 IAM 角色。
   + 新增計劃將存取之特定資源的許可。
   + 新增允許執行角色擔任新角色的信任政策。
   + 輸入並記下您將用作共用秘密的外部 ID。

1. 在您的計劃中設定 資源：
   + 當您將資源新增至計劃時，請指定兩個額外的欄位：
     + **crossAccountRole**：您在步驟 1 中建立的角色 ARN
     + **externalId**：您在步驟 1 中輸入的外部 ID

EC2 Auto Scaling 執行區塊存取帳戶 987654321 中資源的範例組態：

```
{
  "executionBlock": "EC2AutoScaling",
  "name": "ASG",
  "crossAccountRole": "arn:aws:iam::987654321:role/RegionSwitchCrossAccountRole",
  "externalId": "unique-external-id-123",
  "autoScalingGroupArn": "arn:aws:autoscaling:us-west-2:987654321:autoScalingGroup:*:autoScalingGroupName/CrossAccountASG"
}
```

必要許可：
+ 執行角色必須具有跨帳戶角色的 sts：AssumeRole 許可。
+ 跨帳戶角色必須僅具有所存取特定資源的許可。
+ 跨帳戶角色的信任政策必須包含：
  + 執行角色的帳戶做為信任的實體。
  + 外部 ID 條件。
+ 如需設定跨帳戶角色的詳細資訊，請參閱 [跨帳戶資源許可](security_iam_region_switch_cross_account.md)。

在執行計畫之前，區域切換會驗證下列項目：
+ 執行角色可以擔任跨帳戶角色。
+ 跨帳戶角色具有必要的許可。
+ 外部 ID 符合信任政策。

## 步驟 2：建置計劃的工作流程和執行區塊
<a name="tutorial-rs-build-workflows"></a>

1. 從區域切換計畫詳細資訊頁面，選擇**建置工作流程**。

1. 選取**為所有區域建立相同的啟用工作流程**。

1. 輸入區域啟用工作流程描述 （選用）。這將用於在執行計劃時輕鬆識別工作流程。

1. 選擇**儲存並繼續**。

### 新增 EC2 Auto Scaling 執行區塊
<a name="tutorial-rs-build-workflows-ec2"></a>

如需此執行區塊的詳細資訊，請參閱 [Amazon EC2 Auto Scaling 群組執行區塊](ec2-auto-scaling-block.md)。

1. 選擇**新增步驟**，然後選擇**依序執行**。

1. 選取 **EC2 Auto Scaling 執行區塊**，然後選擇**新增和編輯**。此區塊可讓您開始增加被動區域中的容量。

1. 在右側面板中，設定 區塊：
   + **步驟名稱**：輸入「擴展」
   + **步驟描述** （選用）
   + **us-east-1 的 Auto Scaling 群組 ARN**：us-east-1 中 ASG 的 ARN
   + **us-west-2 的 Auto Scaling 群組 ARN**：us-west-2 中 ASG 的 ARN
   + **符合來源區域的容量的百分比**：輸入 100
   + **容量監控方法**：保留為「最近」
   + **逾時 **（選用）

   如需此執行區塊所需 IAM 許可的資訊，請參閱 [EC2 Auto Scaling 執行區塊範例政策](security_iam_region_switch_ec2_autoscaling.md)。

1. 選擇**儲存步驟**。

### 新增手動核准執行區塊
<a name="tutorial-rs-build-workflows-manual-approval-1"></a>

如需此執行區塊的詳細資訊，請參閱 [手動核准執行區塊](manual-approval-block.md)。

1. 選擇**新增步驟**。

1. 選取**手動核准執行區塊**，並將其新增至設計視窗。此區塊允許在繼續之前進行人工驗證。

1. 在右側面板中，設定 區塊：
   + **步驟名稱**：輸入「設定前手動核准」
   + **步驟描述** （選用）
   + **IAM 核准角色**：使用者必須擔任的角色，才能核准執行
   + **逾時 **（選用）。逾時後，執行會暫停，您可以選擇重試、略過或取消。

   如需此執行區塊所需 IAM 許可的資訊，請參閱 [手動核准執行區塊範例政策](security_iam_region_switch_manual_approval.md)。

1. 選擇**儲存步驟**。

### 新增維護頁面的自訂動作 Lambda 執行區塊
<a name="tutorial-rs-build-workflows-lambda-maintenance"></a>

如需此執行區塊的詳細資訊，請參閱 [自訂動作 Lambda 執行區塊](custom-action-lambda-block.md)。

1. 選擇**新增步驟**。

1. 選取**自訂動作 Lambda 執行區塊**，然後選擇**新增和編輯**。此區塊會在啟用的 區域中發佈維護頁面。

1. 在右側面板中，設定 區塊：
   + **步驟名稱**：輸入「顯示維護頁面」
   + **步驟描述** （選用）
   + **用於啟用 us-east-1 的 Lambda ARN**：部署在 us-east-1 中的維護頁面 Lambda 函數的 ARN
   + **用於啟用 us-west-2 的 Lambda ARN**：在 us-west-2 中部署的維護頁面 Lambda 函數的 ARN
   + **要執行 Lambda 函數的區域**：選擇**在啟用區域中執行**
   + **逾時 **（選用）
   + **重試間隔 **（選用）

   如需此執行區塊所需 IAM 許可的資訊，請參閱 [自訂動作 Lambda 執行區塊範例政策](security_iam_region_switch_lambda.md)。

1. 選擇**儲存步驟**。

### 新增 Aurora 全域資料庫執行區塊
<a name="tutorial-rs-build-workflows-aurora"></a>

如需此執行區塊的詳細資訊，請參閱 [Amazon Aurora 全域資料庫執行區塊](aurora-global-database-block.md)。

1. 選擇**新增步驟**。

1. 選取 **Aurora 全域資料庫執行區塊**，然後選擇**新增和編輯**。此區塊會觸發 Aurora 全域資料庫切換 （不會遺失資料）。如需詳細資訊，請參閱《[Aurora 使用者指南》中的使用 Aurora Global Database 的切換或容錯移轉](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html)。 **

1. 在右側面板中，設定 區塊：
   + **步驟名稱**：輸入 **Aurora 切換**
   + **步驟描述** （選用）
   + **Aurora 全域資料庫識別符**：Aurora 叢集的名稱
   + **用於啟用 us-east-1 的叢集 ARN**：us-east-1 中的 Aurora 叢集 ARN
   + **用於啟用 us-west-2 的叢集 ARN**：us-west-2 中的 Aurora 叢集 ARN
   + **選取 Aurora 資料庫的選項**：選擇**切換**
   + **逾時 **（選用）

   如需此執行區塊所需 IAM 許可的資訊，請參閱 [Aurora Global Database 執行區塊範例政策](security_iam_region_switch_aurora.md)。

1. 選擇**儲存步驟**。

### 新增 ARC 路由控制執行區塊
<a name="tutorial-rs-build-workflows-routing-control"></a>

如需此執行區塊的詳細資訊，請參閱 [ARC 路由控制執行區塊](arc-routing-controls-block.md)。

1. 選擇**新增步驟**。

1. 選取 **ARC 路由控制執行區塊**，然後選擇**新增和編輯**。此區塊會執行 DNS 容錯移轉，將流量轉移到被動區域。

1. 在右側面板中，設定 區塊：
   + **步驟名稱**：輸入**切換 DNS**
   + **步驟描述** （選用）
   + **用於啟用 us-east-1 的路由控制**：選擇**新增路由控制**
   + **逾時**：輸入逾時值。

1. 選擇**新增路由控制**：
   + **路由控制 ARN**：控制 us-east-1 之路由控制的 ARN
   + **路由控制狀態**：選擇**開啟**

1. 再次選擇**新增路由控制**：
   + **路由控制 ARN**：控制 us-west-2 之路由控制的 ARN
   + **路由控制狀態**：選擇**關閉**

1. 選擇**儲存**。

1. **用於啟用 us-west-2 的路由控制**：選擇**新增路由控制**

1. 選擇**新增路由控制**：
   + **路由控制 ARN**：控制 us-west-2 之路由控制的 ARN
   + **路由控制狀態**：選擇**開啟**

1. 再次選擇**新增路由控制**：
   + **路由控制 ARN**：控制 us-east-1 之路由控制的 ARN
   + **路由控制狀態**：選擇**關閉**

1. 選擇**儲存**。

1. 選擇**儲存步驟**。

   如需此執行區塊所需 IAM 許可的資訊，請參閱 [ARC 路由控制執行區塊範例政策](security_iam_region_switch_arc_routing.md)。

1. 選擇**儲存**。

## 步驟 3：執行計畫
<a name="tutorial-rs-execute-plan"></a>

1. 在區域切換計劃詳細資訊頁面的右上角，選擇**執行**。

1. 輸入執行詳細資訊：
   + 選取要啟用的區域。
   + 選取計劃執行模式。
   + （選用） 檢視執行步驟。
   + 確認計劃執行。

1. 選擇 **開始使用**。

1. 您可以在計劃在執行詳細資訊頁面上執行時檢視詳細步驟。您可以查看計劃執行中的每個步驟，包括開始時間、結束時間、資源 ARN 和日誌訊息。

當受損的區域復原後，您可以再次執行計畫 （變更您提供的參數） 以啟用原始區域，將應用程式操作切換回原始主要區域。