在 EC2/內部部署運算平台上部署 - AWS CodeDeploy

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

在 EC2/內部部署運算平台上部署

本主題提供使用 EC2/內部部署運算平台之 CodeDeploy 部署元件和工作流程的相關資訊。如需藍/綠部署的資訊,請參閱藍/綠部署概述

EC2/內部部署運算平台上的部署元件

下圖顯示 EC2/內部部署運算平台上 CodeDeploy 部署中的元件。

EC2/內部部署運算平台上 CodeDeploy 部署中的元件。

EC2/內部部署運算平台上的部署工作流程

下圖顯示應用程式修訂部署中的重要步驟:

應用程式修訂版部署的主要步驟。

這些步驟包括:

  1. 建立應用程式並為其命名,以唯一識別您要部署的應用程式修訂版和應用程式的運算平台。 在部署期間 CodeDeploy 使用此名稱,以確保其參考正確的部署元件,例如部署群組、部署組態和應用程式修訂版。如需詳細資訊,請參閱建立應用程式 CodeDeploy

  2. 指定部署類型以及您要部署應用程式修訂的執行個體,來設定部署群組。就地部署會使用最新應用程式修訂來更新執行個體。藍/綠部署會使用負載平衡器來註冊部署群組的一組替換執行個體,並取消註冊原始執行個體。

    您可以指定套用至執行個體、Amazon EC2 Auto Scaling 群組名稱或兩者的標籤。

    如果您在部署群組中指定一組標籤, 會 CodeDeploy 部署到至少套用其中一個指定標籤的執行個體。如果您指定兩個或多個標籤群組, 只會 CodeDeploy 部署到符合每個標籤群組條件的執行個體。如需詳細資訊,請參閱Tagging Instances for Deployments

    在所有情況下,執行個體都必須設定為在部署中使用 (亦即必須加上標籤或屬於 Amazon EC2 Auto Scaling 群組),並安裝和執行 CodeDeploy 代理程式。

    我們為您提供 AWS CloudFormation 範本,您可以用來快速設定以 Amazon Linux 或 Windows Server 為基礎的 Amazon EC2執行個體。我們還為您提供獨立 CodeDeploy 代理程式,以便您可以在 Amazon Linux、Ubuntu Server、Red Hat Enterprise Linux (RHEL) 或 Windows Server 執行個體上安裝它。如需詳細資訊,請參閱建立部署群組 CodeDeploy

    您還可以指定下列選項:

    • Amazon SNS通知 。建立觸發程序,在部署和執行個體中發生指定事件時,傳送通知給 Amazon SNS主題的訂閱者,例如成功或失敗事件。如需詳細資訊,請參閱Monitoring Deployments with Amazon SNS Event Notifications

    • 警示類型部署管理。實作 Amazon CloudWatch 警示監控,以便在指標超過或低於 中設定的閾值時停止部署 CloudWatch。

    • 自動部署轉返。設定部署,以在部署失敗或符合警示閾值時,自動轉返先前已知良好的修訂。

  3. 指定部署組態以指出應用程式修訂應同時部署至多少個執行個體,以及說明部署的成功和失敗狀況。如需詳細資訊,請參閱View Deployment Configuration Details

  4. 將應用程式修訂版上傳至 Amazon S3 或 GitHub。除了您要部署的檔案,以及您要在部署期間執行的任何指令碼之外,您還必須包含應用程式規格檔案 (AppSpec 檔案)。此檔案包含部署說明,例如,在何處將檔案複製至每個執行個體,以及何時執行部署指令碼。如需詳細資訊,請參閱使用的應用程式修訂 CodeDeploy

  5. 將應用程式修訂部署至部署群組。部署群組中每個執行個體上的 CodeDeploy 代理程式會將您的應用程式修訂版從 Amazon S3 或 複製到 GitHub 執行個體。然後, CodeDeploy 代理程式會解除綁定修訂,並使用 AppSpec 檔案將檔案複製到指定位置,並執行任何部署指令碼。如需詳細資訊,請參閱使用 建立部署 CodeDeploy

  6. 檢查部署結果。如需詳細資訊,請參閱監控部署 CodeDeploy

  7. 重新部署修訂 如果您需要修復來源內容中的錯誤、以不同的順序執行部署指令碼,或處理失敗部署,會建議您這麼做。若要執行此操作,請將修訂後的來源內容、任何部署指令碼和 AppSpec 檔案重新綁定為新的修訂版本,然後將修訂版本上傳至 Amazon S3 儲存貯體或 GitHub 儲存庫。然後將新的部署執行到具有新修訂的相同部署群組。如需詳細資訊,請參閱使用 建立部署 CodeDeploy

設定執行個體

您必須先設定執行個體,才能第一次部署應用程式修訂。如果應用程式修訂需要三部生產伺服器和兩部備份伺服器,您要啟動或使用五個執行個體。

手動佈建執行個體:

  1. 在執行個體上安裝 CodeDeploy 代理程式。 CodeDeploy 代理程式可以安裝在 Amazon Linux、Ubuntu Server、 RHEL和 Windows Server 執行個體上。

  2. 如果您使用標籤來識別部署群組中的執行個體,請啟用標記。 CodeDeploy 依賴標籤來識別執行個體並將其分組到 CodeDeploy 部署群組中。雖然入門教學使用兩者,但是您只能使用索引鍵或值來定義部署群組的標籤。

  3. 在連接EC2執行個體設定檔的情況下啟動 Amazon IAM執行個體。IAM 執行個體設定檔必須在啟動時連接至 Amazon EC2執行個體, CodeDeploy 客服人員才能驗證執行個體的身分。

  4. 建立服務角色。提供服務存取權,以便 CodeDeploy 可以擴展您 AWS 帳戶中的標籤。

對於初始部署, AWS CloudFormation 範本會為您執行所有此操作。它會根據已安裝 CodeDeploy 代理程式的 Amazon Linux 或 Windows Server 來建立和設定新的單一 Amazon EC2執行個體。如需詳細資訊,請參閱使用的例證 CodeDeploy

注意

對於藍/綠部署,您可以選擇使用替換環境已有的執行個體,或允許在部署程序中為您 CodeDeploy 佈建新執行個體。

上傳您的應用程式修訂版

在應用程式的來源內容資料夾結構的根資料夾下放置 AppSpec 檔案。如需詳細資訊,請參閱Application Specification Files

將應用程式的來源內容資料夾結構綁定為封存檔案格式 (例如 zip、tar 或壓縮 tar)。將封存檔案 (修訂版 ) 上傳至 Amazon S3 儲存貯體或 GitHub 儲存庫。

注意

Windows Server 執行個體不支援 tar 和壓縮 tar 封存檔案格式 (.tar 和 .tar.gz)。

建立應用程式和部署群組

CodeDeploy 部署群組會根據執行個體的標籤、Amazon EC2 Auto Scaling 群組名稱或兩者來識別執行個體集合。多個應用程式修訂可以部署至相同的執行個體。一個應用程式修訂可以部署至多個執行個體。

例如,您可以將 "Prod" 標籤新增至三部生產伺服器,並將 "Backup" 標籤新增至兩部備份伺服器。這兩個標籤可用於在 CodeDeploy 應用程式中建立兩個不同的部署群組,讓您選擇應參與部署的伺服器集 (或兩者)。

您可以在部署群組中使用多個標籤群組,將部署限制為較小的一組執行個體。如需相關資訊,請參閱 Tagging Instances for Deployments

部署應用程式修訂版

現在,您已準備好從 Amazon S3 或 部署 GitHub 群組部署應用程式修訂版。您可以使用 CodeDeploy 主控台或 create-deployment 命令。您可以指定多個參數來控制部署 (包含修訂、部署群組和部署組態)。

更新您的應用程式

您可以更新應用程式,然後使用 CodeDeploy 主控台或呼叫 create-deployment 命令來推送修訂。

已停止和失敗的部署

您可以使用 CodeDeploy 主控台或 stop-deployment 命令來停止部署。當您嘗試停止部署時,會發生下列三者之一:

  • 部署停止,而且操作傳回成功狀態。在此情況下,不需要在已停止部署的部署群組上執行其他部署生命週期事件。一些檔案可能已複製至部署群組中的一或多個執行個體,而且可能已在其上執行一些指令碼。

  • 此部署不會立即停止,而且操作傳回擱置中狀態。在此情況下,一些部署生命週期事件可能仍然在部署群組上執行。一些檔案可能已複製至部署群組中的一或多個執行個體,而且可能已在其上執行一些指令碼。擱置中操作完成之後,後續呼叫停止部署會傳回成功狀態。

  • 部署無法停止,而且操作傳回錯誤。如需詳細資訊,請參閱 參考中的 AWS CodeDeploy API ErrorInformation常見錯誤

失敗的部署可能導致已在部署群組的一或多個執行個體上執行某些部署生命週期事件,就像已停止的部署一樣。若要了解部署失敗的原因,您可以使用 CodeDeploy 主控台、呼叫 get-deployment-instance命令,或從失敗的部署分析日誌檔案資料。如需詳細資訊,請參閱 應用程式修訂和日誌檔案清除檢視 CodeDeploy EC2/內部部署的記錄資料

重新部署和部署復原

CodeDeploy 會重新部署先前部署的修訂版本,藉此實作復原。

您可以設定部署群組以在符合特定條件時自動轉返部署 (包含部署失敗或符合警示監控閾值時)。您也可以覆寫針對個別部署中部署群組所指定的轉返設定。

您也可以手動重新部署先前部署的修訂,以選擇轉返失敗部署。

在所有情況下,新的或轉返的部署會獲指派其專屬部署 ID。您可以在 CodeDeploy 主控台中檢視的部署清單會顯示哪些是自動部署的結果。

如需詳細資訊,請參閱使用以下方式重新部署和復原部署 CodeDeploy