步驟 4:部署您的 WordPress應用程式 - AWS CodeDeploy

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

步驟 4:部署您的 WordPress應用程式

現在您部署了上傳到 Amazon S3 的範例 WordPress 應用程式修訂版。您可以使用 AWS CLI 或 CodeDeploy 主控台部署修訂版本,並監控部署進度。成功部署應用程式修訂版之後,您要檢查結果。

使用 部署您的應用程式修訂版 CodeDeploy

使用 AWS CLI 或 主控台部署您的應用程式修訂版。

部署應用程式修訂版 (CLI)

  1. 部署需要部署群組。不過,在建立部署群組之前,您需要服務角色 ARN。服務角色是授予服務許可,以代表您行事IAM的角色。在此情況下,服務角色會 CodeDeploy 授予許可,以存取您的 Amazon EC2執行個體,以展開 (讀取) 其 Amazon EC2執行個體標籤。

    您應該已經遵循建立服務角色 (CLI) 中的說明,來建立服務角色。若要取得服務角色ARN的 ,請參閱 取得服務角色 ARN (CLI)

  2. 現在您已擁有服務角色 ARN,請呼叫 create-deployment-group命令,使用名為 的 Amazon EC2標籤CodeDeployDemo和名為 的部署組態WordPress_DepGroup,建立名為 的部署群組WordPress_App,與名為 的應用程式建立關聯CodeDeployDefault.OneAtATime

    aws deploy create-deployment-group \ --application-name WordPress_App \ --deployment-group-name WordPress_DepGroup \ --deployment-config-name CodeDeployDefault.OneAtATime \ --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE \ --service-role-arn serviceRoleARN

    注意

    create-deployment-group命令支援建立觸發程序,導致將部署和執行個體中指定事件的 Amazon SNS通知傳送給主題訂閱者。此命令也支援自動復原部署和設定警示的選項,以在符合 Amazon CloudWatch 警示中的監控閾值時停止部署。本教學課程不包含這些動作的命令。

  3. 建立部署之前,部署群組中的執行個體必須安裝 CodeDeploy 代理程式。您可以使用 AWS Systems Manager 與下列命令,從命令列安裝代理程式:

    aws ssm create-association \ --name AWS-ConfigureAWSPackage \ --targets Key=tag:Name,Values=CodeDeployDemo \ --parameters action=Install,name=AWSCodeDeployAgent \ --schedule-expression "cron(0 2 ? * SUN *)"

    此命令會在 Systems Manager State Manager 中建立關聯,該關聯將安裝 CodeDeploy 代理程式,然後嘗試在每週日上午 2:00 進行更新。如需 CodeDeploy 客服人員的詳細資訊,請參閱使用 CodeDeploy 客服人員 。如需 Systems Manager 的詳細資訊,請參閱什麼是 AWS Systems Manager

  4. 現在,請在名為 amzn-s3-demo-bucket 的儲存貯體中使用名為 WordPressApp.zip 的應用程式修訂,呼叫 create-deployment 命令來建立與名為 WordPress_App 之應用程式、名為 CodeDeployDefault.OneAtATime 之部署組態和名為 WordPress_DepGroup 之部署群組建立關聯的部署:

    aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name WordPress_DepGroup \ --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=WordPressApp.zip

部署應用程式修訂 (主控台)

  1. 在使用 CodeDeploy 主控台部署應用程式修訂版之前,您需要服務角色 ARN。服務角色是授予服務許可,以代表您行事IAM的角色。在此情況下,服務角色會 CodeDeploy 授予許可,以存取您的 Amazon EC2執行個體,以展開 (讀取) 其 Amazon EC2執行個體標籤。

    您應該已經遵循建立服務角色 (主控台) 中的說明,來建立服務角色。若要取得服務角色ARN的 ,請參閱 取得服務角色 ARN (主控台)

  2. 現在您已擁有 ARN,請使用 CodeDeploy 主控台來部署應用程式修訂版:

    登入 AWS Management Console 並在 https://console.aws.amazon.com/codedeploy 開啟 CodeDeploy 主控台。

    注意

    使用您在 中設定的相同使用者登入入門 CodeDeploy

  3. 在導覽窗格中,展開部署 ,然後選擇應用程式

  4. 在應用程式清單中,選擇 WordPress_App

  5. Deployment groups (部署群組) 標籤中,選擇 Create deployment group (建立部署群組)

  6. Deployment group name (部署群組名稱) 中,輸入 WordPress_DepGroup

  7. Deployment type (部署類型) 下,選擇 In-place deployment (就地部署)

  8. 環境組態 中,選取 Amazon EC2執行個體

  9. 具有 的客服人員組態 AWS Systems Manager中,保留預設值。

  10. Key (金鑰) 中,輸入 Name

  11. Value (值) 中輸入 CodeDeployDemo

    注意

    輸入 後CodeDeployDemo1 應該會出現在相符執行個體下,以確認 CodeDeploy 找到相符的 Amazon EC2執行個體。

  12. 部署組態 中,選擇 CodeDeployDefault。OneAtATime

  13. 服務角色 ARN中,選擇服務角色 ARN,然後選擇建立部署群組

  14. 選擇 Create deployment (建立部署)

  15. Deployment group (部署群組) 中選擇 WordPress_DepGroup

  16. 儲存庫類型 旁,選擇我的應用程式儲存在 Amazon S3 中。在修訂位置 中,輸入您先前上傳至 Amazon S3 的範例 WordPress 應用程式修訂版本的位置。取得位置:

    1. 在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

    2. 在儲存貯體清單中,選擇 amzn-s3-demo-bucket (或您上傳應用程式修訂版的儲存貯體名稱)。

    3. 在物件清單中,選擇 WordPressApp.zip

    4. Overview (概觀) 標籤上,將 Link (連結) 欄位的值複製至剪貼簿。

      這看起來類似下述:

      https://s3.amazonaws.com/amzn-s3-demo-bucket/WordPressApp.zip

    5. 返回 CodeDeploy 主控台,並在修訂位置 中貼上連結欄位值。

  17. 如果說明無法偵測到檔案類型的訊息出現在 File type (檔案類型) 清單中,請選擇 .zip

  18. (選用) 在 Deployment description (部署說明) 方塊中,輸入註解。

  19. 展開部署群組會覆寫 ,然後從部署組態 中選擇 CodeDeployDefault。OneAtATime

  20. 選擇 Start deployment (啟動部署)。新建立部署的相關資訊會顯示在 Deployments (部署) 頁面上。

監控和疑難排解您的部署

使用 AWS CLI 或 主控台來監控和疑難排解您的部署。

若要監控和疑難排解您的部署 (CLI)

  1. 針對名為 WordPress_App 的應用程式和名為 WordPress_DepGroup 的部署群組呼叫 list-deployments 命令,來取得部署 ID:

    aws deploy list-deployments --application-name WordPress_App --deployment-group-name WordPress_DepGroup --query 'deployments' --output text
  2. 使用部署 ID,呼叫 get-deployment 命令:

    aws deploy get-deployment --deployment-id deploymentID --query 'deploymentInfo.status' --output text
  3. 此命令傳回部署的整體狀態。如果成功,值為 Succeeded

    如果整體狀態為 Failed,您可以呼叫 list-deployment-instances和 等命令get-deployment-instance進行故障診斷。如需其他故障診斷選項,請參閱分析日誌檔案以調查執行個體的部署失敗

監控和故障診斷部署 (主控台)

在 CodeDeploy 主控台的部署頁面上,您可以在狀態欄中監控部署的狀態

若要取得部署的詳細資訊,特別是在 Status (狀態) 欄位中,有任何數值不是 Succeeded (成功) 的情況下,則可執行以下動作:

  1. Deployments (部署) 資料表中,選擇部署的名稱。部署失敗後,會顯示失敗原因的訊息。

  2. Instance activity (執行個體活動) 中,會顯示更多有關部署的資訊。部署失敗後,您可能可以判斷部署失敗的 Amazon EC2執行個體和步驟。

  3. 您可以使用View Instance Details中所述的這類技術,藉此執行其他疑難排解。您也可以分析 Amazon EC2執行個體上的部署日誌檔案。如需詳細資訊,請參閱分析日誌檔案以調查執行個體的部署失敗

驗證您的部署

部署成功後,請確認您的 WordPress 安裝是否正常運作。使用 Amazon EC2執行個體的公有DNS地址,後面接著 /WordPress,在 Web 瀏覽器中檢視您的網站。(若要取得公有DNS值,請在 Amazon EC2主控台中選擇 Amazon EC2執行個體,然後在描述索引標籤上尋找公有 DNS的值。)

例如,如果您 Amazon EC2執行個體的公有DNS地址為 ec2-01-234-567-890.compute-1.amazonaws.com,您會使用下列 URL:

http://ec2-01-234-567-890.compute-1.amazonaws.com/WordPress

當您在瀏覽器中檢視網站時,您應該會看到類似下列內容的 WordPress 歡迎頁面:

WordPress 歡迎頁面

如果您的 Amazon EC2執行個體沒有將HTTP傳入規則新增至其安全群組,則 WordPress 歡迎頁面不會出現。如果您看到訊息指出遠端伺服器沒有回應,請確定 Amazon EC2執行個體的安全群組具有傳入規則。如需詳細資訊,請參閱 新增允許 HTTP 流量傳入您的 Amazon Linux 或 RHEL 亞馬 Amazon EC2 執行個體的輸入規則