

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

# 使用自動化執行手冊來升級 EC2 Windows 執行個體
<a name="automated-upgrades"></a>

您可以使用 AWS Systems Manager Automation Runbook 在 上執行 AWS Windows 和 SQL Server 執行個體的自動升級。

**Topics**
+ [相關服務](#automated-related)
+ [執行選項](#automated-execution-option)
+ [升級 Windows Server](#automated-upgrades-windows)
+ [升級 SQL Server](#automated-upgrades-sql)

## 相關服務
<a name="automated-related"></a>

自動升級程序會使用下列 AWS 服務：
+ **AWS Systems Manager**. AWS Systems Manager 是功能強大、統一的界面，可集中管理 AWS 資源。如需詳細資訊，請參閱*「[AWS Systems Manager 使用者指南」](https://docs.aws.amazon.com/systems-manager/latest/userguide/)*。
+ AWS Systems Manager Agent (SSM Agent) 是可在 Amazon EC2 執行個體、內部部署伺服器或虛擬機器 (VM) 上安裝和設定的 Amazon 軟體。SSM Agent 讓 Systems Manager 能夠更新、管理和設定這些資源。此代理程式會處理 AWS Cloud 中來自 Systems Manager 服務的申請，然後依照要求中的指定執行。如需詳細資訊，請參閱「AWS Systems Manager 使用者指南」**中的[使用 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)。
+ **AWS Systems Manager SSM Runbook**。SSM Runbook 定義 Systems Manager 在受管執行個體上執行的動作。SSM Runbook 使用 JavaScript 物件標記法 (JSON) 或 YAML，其中包括您指定的步驟和參數。本主題使用兩份 Systems Manager SSM Runbook 來進行自動化。如需詳細資訊，請參閱 *AWS Systems Manager 使用者指南*中的 [AWS Systems Manager Automation runbook 參考](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html)。

## 執行選項
<a name="automated-execution-option"></a>

當您在 Systems Manager 主控台選取 **Automation (自動化)** 時，請選取 **Execute (執行)**。在您選取自動化文件後，系統會提示您選取自動化執行選項。請從以下選項中選擇。在本主題稍後所提供途徑的步驟中，我們使用 **Simple execution (簡易執行)** 選項。

**簡易執行**  
如果您想要更新單一執行個體，但不想經歷每個自動化步驟來稽核結果，請選擇此選項。稍後的升級步驟中會進一步詳述此選項。

**Rate control (比率控制)**

如果您要對多個執行個體套用升級，請選擇此選項。請定義以下設定。
+ **Parameter (參數)**

  此設定 (也在 Multi-Account and Region (多帳戶和區域) 設定中) 定義自動化如何展開。
+ **目標**

  選取您要套用自動化的目標。此設定也在 Multi-Account and Region (多帳戶和區域) 設定中。
+ **Parameter Values (參數值)**

  使用自動化文件參數中定義的值。
+ **Resource Group (資源群組)**

  在 中 AWS，資源是您可以使用的實體。範例包括 Amazon EC2 執行個體、 AWS CloudFormation 堆疊或 Amazon S3 儲存貯體。如果您使用多個資源，將它們作為群組進行管理可能很有用，而不是為每個任務從一個 AWS 服務移至另一個服務。在某些情況下，您可能需要管理大量的相關資源，例如組成應用程式層的 EC2 執行個體。在此情況下，您在這些資源上可能需要一次執行大量動作。
+ **Tags** (標籤)

  標籤可協助您以不同的方式分類 AWS 資源，例如依用途、擁有者或環境。此分類在您擁有許多相同類型的資源時很有用。您可以使用指派的標籤快速識別特定資源。
+ **Rate Control (比率控制)**

  Rate Control (比率控制) 也在 Multi-Account and Region (多帳戶和區域) 設定中。當您設定比率控制參數時，請以目標計數或機群的百分比，定義機群中有多少要套用自動化。

 **Multi-Account and Region (多帳戶和區域)**

除了 Rate Control (比率控制) 下指定的參數 (也用在 Multi-Account and Region (多帳戶和區域) 設定中)，另外還有兩個設定：
+ **Accounts and organizational units (OUs) (帳戶和組織單位 (OU))**

  指定您要執行自動化的多個帳戶。
+ **AWS 區域**

  指定您要執行自動化的多個 AWS 區域 位置。

**手動執行**  
此選項類似於 **Simple execution (簡易執行)**，但可讓您逐步完成每個自動化步驟並稽核結果。

## 升級 Windows Server
<a name="automated-upgrades-windows"></a>

`[AWSEC2-CloneInstanceAndUpgradeWindows](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeWindows.html)` Runbook 從您帳戶中的 Windows Server 執行個體建立 Amazon Machine Image (AMI)，並將此 AMI 升級到您選擇的支援版本。此多步驟程序需要最多兩個小時才會完成。

自動化升級程序中包含兩個 AMI：
+ **目前執行中的執行個體**。第一個 AMI 是目前執行中的執行個體 (尚未升級)。此 AMI 用來啟動另一個執行個體，以執行就地升級。當程序完成時，將從您的帳戶中刪除此 AMI，除非您明確要求保留原始執行個體。此設定由參數 `KeepPreUpgradeImageBackUp` 處理 (預設值為 `false`，表示預設會刪除 AMI)。
+ **已升級的 AMI**。此 AMI 是自動化程序的成果。

最終成果是一個 AMI，即已升級的 AMI 執行個體。

當升級完成時，您可以在 Amazon VPC 中啟動新的 AMI，以測試應用程式功能。測試後，在執行另一次升級前，請先安排應用程式停機時間，再完全切換至已升級的執行個體。

### 先決條件
<a name="automated-prereq-windows"></a>

若要使用 AWS Systems Manager 自動化文件自動化 Windows Server 升級，您必須執行下列任務：
+ 搭配指定的 IAM 政策建立 IAM 角色，以允許 Systems Manager 在您的 Amazon EC2 執行個體上執行自動化任務，並驗證您是否符合使用 Systems Manager 的先決條件。如需詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[建立角色以將許可委派給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
+ [選取您希望如何執行自動化的選項](#automated-execution-option)。執行選項包括 **Simple execution (簡易執行)**、**Rate control (比率控制)**、**Multi-account and Region (多帳戶和區域)** 及 **Manual execution (手動執行)**。如需關於這些選項的詳細資訊，請參閱 [執行選項](#automated-execution-option)。
+ 確認 SSM Agent 安裝於您的執行個體上。如需詳細資訊，請參閱[在適用於 Windows Server 的 Amazon EC2 執行個體上安裝與設定 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-windows.html)。
+ Windows PowerShell 3.0 或更新版本必須安裝在您的執行個體上。
+ 對於加入 Microsoft Active Directory 網域的執行個體，建議您指定沒有連線到您的網域控制站的 `SubnetId`，以協助避免主機名稱衝突。
+ 執行個體子網路必須具有網際網路的傳出連線，提供 Amazon S3 AWS 服務 等 的存取權，以及從 Microsoft 下載修補程式的存取權。如果子網路是公有子網路且執行個體具有公有 IP 地址，或子網路是私有子網路且具有將網際網路流量傳送至公有 NAT 裝置的路由，則符合此需求。
+ 此自動化適用於執行 Windows Server 2008 R2、Windows Server 2012 R2、Windows Server 2016 和 Windows Server 2019 的執行個體。
+ 確認執行個體在開機磁碟中有 20 GB 的可用磁碟空間。
+ 如果執行個體未使用 提供的 Windows 授權 AWS，請指定包含 Windows Server 2012 R2 安裝媒體的 Amazon EBS 快照 ID。若要執行此作業：

  1. 確認 Amazon EC2 執行個體執行的是 Windows Server 2012 R2 或更新版本。

  1. 在執行個體執行的相同可用區域中建立 6 GB 的 Amazon EBS 磁碟區。將磁碟區連結到執行個體。例如，將其掛載為 D 磁碟機。

  1. 在 ISO 按一下滑鼠右鍵，並將其掛載至執行個體，例如做為 E 磁碟機。

  1. 從磁碟機 E:\\ 將 ISO 的內容複製到磁碟機 D:\\

  1. 從上述步驟 2 建立的 6 GB 磁碟區建立 Amazon EBS 快照。

### Windows Server 升級限制
<a name="automated-windows-limits"></a>

此自動化不支援升級 Windows 網域控制站、叢集或 Windows 桌面作業系統。此自動化也不支援安裝了下列角色的適用於 Windows Server 的 Amazon EC2 執行個體：
+ 遠端桌面工作階段主機 (RDSH)
+ 遠端桌面連線代理人 (RDCB) 
+ 遠端桌面虛擬化主機 (RDVH) 
+ 遠端桌面 Web 存取 (RDWA)

### 執行 Windows Server 自動升級的步驟
<a name="2008R2-2012R2"></a>

使用 [AWSEC2-CloneInstanceAndUpgradeWindows](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeWindows.html) Automation Runbook，按照以下步驟升級您的 Windows Server 執行個體。

1. 從 **AWS 管理主控台**中開啟 Systems Manager。

1. 從左側導覽窗格中，在 **Change Management** (變更管理) 下選擇 **Automation** (自動化)。

1. 選擇 **Execute automation (執行自動化)**。

1. 搜尋稱為 `AWSEC2-CloneInstanceAndUpgradeWindows` 的自動化文件。

1. 當文件名稱出現時，請選取它。選取此文件時，將會出現文件詳細資訊。

1. 選擇 **Execute automation** (執行自動化) 以輸入此文件的參數。在頁面頂端，保持選取 **Simple execution (簡易執行)**。

1. 根據下列指導，輸入所要求的參數。
   + `InstanceID`

     **類型：**字串

     (必要) 執行 Windows Server 2008 R2、2012 R2、2016 或 2019 的執行個體，並且已安裝 SSM Agent。
   + `InstanceProfile`. 

     **類型：**字串

     (必要) IAM 執行個體描述檔。這是用於對 Amazon EC2 執行個體和 AWS AMIs 執行 Systems Manager 自動化的 IAM 角色。如需詳細資訊，請參閱《AWS Systems Manager 使用者指南》**中的[設定 EC2 執行個體許可](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-permissions.html#instance-profile-add-permissions)。
   + `TargetWindowsVersion`

     **類型：**字串

     (必要) 選取目標 Windows 版本。
   + `SubnetId`

     **類型：**字串

     (必要) 這是升級程序的子網，也是您的 EC2 執行個體所在地方。確認子網路具有對 AWS 服務的傳出連線，包括 Amazon S3，以及對 Microsoft 的傳出連線 （以下載修補程式）。
   + `KeepPreUpgradedBackUp`

     **類型：**字串

     (選用) 如果此參數設為 `true`，自動化會保留從執行個體建立的映像。預設設定為 `false`。
   + `RebootInstanceBeforeTakingImage`

     **類型：**字串

     (選用) 預設為 `false` (不重新啟動)。如果此參數設為 `true`，Systems Manager 在為升級建立 AMI 之前會重新啟動執行個體。

1. 輸入參數後，選擇 **Execute (執行)**。自動化開始時，您可以監控執行進度。

1. 當自動化完成時，您會看到 AMI ID。您可以啟動 AMI，以驗證 Windows 作業系統已升級。
**注意**  
自動化沒有必要執行所有步驟。這些步驟取決於自動化和執行個體的行為。Systems Manager 可能略過有些非必要的步驟。  
此外，某些步驟可能會逾時。Systems Manager 會嘗試升級和安裝所有最新的修補程式。不過，根據特定步驟可定義的逾時設定，修補程式有時會逾時。發生此情況時，Systems Manager 自動化會繼續下一個步驟，以確保內部作業系統升級到目標 Windows Server 版本。

1. 自動化完成之後，您可以使用 AMI ID 啟動 Amazon EC2 執行個體，以檢閱您的升級。如需如何從 AWS AMI 建立 Amazon EC2 執行個體的詳細資訊，請參閱[如何從自訂 AMI 啟動 EC2 執行個體？](https://repost.aws/knowledge-center/launch-instance-custom-ami)

## 升級 SQL Server
<a name="automated-upgrades-sql"></a>

[AWSEC2-CloneInstanceAndUpgradeSQLServer](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeSQLServer.html) 指令碼會從您帳戶中執行 SQL Server 的 Amazon EC2 執行個體建立 AMI，然後將 AMI 升級到更新版本的 SQL Server。此多步驟程序需要最多兩個小時才會完成。

自動化會從執行個體建立 AMI，接著在您提供的子網中啟動新的 AMI。自動化接著會執行 SQL Server 的就地升級。升級完成之後，自動化在終止已升級的執行個體之前會建立新的 AMI。

自動化升級程序中包含兩個 AMI：
+ **目前執行中的執行個體**。第一個 AMI 是目前執行中的執行個體 (尚未升級)。此 AMI 用來啟動另一個執行個體，以執行就地升級。當程序完成時，將從您的帳戶中刪除此 AMI，除非您明確要求保留原始執行個體。此設定由參數 `KeepPreUpgradeImageBackUp` 處理 (預設值為 `false`，表示預設會刪除 AMI)。
+ **已升級的 AMI**。此 AMI 是自動化程序的成果。

最終成果是一個 AMI，即已升級的 AMI 執行個體。

當升級完成時，您可以在 Amazon VPC 中啟動新的 AMI，以測試應用程式功能。測試後，在執行另一次升級前，請先安排應用程式停機時間，再完全切換至已升級的執行個體。

### 先決條件
<a name="automated-prereq-sql"></a>

若要使用 AWS Systems Manager 自動化文件自動化 SQL Server 升級，您必須執行下列任務：
+ 搭配指定的 IAM 政策建立 IAM 角色，以允許 Systems Manager 在您的 Amazon EC2 執行個體上執行自動化任務，並驗證您是否符合使用 Systems Manager 的先決條件。如需詳細資訊，請參閱「AWS Identity and Access Management 使用者指南」**中的[建立角色以委派許可給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
+ [選取您希望如何執行自動化的選項](#automated-execution-option)。執行選項包括 **Simple execution (簡易執行)**、**Rate control (比率控制)**、**Multi-account and Region (多帳戶和區域)** 及 **Manual execution (手動執行)**。如需關於這些選項的詳細資訊，請參閱 [執行選項](#automated-execution-option)。
+ Amazon EC2 執行個體必須使用 Windows Server 2008 R2 (或更新版本) 和 SQL Server 2008 或更新版本。
+ 確認 SSM Agent 安裝於您的執行個體上。如需詳細資訊，請參閱[在適用於 Windows Server 的 Amazon EC2 執行個體上使用 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-windows.html)。
+ 確認執行個體具有足夠的可用磁碟空間：
  + 若您要從 Windows Server 2008 R2 升級至 2012 R2，或從 Windows Server 2012 R2 升級至更新版本的作業系統，請確認您的執行個體開機磁碟中有 20 GB 的可用磁碟空間。
  + 若您要從 Windows Server 2008 R2 升級至 2016 或更新版本，請確認執行個體開機磁碟中有 40 GB 的可用磁碟空間。
+ 針對使用自有授權 (BYOL) 的 SQL Server 版本執行個體，適用下列額外的事前準備：
  + 提供 Amazon EBS 快照 ID，其中包含目標 SQL Server 安裝媒體。若要執行此作業：

    1. 確認 Amazon EC2 執行個體執行的是 Windows Server 2008 R2 或更新版本。

    1. 在執行個體執行的相同可用區域中建立 6 GB 的 Amazon EBS 磁碟區。將磁碟區連結到執行個體。例如，將其掛載為 D 磁碟機。

    1. 在 ISO 按一下滑鼠右鍵，並將其掛載至執行個體，例如做為 E 磁碟機。

    1. 從磁碟機 E:\\ 將 ISO 的內容複製到磁碟機 D:\\ 

    1. 建立步驟 2 中所建立 6 GB 磁碟區的 Amazon EBS 快照。

### SQL Server 自動升級限制
<a name="automated-sql-limits"></a>

使用 [AWSEC2-CloneInstanceAndUpgradeSQLServer](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeSQLServer.html) Runbook 來執行自動升級時，如下限制適用：
+ 升級僅能在使用 Windows 身分驗證的 SQL Server 上執行。
+ 確認執行個體上沒有待定的安全性修補程式更新。開啟 **Control Panel (控制面板)**，接著選擇 **Check for updates (檢查更新)**。
+ 不支援在 HA 和鏡像模式中的 SQL Server 部署。

### 執行 SQL Server 自動升級的步驟
<a name="SQL2008R2-SQL2016"></a>

使用 [AWSEC2-CloneInstanceAndUpgradeSQLServer](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeSQLServer.html) Automation Runbook，按照以下步驟升級您的 SQL Server。

1. 下載 SQL Server 2016 .iso 檔案並掛載到來源伺服器 (如果您尚未這麼做)。

1. 掛載 .iso 檔案之後，將所有元件檔案複製到您選擇的任何磁碟區。

1. 建立磁碟區的 Amazon EBS 快照，並將快照 ID 複製到剪貼簿，供稍後使用。如需詳細資訊，請參閱 **Amazon EBS 使用者指南**中的[建立 Amazon EBS 快照](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-snapshot.html)。

1. 將執行個體描述檔連接至 Amazon EC2 來源執行個體。這可讓 Systems Manager 與 EC2 執行個體通訊，並在新增至 AWS Systems Manager 服務之後對其執行命令。在此範例中，我們將角色命名為 `SSM-EC2-Profile-Role`，並將 `AmazonSSMManagedInstanceCore ` 政策連接到角色。

1. 在 AWS Systems Manager 主控台的左側導覽窗格中，選擇**受管執行個體**。確認 EC2 執行個體在受管執行個體的清單中。如果幾分鐘後沒有看見您的執行個體，請參閱 *AWS Systems Manager 使用者指南*中的[我的執行個體在哪裡？](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-remote-commands.html#where-are-instances)。

1. 在左側導覽窗格中，在 **Change Management** (變更管理) 下選擇 **Automation** (自動化)。

1. 選擇 **Execute automation (執行自動化)**。

1. 搜尋稱為 `AWSEC2-CloneInstanceAndUpgradeSQLServer` 的自動化文件。

1. 選擇 `AWSEC2-CloneInstanceAndUpgradeSQLServer` SSM 文件，然後選擇 **Next** (下一步)。

1. 確保選取 **Simple execution (簡易執行)** 選項。

1. 根據下列指導，輸入所要求的參數。
   + `InstanceId` 

     **類型：**字串

     (必要) 執行 SQL Server 2008 R2 (或更新版本) 的執行個體。
   + `IamInstanceProfile`

     **類型：**字串

     (必要) IAM 執行個體描述檔。
   + `SQLServerSnapshotId`

     **類型：**字串

     (必要) 目標 SQL Server 安裝媒體的快照 ID。包含 SQL Server 授權的執行個體不需要此參數。
   + `SubnetId`

     **類型：**字串

     (必要) 這是升級程序的子網，也是您的 EC2 執行個體所在地方。確認子網路具有對 AWS 服務的傳出連線，包括 Amazon S3，以及對 Microsoft 的傳出連線 （以下載修補程式）。
   + `KeepPreUpgradedBackUp`

     **類型：**字串

     (選用) 如果此參數設為 `true`，自動化會保留從執行個體建立的映像。預設設定為 `false`。
   + `RebootInstanceBeforeTakingImage`

     **類型：**字串

     (選用) 預設為 `false` (不重新啟動)。如果此參數設為 `true`，Systems Manager 在為升級建立 AMI 之前會重新啟動執行個體。
   + `TargetSQLVersion`

     **類型：**字串

     (選用) 目標 SQL Server 版本。預設值為 `2016`。

1. 輸入參數後，選擇 **Execute (執行)**。自動化開始時，您可以監控執行進度。

1. 當 **Execution Status (執行狀態)** 顯示 **Success (成功)** 時，請展開 **Outputs (輸出)** 來檢視 AMI 資訊。針對您選擇的 VPC，您可以使用 AMI ID 來啟動您的 SQL Server 執行個體。

1. 開啟 Amazon EC2 主控台。在左側導覽窗格中選擇 **AMI**。您應該會看到新的 AMI。

1. 若要確認已成功安裝 SQL Server 新版本，請選擇新的 AMI 並選擇 **Launch** (啟動)。

1. 選擇您要用於 AMI 的執行個體類型、您要部署到的 VPC 和子網，以及您要使用的儲存體。因為您是從 AMI 啟動新的執行個體，將會出現磁碟區，供您選擇加入您啟動的新 EC2 執行個體中。您可以移除任何這些磁碟區，或新增磁碟區。

1. 新增標籤以協助識別您的執行個體。

1. 將一或多個安全群組新增至執行個體。

1. 選擇 **Launch Instance (啟動執行個體)**。

1. 選取執行個體的標籤名稱，然後在 **Actions (動作)** 下拉式清單下，選取 **Connect (連接)**。

1. 驗證 SQL Server 新版本是新執行個體上的新資料庫引擎。