執行自動升級 - Amazon Elastic Compute Cloud

執行自動升級

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

自動升級程序中使用下列 AWS 服務:

  • AWS Systems Manager。AWS Systems Manager 是強大的整合介面,可集中管理您的 AWS 資源。如需詳細資訊,請參閱 AWS Systems Manager使用者指南

  • AWS Systems Manager 代理程式 (SSM Agent) 是 Amazon 的軟體,可在 Amazon EC2 執行個體、內部部署伺服器或虛擬機器 (VM) 上安裝和設定。SSM Agent 讓 Systems Manager 能夠更新、管理和設定這些資源。此代理程式會處理 AWS Cloud 中來自 Systems Manager 服務的申請,然後依照要求中的指定執行。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的 使用 SSM Agent

  • 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 參考

執行選項

當您在 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

AWSEC2-CloneInstanceAndUpgradeWindows Runbook 從您帳戶中的 Windows Server 執行個體建立 Amazon Machine Image (AMI),並將此 AMI 升級到您選擇的支援版本。此多步驟程序需要最多兩個小時才會完成。

若要將您的 Windows Server 2008 R2 執行個體升級到 Windows Server 2016 或 2019,即會執行兩次就地升級,第一次從 Windows Server 2008 R2 到 Windows Server 2012 R2,然後從 Windows Server 2012 R2 到 Windows Server 2016 或 2019。不支援直接將 Windows Server 2008 R2 升級至 Windows Server 2016 或 2019。

自動化會從執行個體建立 AMI,接著在您提供的子網中啟動新的 AMI。自動化工作流程會執行就地升級,從 Windows Server 2008 R2、2012 R2 或 2016 升級到選取的版本 (Windows Server 2012 R2、2016 或 2019)。還會更新或安裝已升級的執行個體所需的 AWS 驅動程式。升級完成之後,工作流程會建立新的 AMI,並終止已升級的執行個體。如果您從 Windows Server 2008 R2 升級到 Windows Server 2016 或 2019,則自動化會建立兩個 AMI,因為就地升級會執行兩次。

自動化升級程序中包含兩個 AMI:

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

  • 已升級的 AMI。此 AMI 是自動化程序的成果。

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

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

Windows Server 自動升級路徑

Systems Manager Automation Runbook AWSEC2-CloneInstanceAndUpgradeWindows 支援以下升級路徑:

  • Windows Server 2008 R2 升級至 Windows Server 2012 R2

  • Windows Server 2012 R2 升級至 Windows Server 2016

  • Windows Server 2012 R2 升級至 Windows Server 2019

  • Windows Server 2016 升級至 Windows Server 2019

先決條件

為了使用 AWS Systems Manager Automation 文件來自動升級 Windows Server,您必須執行下列任務:

  • 搭配指定的 IAM 政策建立 IAM 角色,以允許 Systems Manager 在您的 Amazon EC2 執行個體上執行自動化任務,並驗證您是否符合使用 Systems Manager 的先決條件。如需詳細資訊,請參閱 AWS Identity and Access Management 使用者指南中的建立角色以委派許可給 AWS 服務

  • 選擇您希望如何執行自動化的選項。執行選項包括 Simple execution (簡易執行)Rate control (比率控制)Multi-account and Region (多帳戶和區域)Manual execution (手動執行)。如需關於這些選項的詳細資訊,請參閱 執行選項

  • 確認 SSM Agent 安裝於您的執行個體上。如需詳細資訊,請參閱在適用於 Windows Server 的 Amazon EC2 執行個體上安裝與設定 SSM Agent

  • Windows PowerShell 3.0 或更新版本必須安裝在您的執行個體上。

  • 對於加入 Microsoft Active Directory 網域的執行個體,建議您指定沒有連線到您的網域控制站的 SubnetId,以協助避免主機名稱衝突。

  • 指定的 SubnetId 必須是公有子網,並將自動指派公有 IPv4 地址設為 true。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的修改子網的公有 IPv4 定址屬性

  • 此 Automation 只適用於 Windows Server 2008 R2、2012 R2 和 2016 執行個體。

  • 此 Automation 僅適用於含未加密 Amazon EBS 根磁碟區的 Amazon EC2 執行個體。如果指定的執行個體有加密的根磁碟區,自動化會失敗。

  • 確認執行個體在開機磁碟中有 20 GB 的可用磁碟空間。

  • 如果執行個體不使用 AWS 提供的 Windows 授權,請指定包含 Windows Server 2012 R2 安裝媒體的 Amazon EBS 快照 ID。若要執行此作業:

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

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

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

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

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

Windows Server 升級限制

此自動化不支援升級 Windows 網域控制站、叢集或 Windows 桌面作業系統。此自動化也不支援安裝了下列角色的適用於 Windows Server 的 Amazon EC2 執行個體:

  • 遠端桌面工作階段主機 (RDSH)

  • 遠端桌面連線代理人 (RDCB)

  • 遠端桌面虛擬化主機 (RDVH)

  • 遠端桌面 Web 存取 (RDWA)

執行 Windows Server 自動升級的步驟

使用 AWSEC2-CloneInstanceAndUpgradeWindows Automation Runbook,按照以下步驟升級您的 Windows Server 執行個體。

  1. AWS Management Console (AWS 管理主控台) 開啟 Systems Manager。

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

  3. 選擇 Execute automation (執行自動化)

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

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

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

  7. 根據下列指導,輸入所要求的參數。

    • InstanceID

      類型:字串

      (必要) 執行 Windows Server 2008 R2、2012 R2 或 2016 的執行個體,並且已安裝 SSM Agent。

    • InstanceProfile.

      類型:字串

      (必要) IAM 執行個體描述檔。這是用來對 Amazon EC2 執行個體和 AWS AMI 執行 Systems Manager 自動化的 IAM 角色。如需詳細資訊,請參閱 AWS Systems Manager 使用者指南中的建立 Systems Manager 的 IAM 執行個體描述檔

    • TargetWindowsVersion

      類型:字串

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

    • SubnetId

      類型:字串

      (必要) 這是升級程序的子網,也是您的 EC2 執行個體所在地方。確認子網能夠對外連線至 AWS 服務 (包括 Amazon S3),也能對外連線至 Microsoft (以便下載修補程式)。

    • KeepPreUpgradedBackUp

      類型:字串

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

    • RebootInstanceBeforeTakingImage

      類型:字串

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

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

  9. 當自動化完成時,您會看到 AMI ID。您可以啟動 AMI,以驗證 Windows 作業系統已升級。

    注意

    自動化沒有必要執行所有步驟。這些步驟取決於自動化和執行個體的行為。Systems Manager 可能略過有些非必要的步驟。

    此外,某些步驟可能會逾時。Systems Manager 會嘗試升級和安裝所有最新的修補程式。不過,根據特定步驟可定義的逾時設定,修補程式有時會逾時。發生此情況時,Systems Manager 自動化會繼續下一個步驟,以確保內部作業系統升級到目標 Windows Server 版本。

  10. 自動化完成之後,您可以使用 AMI ID 啟動 Amazon EC2 執行個體,以檢閱您的升級。如需有關如何從 AWS AMI 建立 Amazon EC2 執行個體的詳細資訊,請參閱如何從自訂 Amazon Machine Image (AMI) 啟動 EC2 執行個體?

升級 SQL Server

AWSEC2-CloneInstanceAndUpgradeSQLServer 指令碼從您帳戶中執行 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,以測試應用程式功能。測試後,在執行另一次升級前,請先安排應用程式停機時間,再完全切換至已升級的執行個體。

SQL Server 自動升級路徑

AWSEC2-CloneInstanceAndUpgradeSQLServer Automation Runbook 支援下列升級路徑:

  • SQL Server 2008 升級至 SQL Server 2017、2016 或 2014

  • SQL Server 2008 R2 升級至 SQL Server 2017、2016 或 2014

  • SQL Server 2012 升級至 SQL Server 2019、2017、2016、2014

  • SQL Server 2014 升級至 SQL Server 2019、2017 或 2016

  • SQL Server 2016 升級至 SQL Server 2019 或 2017

  • SQL Server 2017 升級至 SQL Server 2019

先決條件

為了使用 AWS Systems Manager Automation 文件來自動升級 SQL Server,您必須執行下列任務:

  • 搭配指定的 IAM 政策建立 IAM 角色,以允許 Systems Manager 在您的 Amazon EC2 執行個體上執行自動化任務,並驗證您是否符合使用 Systems Manager 的先決條件。如需詳細資訊,請參閱 AWS Identity and Access Management 使用者指南中的建立角色以委派許可給 AWS 服務

  • 選擇您希望如何執行自動化的選項。執行選項包括 Simple execution (簡易執行)Rate control (比率控制)Multi-account and Region (多帳戶和區域)Manual execution (手動執行)。如需關於這些選項的詳細資訊,請參閱 執行選項

  • Amazon EC2 執行個體必須使用 Windows Server 2008 R2 (或更新版本) 和 SQL Server 2008 或更新版本。

  • 確認 SSM Agent 安裝於您的執行個體上。如需詳細資訊,請參閱在適用於 Windows Server 的 Amazon EC2 執行個體上安裝與設定 SSM Agent

  • 驗證執行個體在執行個體開機磁碟中有 20 GB 的可用磁碟空間。

  • 針對使用自有授權 (BYOL) 的 SQL Server 版本執行個體,適用下列額外的事前準備:

    • 提供 Amazon EBS 快照 ID,其中包含目標 SQL Server 安裝媒體。若要執行此作業:

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

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

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

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

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

SQL Server 自動升級限制

使用 AWSEC2-CloneInstanceAndUpgradeSQLServer Runbook 來執行自動升級時,如下限制適用:

  • 升級僅能在使用 Windows 身分驗證的 SQL Server 上執行。

  • 確認執行個體上沒有待定的安全性修補程式更新。開啟 Control Panel (控制面板),接著選擇 Check for updates (檢查更新)

  • 不支援在 HA 和鏡像模式中的 SQL Server 部署。

執行 SQL Server 自動升級的步驟

使用 AWSEC2-CloneInstanceAndUpgradeSQLServer Automation Runbook,按照以下步驟升級您的 SQL Server。

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

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

  3. 建立磁碟區的 Amazon EBS 快照,並將快照 ID 複製到剪貼簿,供稍後使用。如需有關建立 EBS 快照的詳細資訊,請參閱 Amazon Elastic Compute Cloud 使用者指南中的建立 EBS 快照

  4. 將執行個體描述檔連接至 Amazon EC2 來源執行個體。這可讓 Systems Manager 與 EC2 執行個體通訊,然後當此執行個體新增至 AWS Systems Manager 服務後,對此執行個體執行命令。在此範例中,我們將角色命名為 SSM-EC2-Profile-Role,並將 AmazonSSMManagedInstanceCore 政策連接到角色。請參閱 AWS Systems Manager 使用者指南中的建立 Systems Manager 的 IAM 執行個體描述檔

  5. 在 AWS Systems Manager 主控台,於左側導覽窗格選擇 Managed Instances (受管執行個體)。確認 EC2 執行個體在受管執行個體的清單中。如果幾分鐘後沒有看見您的執行個體,請參閱 AWS Systems Manager 使用者指南中的我的執行個體在哪裡?

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

  7. 選擇 Execute automation (執行自動化)

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

  9. 選擇 AWSEC2-CloneInstanceAndUpgradeSQLServer SSM 文件,然後選擇 Next (下一步)。

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

  11. 根據下列指導,輸入所要求的參數。

    • 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

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

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

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

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

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

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

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

  19. 選擇 Launch Instance (啟動執行個體)

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

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