

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

# 步驟 4：部署您的 WordPress 應用程式
<a name="tutorials-wordpress-deploy-application"></a>

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

**Topics**
+ [使用 CodeDeploy 部署您的應用程式修訂版](#tutorials-wordpress-deploy-application-create-deployment)
+ [監控您的部署並進行疑難排解](#tutorials-wordpress-deploy-application-monitor)
+ [驗證您的部署](#tutorials-wordpress-deploy-application-verify-deployment)

## 使用 CodeDeploy 部署您的應用程式修訂版
<a name="tutorials-wordpress-deploy-application-create-deployment"></a>

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

**Topics**
+ [部署應用程式修訂 (CLI)](#tutorials-wordpress-deploy-application-create-deployment-cli)
+ [部署應用程式修訂 (主控台)](#tutorials-wordpress-deploy-application-create-deployment-console)

### 部署應用程式修訂 (CLI)
<a name="tutorials-wordpress-deploy-application-create-deployment-cli"></a>

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

   您應該已經遵循[建立服務角色 (CLI)](getting-started-create-service-role.md#getting-started-create-service-role-cli) 中的說明，來建立服務角色。若要取得服務角色的 ARN，請參閱[取得服務角色 ARN (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli)。

1. 現在您已擁有服務角色 ARN，請呼叫 **create-deployment-group**命令，使用名為 的 Amazon EC2 標籤**CodeDeployDemo**和名為 的部署組態**WordPress\$1DepGroup**，建立名為 的部署群組**WordPress\$1App**，與名為 的應用程式相關聯**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](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) 命令支援建立觸發，導致將部署和執行個體中指定事件的相關 Amazon SNS 通知傳送給主題訂閱者。此命令也支援自動轉返部署和設定警示的選項，以在符合 Amazon CloudWatch 警示中的監控閾值時停止部署。本教學課程不包含這些動作的命令。

1. 建立部署之前，部署群組中的執行個體必須安裝 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 代理程式](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent.html)。如需 Systems Manager 的詳細資訊，請參閱[什麼是 AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) 。

1. 現在，請在名為 **amzn-s3-demo-bucket** 的儲存貯體中使用名為 **WordPressApp.zip** 的應用程式修訂，呼叫 **create-deployment** 命令來建立與名為 **WordPress\$1App** 之應用程式、名為 **CodeDeployDefault.OneAtATime** 之部署組態和名為 **WordPress\$1DepGroup** 之部署群組建立關聯的部署：

   ```
   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
   ```

### 部署應用程式修訂 (主控台)
<a name="tutorials-wordpress-deploy-application-create-deployment-console"></a>

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

   您應該已經遵循[建立服務角色 （主控台）](getting-started-create-service-role.md#getting-started-create-service-role-console) 中的說明，來建立服務角色。若要取得服務角色的 ARN，請參閱[取得服務角色 ARN （主控台）](getting-started-create-service-role.md#getting-started-get-service-role-console)。

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

   登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) 開啟 CodeDeploy 主控台。
**注意**  
使用您在 中設定的相同使用者登入[CodeDeploy 入門](getting-started-codedeploy.md)。

1. 在導覽窗格中，展開**部署**，然後選擇**應用程式**。

1. 在應用程式清單中，選擇 **WordPress\$1App**。

1. 在 **Deployment groups (部署群組)** 標籤中，選擇 **Create deployment group (建立部署群組)**。

1. 在 **Deployment group name (部署群組名稱)** 中，輸入 **WordPress\$1DepGroup**。

1. 在 **Deployment type (部署類型)** 下，選擇 **In-place deployment (就地部署)**。

1. 在**環境組態**中，選取 **Amazon EC2 執行個體**。

1. 在**具有 的客服人員組態 AWS Systems Manager**中，保留預設值。

1. 在 **Key (金鑰)** 中，輸入 **Name**。

1. 在 **Value (值)** 中輸入 **CodeDeployDemo**。
**注意**  
輸入 後**CodeDeployDemo**，**1** 應該會出現在**相符執行個體**下，以確認 CodeDeploy 找到一個相符的 Amazon EC2 執行個體。

1. 在**部署組態**中，選擇 **CodeDeployDefault.OneAtATime**。

1. 在 **Service role ARN (服務角色 ARN)** 中，選擇服務角色 ARN，然後選擇 **Create deployment group (建立部署群組)**。

1. 選擇 **Create deployment (建立部署)**。

1. 在 **Deployment group (部署群組)** 中選擇 **WordPress\$1DepGroup**。

1. 在**儲存庫類型**旁，選擇**我的應用程式存放在 Amazon S3 中**。在**修訂位置**中，輸入您先前上傳至 Amazon S3 的範例 WordPress 應用程式修訂的位置。取得位置：

   1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

   1. 在儲存貯體清單中，選擇 **amzn-s3-demo-bucket** （或您上傳應用程式修訂版的儲存貯體名稱）。

   1. 在物件清單中，選擇 **WordPressApp.zip**。

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

      這看起來類似下述：

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

   1. 返回 CodeDeploy 主控台，並在**修訂位置**貼上**連結**欄位值。

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

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

1. 展開**部署群組覆寫**，然後從**部署組態**中選擇 **CodeDeployDefault.OneAtATime**。

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

## 監控您的部署並進行疑難排解
<a name="tutorials-wordpress-deploy-application-monitor"></a>

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

**Topics**
+ [監控部署並進行疑難排解 (CLI)](#tutorials-wordpress-deploy-application-monitor-cli)
+ [監控和故障診斷部署 (主控台)](#tutorials-wordpress-deploy-application-monitor-console)

### 監控部署並進行疑難排解 (CLI)
<a name="tutorials-wordpress-deploy-application-monitor-cli"></a>

1. 針對名為 **WordPress\$1App** 的應用程式和名為 **WordPress\$1DepGroup** 的部署群組呼叫 **list-deployments** 命令，來取得部署 ID：

   ```
   aws deploy list-deployments --application-name WordPress_App --deployment-group-name WordPress_DepGroup --query 'deployments' --output text
   ```

1. 使用部署 ID，呼叫 **get-deployment** 命令：

   ```
   aws deploy get-deployment --deployment-id deploymentID --query 'deploymentInfo.status' --output text
   ```

1. 此命令傳回部署的整體狀態。如果成功，值為 `Succeeded`。

   如果整體狀態為 `Failed`，您可以呼叫 [list-deployment-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-instances.html) 和 [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html) 等命令進行故障診斷。如需其他故障診斷選項，請參閱[分析日誌檔案以調查執行個體的部署失敗](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures)。

### 監控和故障診斷部署 (主控台)
<a name="tutorials-wordpress-deploy-application-monitor-console"></a>

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

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

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

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

1. 您可以使用[使用 CodeDeploy 檢視執行個體詳細資訊](instances-view-details.md)中所述的這類技術，藉此執行其他疑難排解。您也可以分析 Amazon EC2 執行個體上的部署日誌檔案。如需詳細資訊，請參閱[分析日誌檔案以調查執行個體的部署失敗](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures)。

## 驗證您的部署
<a name="tutorials-wordpress-deploy-application-verify-deployment"></a>

在您的部署成功之後，請驗證 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 歡迎頁面\]](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/images/WordPress-Welcome-Page-013118.png)


 如果您的 Amazon EC2 執行個體沒有將 HTTP 傳入規則新增至其安全群組，則不會顯示 WordPress 歡迎頁面。如果您看到訊息指出遠端伺服器未回應，請確定 Amazon EC2 執行個體的安全群組具有傳入規則。如需詳細資訊，請參閱[新增允許 HTTP 流量至 Amazon Linux 或 RHEL Amazon EC2 執行個體的傳入規則新增允許 HTTP 流量至 Windows Server Amazon EC2 執行個體的傳入規則](tutorials-wordpress-launch-instance.md#tutorials-wordpress-launch-instance-add-inbound-rule)。