步驟 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 標籤和名為的部署組態WordPress_DepGroup,呼叫命名為以下命名的部署群組WordPress_App,建立CodeDeployDemo與名為的應用程式相關聯的部署群組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 *)"

    此命令會在系統管理員狀態管理員中建立一個關聯,以安裝 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/code deploy 中開啟 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

    注意

    輸入後CodeDeployDemo相符執行個體下應該會出現 1,以確認 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用網頁瀏覽器檢視您的網站。(要獲取公共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 執行個體的輸入規則