

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

# 教學課程：使用 CodeDeploy 將應用程式部署至 Auto Scaling 群組
<a name="tutorials-auto-scaling-group"></a>

在本教學課程中，您將使用 CodeDeploy 將應用程式修訂版部署至 Auto Scaling 群組。Amazon EC2 Auto Scaling 會使用預先定義的條件啟動 Amazon EC2 執行個體，然後在不再需要這些執行個體時將其終止。Amazon EC2 Auto Scaling 可以協助 CodeDeploy 擴展，方法是確保它始終有正確數量的 Amazon EC2 執行個體，可用於處理部署的負載。如需 Amazon EC2 Auto Scaling 與 CodeDeploy 整合的相關資訊，請參閱 [將 CodeDeploy 與 Amazon EC2 Auto Scaling 整合](integrations-aws-auto-scaling.md)。

**Topics**
+ [先決條件](tutorials-auto-scaling-group-prerequisites.md)
+ [步驟 1：建立和設定 Auto Scaling 群組](tutorials-auto-scaling-group-create-auto-scaling-group.md)
+ [步驟 2：將應用程式部署至 Auto Scaling 群組](tutorials-auto-scaling-group-create-deployment.md)
+ [步驟 3：檢查您的結果](tutorials-auto-scaling-group-verify.md)
+ [步驟 4：增加 Auto Scaling 群組中的 Amazon EC2 執行個體數量](tutorials-auto-scaling-group-scale-up.md)
+ [步驟 5：再次檢查您的結果](tutorials-auto-scaling-group-reverify.md)
+ [步驟 6：清除](tutorials-auto-scaling-group-clean-up.md)

# 先決條件
<a name="tutorials-auto-scaling-group-prerequisites"></a>

在本教學課程中遵循的步驟：
+ 完成 中的所有步驟[CodeDeploy 入門](getting-started-codedeploy.md)，包括設定 和設定 AWS CLI ，以及建立 IAM 執行個體描述檔 (**CodeDeployDemo-EC2-Instance-Profile**) 和服務角色 ()**CodeDeployDemo**。*服務角色*是一種特殊的 IAM 角色類型，可提供服務代表您採取行動的許可。
+ 如果您使用啟動範本建立 Auto Scaling 群組，則必須新增下列許可：
  +  `ec2:RunInstances` 
  +  `ec2:CreateTags` 
  +  `iam:PassRole` 

  如需詳細資訊，請參閱《Amazon EC2 Auto Scaling 使用者指南》中的 [步驟 2：建立服務角色](getting-started-create-service-role.md)、建立 Auto Scaling 群組的啟動範本，以及[啟動範本支援](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-launch-template-permissions.html)。 [ Auto Scaling ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) *Amazon EC2 Auto Scaling * 
+  建立並使用與 Ubuntu Server 執行個體和 CodeDeploy 相容的修訂版。對於您的修訂，您可以執行下列操作之一：
  + 在 [教學課程：使用 CodeDeploy 將應用程式部署至內部部署執行個體 (Windows Server、Ubuntu Server 或 Red Hat Enterprise Linux)](tutorials-on-premises-instance.md) 教學課程中建立和使用 [步驟 2：建立範例應用程式修訂](tutorials-on-premises-instance-2-create-sample-revision.md) 中的範例修訂。
  + 若要自行建立修訂版，請參閱 [使用 CodeDeploy 的應用程式修訂](application-revisions.md)。
+ **CodeDeployDemo-AS-SG** 使用下列**傳入規則**建立名為 的安全群組：
  + 類型：HTTP
  + 來源：隨處

  這是檢視您的應用程式並驗證部署成功的必要項目。如需如何建立安全群組的資訊，請參閱《*Amazon EC2 使用者指南*》中的[建立安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#creating-security-group)。

 

# 步驟 1：建立和設定 Auto Scaling 群組
<a name="tutorials-auto-scaling-group-create-auto-scaling-group"></a>

在此步驟中，您將建立包含單一 Amazon Linux、RHEL 或 Windows Server Amazon EC2 執行個體的 Auto Scaling 群組。在後續步驟中，您將指示 Amazon EC2 Auto Scaling 再新增一個 Amazon EC2 執行個體，而 CodeDeploy 會將您的修訂部署到該執行個體。

**Topics**
+ [建立和設定 Auto Scaling 群組 (CLI)](#tutorials-auto-scaling-group-create-auto-scaling-group-cli)
+ [建立和設定 Auto Scaling 群組 （主控台）](#tutorials-auto-scaling-group-create-auto-scaling-group-console)

## 建立和設定 Auto Scaling 群組 (CLI)
<a name="tutorials-auto-scaling-group-create-auto-scaling-group-cli"></a>

1. 呼叫 **create-launch-template**命令來建立 Amazon EC2 啟動範本。

   呼叫此命令之前，您需要適用於此教學課程之 AMI 的 ID，其由預留位置 *image-id* 代表。您也需要 Amazon EC2 執行個體金鑰對的名稱，才能存取以預留位置*金鑰名稱*表示的 Amazon EC2 執行個體。

   若要取得適用於此教學課程的 AMI 的 ID：

   1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

   1. 在導覽窗格中，在 **Instances (執行個體)** 下，選擇 **Instances (執行個體)**，然後選擇 **Launch Instance (啟動執行個體)**。

   1. 在**選擇 Amazon Machine Image** 頁面的 **Quick Start** 索引標籤上，記下 **Amazon Linux 2 AMI**、**Red Hat Enterprise Linux 7.1**、**Ubuntu Server 14.04 LTS** 或 **Microsoft Windows Server 2012 R2 **旁的 AMI ID。
**注意**  
如果您有與 CodeDeploy 相容的自訂 AMI 版本，請在此處選擇它，而不是瀏覽 **Quick Start** 索引標籤。如需搭配 CodeDeploy 和 Amazon EC2 Auto Scaling 使用自訂 AMI 的詳細資訊，請參閱 [搭配 CodeDeploy 和 Amazon EC2 Auto Scaling 使用自訂 AMI](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-custom-ami)。

   對於 Amazon EC2 執行個體金鑰對，請使用 Amazon EC2 執行個體金鑰對的名稱。

   呼叫 **create-launch-template** 命令。

   在本機 Linux、macOS 或 Unix 機器上：

   ```
   aws ec2 create-launch-template \
     --launch-template-name CodeDeployDemo-AS-Launch-Template \
     --launch-template-data file://config.json
   ```

   `config.json` 檔案的內容：

   ```
   { 
     "InstanceType":"t1.micro",
     "ImageId":"image-id",
     "IamInstanceProfile":{
       "Name":"CodeDeployDemo-EC2-Instance-Profile"
     },
     "KeyName":"key-name"
   }
   ```

   在本機 Windows 電腦上：

   ```
   aws ec2 create-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template --launch-template-data file://config.json
   ```

   `config.json` 檔案的內容：

   ```
   { 
     "InstanceType":"t1.micro",
     "ImageId":"image-id",
     "IamInstanceProfile":{
       "Name":"CodeDeployDemo-EC2-Instance-Profile"
     },
     "KeyName":"key-name"
   }
   ```

   這些命令以及 `config.json` 檔案，為您的 Auto Scaling 群組建立名為 CodeDeployDemo-AS-Launch-Template 的 Amazon EC2 啟動範本，這些範本將根據 t1.micro Amazon EC2 執行個體類型在後續步驟中建立。根據您對 `ImageId`、 `IamInstanceProfile`和 的輸入`KeyName`，啟動範本也會指定 AMI ID、與啟動時要傳遞給執行個體之 IAM 角色相關聯的執行個體描述檔名稱，以及連線至執行個體時要使用的 Amazon EC2 金鑰對。

1.  呼叫 **create-auto-scaling-group**命令來建立 Auto Scaling 群組。在 的區域[和端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)中列出的其中一個區域中，您將需要其中一個可用區域的名稱*AWS 一般參考*，以預留位置*可用區域*表示。
**注意**  
若要檢視區域中的可用區域的清單，請呼叫：  

   ```
   aws ec2 describe-availability-zones --region region-name
   ```
例如，若要檢視美國西部 （奧勒岡） 區域的可用區域清單，請呼叫：  

   ```
   aws ec2 describe-availability-zones --region us-west-2
   ```
有關區域名稱識別碼的清單，請參閱 [依區域顯示的資源套件儲存貯體名稱](resource-kit.md#resource-kit-bucket-names)。

   在本機 Linux、macOS 或 Unix 機器上：

   ```
   aws autoscaling create-auto-scaling-group \
     --auto-scaling-group-name CodeDeployDemo-AS-Group \
     --launch-template CodeDeployDemo-AS-Launch-Template,Version='$Latest' \
     --min-size 1 \
     --max-size 1 \
     --desired-capacity 1 \
     --availability-zones availability-zone \
     --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true
   ```

   在本機 Windows 電腦上：

   ```
   aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --launch-template LaunchTemplateName=CodeDeployDemo-AS-Launch-Template,Version="$Latest" --min-size 1 --max-size 1 --desired-capacity 1 --availability-zones availability-zone --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true
   ```

   這些命令**CodeDeployDemo-AS-Group**會根據名為 的 Amazon EC2 啟動範本，建立名為 的 Auto Scaling 群組**CodeDeployDemo-AS-Launch-Template**。此 Auto Scaling 群組只有一個 Amazon EC2 執行個體，而且是在指定的可用區域中建立的。此 Auto Scaling 群組中的每個執行個體都會有標籤 `Name=CodeDeployDemo`。稍後安裝 CodeDeploy 代理程式時將使用 標籤。

1. 針對 **CodeDeployDemo-AS-Group** 呼叫 **describe-auto-scaling-groups** 命令：

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text
   ```

   在傳回值顯示 `Healthy`​ 和 `InService` 之前不要繼續。

1.  Auto Scaling 群組中的執行個體必須安裝 CodeDeploy 代理程式，才能用於 CodeDeploy 部署。使用建立 Auto Scaling 群組時新增的 AWS Systems Manager 標籤，從 呼叫 **create-association**命令來安裝 CodeDeploy 代理程式。

   ```
   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 中建立關聯，在 Auto Scaling 群組中的所有執行個體上安裝 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)。

## 建立和設定 Auto Scaling 群組 （主控台）
<a name="tutorials-auto-scaling-group-create-auto-scaling-group-console"></a>

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在全域導覽列中，確定*AWS 一般參考*已選取 區域[和 端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)中列出的其中一個區域。Amazon EC2 Auto Scaling 資源會繫結至您指定的區域，而 CodeDeploy 僅支援特定區域。

1. 在導覽列的**執行個體**下，選擇**啟動範本**。

1. 選擇 **Create launch template** (建立啟動範本)。

1. 在**啟動範本名稱和描述**對話方塊中，針對**啟動範本名稱**，輸入 **CodeDeployDemo-AS-Launch-Template**。保留其他欄位的預設值。

1. 在 **Amazon Machine Image (AMI)** 對話方塊中，按一下 **AMI** 下的下拉式清單，選擇可搭配本教學課程使用的 AMI：

   1. 在 **AMI** 下拉式清單的 **Quick Start** 索引標籤上，選擇下列其中一項：**Amazon Linux 2 AMI**、**Red Hat Enterprise Linux 7.1**、**Ubuntu Server 14.04 LTS** 或 **Microsoft Windows Server 2012 R2**。
**注意**  
如果您有與 CodeDeploy 相容的自訂 AMI 版本，請在此處選擇它，而不是瀏覽 **Quick Start** 索引標籤。如需搭配 CodeDeploy 和 Amazon EC2 Auto Scaling 使用自訂 AMI 的詳細資訊，請參閱 [搭配 CodeDeploy 和 Amazon EC2 Auto Scaling 使用自訂 AMI](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-custom-ami)。

1. 在**執行個體類型**中，選取下拉式清單，然後選擇 **t1.micro。**您可以使用搜尋列更快找到它。

1. 在**金鑰對 （登入）** 對話方塊中，選取**選擇現有的金鑰對**。在**選取金鑰對**下拉式清單中，選擇您在先前步驟中建立或使用的 Amazon EC2 執行個體金鑰對。

1. 在**網路設定**對話方塊中，選擇**虛擬公有雲端 (VPC)**。

   在**安全群組**下拉式清單中，選擇您在[教學課程的先決條件區段](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorials-auto-scaling-group-prerequisites.html)中建立的安全群組 (**CodeDeployDemo-AS-SG**)。

1. 展開**進階詳細資訊**對話方塊。在 **IAM 執行個體描述**檔下拉式清單中，選取您先前在 IAM **執行個體描述檔下建立的 IAM** 角色 (**CodeDeployDemo-EC2-Instance-Profile**)。

   保留其餘預設值。

1. 選擇 **Create launch template** (建立啟動範本)。

1. 在**後續步驟**對話方塊中，選擇**建立 Auto Scaling 群組**。

1. 在**選擇啟動範本或組態**頁面上，針對 **Auto Scaling 群組名稱**，輸入 **CodeDeployDemo-AS-Group**。

1. 在**啟動範本**對話方塊中，您的啟動範本 (**CodeDeployDemo-AS-Launch-Template**) 應該填入，如果沒有，請從下拉式選單中選取它。保留預設值，然後選擇**下一步**。

1. 在**選擇執行個體啟動選項頁面****的網路**區段中，針對 **VPC** 選擇預設 VPC。然後，針對**可用區域和子網路**，選擇預設子網路。如果您無法選擇預設值，則必須建立 VPC。如需詳細資訊，請參閱 [Amazon VPC 入門](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html)。

1. 在 **Instance type requirements** (執行個體類型需求) 區段中，請使用預設設定來簡化此步驟。(請勿覆寫啟動範本。) 在本教程中，您將使用啟動範本中指定的執行個體類型，並且僅啟動隨需執行個體。

1. 選擇 **Next** (下一頁) 前往 **Configure advanced options** (設定進階選項) 頁面。

1. 保留預設值，然後選擇**下一步**。

1. 在**設定群組大小和擴展政策**頁面上，將預設**群組大小**值保留為 1。選擇**下一步**。

1. 略過設定通知的步驟，然後選擇**下一步**。

1. 在**新增標籤**頁面上，新增稍後安裝 CodeDeploy 代理程式時要使用的標籤。選擇 **Add tag (新增標籤)**。

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

   1. 在 **Value (值)** 中輸入 **CodeDeployDemo**。

   選擇**下一步**。

1. 在檢閱頁面上**檢閱** Auto Scaling 群組資訊，然後選擇**建立 Auto Scaling 群組**。

1. 在導覽列中，選取 **Auto Scaling 群組**，選擇 **CodeDeployDemo-AS-Group**，然後選擇**執行個體管理**索引標籤。在**生命週期**欄中顯示 **InService** 的值，且**運作狀態**欄中顯示 **Healthy** 的值之前，請勿繼續。

1. 依照安裝 CodeDeploy 代理程式和使用`Name=CodeDeployDemo`執行個體標籤中的步驟[安裝 CodeDeploy 代理程式](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html)。

# 步驟 2：將應用程式部署至 Auto Scaling 群組
<a name="tutorials-auto-scaling-group-create-deployment"></a>

在此步驟中，您將部署修訂版至 Auto Scaling 群組中的單一 Amazon EC2 執行個體。

**Topics**
+ [建立部署 (CLI)](#tutorials-auto-scaling-group-create-deployment-cli)
+ [建立部署 (主控台)](#tutorials-auto-scaling-group-create-deployment-console)

## 建立部署 (CLI)
<a name="tutorials-auto-scaling-group-create-deployment-cli"></a>

1. 呼叫 **create-application** 命令以建立名為 **SimpleDemoApp** 的應用程式：

   ```
   aws deploy create-application --application-name SimpleDemoApp
   ```

1. 您應該已經遵循以下[步驟 2：建立 CodeDeploy 的服務角色](getting-started-create-service-role.md)的說明建立服務角色。服務角色將授予 CodeDeploy 存取 Amazon EC2 執行個體的許可，以展開 （讀取） 其標籤。您需要服務角色 ARN。若要取得服務角色 ARN，請遵循 [取得服務角色 ARN (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli) 中的指示。

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

   在本機 Linux、macOS 或 Unix 機器上：

   ```
   aws deploy create-deployment-group \
     --application-name SimpleDemoApp \
     --auto-scaling-groups CodeDeployDemo-AS-Group \
     --deployment-group-name SimpleDemoDG \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --service-role-arn service-role-arn
   ```

   在本機 Windows 電腦上：

   ```
   aws deploy create-deployment-group --application-name SimpleDemoApp --auto-scaling-groups CodeDeployDemo-AS-Group --deployment-group-name SimpleDemoDG --deployment-config-name CodeDeployDefault.OneAtATime --service-role-arn service-role-arn
   ```

1. ​使用指定位置的修訂版，呼叫 **create-deployment** 命令以建立與名為 **SimpleDemoApp** 的應用程式關聯的部署、名為 **CodeDeployDefault.OneAtATime** 的部署組態、名為 **SimpleDemoDG** 的部署群組。

   **對於 Amazon Linux 和 RHEL Amazon EC2 執行個體，從本機 Linux、macOS 或 Unix 機器呼叫**

    

   ```
   aws deploy create-deployment \
     --application-name SimpleDemoApp \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name SimpleDemoDG \
     --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip
   ```

   *bucket-name* 是 Amazon S3 儲存貯體的名稱，其中包含您區域的 CodeDeploy 資源套件檔案。例如，對於美國東部 （俄亥俄） 區域，將 *bucket-name* 取代為 `aws-codedeploy-us-east-2`。如需儲存貯體名稱的清單，請參閱 [依區域顯示的資源套件儲存貯體名稱](resource-kit.md#resource-kit-bucket-names)。

   **對於 Amazon Linux 和 RHEL Amazon EC2 執行個體，從本機 Windows 機器呼叫**

    

   ```
   aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip
   ```

   *bucket-name* 是 Amazon S3 儲存貯體的名稱，其中包含您所在區域的 CodeDeploy 資源套件檔案。例如，對於美國東部 （俄亥俄） 區域，將 *bucket-name* 取代為 `aws-codedeploy-us-east-2`。如需儲存貯體名稱的清單，請參閱 [依區域顯示的資源套件儲存貯體名稱](resource-kit.md#resource-kit-bucket-names)。

   **對於 Windows Server Amazon EC2 執行個體，從本機 Linux、macOS 或 Unix 機器呼叫**

    

   ```
   aws deploy create-deployment \
     --application-name SimpleDemoApp \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name SimpleDemoDG \
     --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip
   ```

   *bucket-name* 是 Amazon S3 儲存貯體的名稱，其中包含您所在區域的 CodeDeploy 資源套件檔案。例如，對於美國東部 （俄亥俄） 區域，將 *bucket-name* 取代為 `aws-codedeploy-us-east-2`。如需儲存貯體名稱的清單，請參閱 [依區域顯示的資源套件儲存貯體名稱](resource-kit.md#resource-kit-bucket-names)。

   **對於 Windows Server Amazon EC2 執行個體，從本機 Windows 機器呼叫**

   ```
   aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip
   ```

   *bucket-name* 是 Amazon S3 儲存貯體的名稱，其中包含您所在區域的 CodeDeploy 資源套件檔案。例如，對於美國東部 （俄亥俄） 區域，將 *bucket-name* 取代為 `aws-codedeploy-us-east-2`。如需儲存貯體名稱的清單，請參閱 [依區域顯示的資源套件儲存貯體名稱](resource-kit.md#resource-kit-bucket-names)。
**注意**  
目前，CodeDeploy 不提供範例修訂以部署至 Ubuntu Server Amazon EC2 執行個體。若要自行建立修訂版，請參閱[使用 CodeDeploy 的應用程式修訂](application-revisions.md)

1. 呼叫 **get-deployment** 命令，確保部署成功。

   呼叫此命令之前，您需要部署的 ID，其應該已由呼叫傳回 **create-deployment** 命令。 如果您需要再次取得部署 ID，請針對名為 **SimpleDemoApp** 的應用程式與名為 **SimpleDemoDG** 的部署群組 呼叫 **list-deployments** 命令。

   ```
   aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text
   ```

   現在，利用部署 ID 呼叫 **get-deployment** 命令。

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

   在傳回的值為 `Succeeded` 之前不要繼續。

## 建立部署 (主控台)
<a name="tutorials-auto-scaling-group-create-deployment-console"></a>

1. 您應該已經遵循以下[步驟 2：建立 CodeDeploy 的服務角色](getting-started-create-service-role.md)的說明建立服務角色。服務角色將授予 CodeDeploy 存取執行個體以展開 （讀取） 其標籤的許可。在您使用 CodeDeploy 主控台部署應用程式修訂版之前，您將需要服務角色 ARN。若要取得服務角色 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. 選擇**建立應用程式**。

1. 選擇 **Custom application (自訂應用程式)**。

1. 在 **Application name (應用程式名稱)** 中，輸入 **SimpleDemoApp**。

1. 在 **Compute Platform (運算平台)** 中，選擇 **EC2/On-premises (EC2/現場部署)**。

1. 選擇**建立應用程式**。

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

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

1. 在 **Service Role (服務角色)** 中，選擇您服務角色的名稱。

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

1. 在**環境組態**中，選取 **Auto Scaling 群組**，然後選擇 **CodeDeployDemo-AS-Group**。

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

1. 清除 **Enable load balancing (啟用負載平衡)**。

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

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

1. 在**修訂類型**中，選擇**我的應用程式存放在 Amazon S3 中**。

1. 在 **Revision location (修訂版位置)**，輸入作業系統和區域的範例應用程式的位置。

   **對於 Amazon Linux 和 RHEL Amazon EC2 執行個體**  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/tutorials-auto-scaling-group-create-deployment.html)

   **對於 Windows Server Amazon EC2 執行個體**  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/tutorials-auto-scaling-group-create-deployment.html)

    **對於 Ubuntu Server Amazon EC2 執行個體**

   輸入儲存在 Amazon S3 中的自訂應用程式修訂版位置。

1. 將 **Deployment description (部署描述)** 空白。

1. 展開 **Advanced (進階)**。

1. 選擇 **Create deployment (建立部署)**。
**注意**  
如果狀態出現 **Failed (失敗)**，而非 **Succeeded (成功)**，則可嘗試[監控您的部署並進行疑難排解](tutorials-wordpress-deploy-application.md#tutorials-wordpress-deploy-application-monitor)中的某些技術 (使用 **SimpleDemoApp** 應用程式名稱，以及 **SimpleDemoDG** 部署群組名稱)。

# 步驟 3：檢查您的結果
<a name="tutorials-auto-scaling-group-verify"></a>

在此步驟中，您將檢查 CodeDeploy 是否已在 Auto Scaling 群組中的單一 Amazon EC2 執行個體上安裝**SimpleDemoApp**修訂版。

**Topics**
+ [檢查結果 (CLI)](#tutorials-auto-scaling-group-verify-cli)
+ [檢查結果 (主控台)](#tutorials-auto-scaling-group-verify-console)

## 檢查結果 (CLI)
<a name="tutorials-auto-scaling-group-verify-cli"></a>

首先，您將需要 Amazon EC2 執行個體的公有 DNS。

使用 來呼叫 **describe-instances**命令 AWS CLI ，以取得 Auto Scaling 群組中 Amazon EC2 執行個體的公有 DNS。

呼叫此命令之前，您將需要 Amazon EC2 執行個體的 ID。若要取得 ID，可如您之前的做法針對 **CodeDeployDemo-AS-Group** 呼叫 **describe-auto-scaling-groups** 命令：

```
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text
```

現在呼叫 **describe-instances** 命令。

```
aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text
```

傳回的值是 Amazon EC2 執行個體的公有 DNS。

使用 Web 瀏覽器，使用如下所示的 URL，顯示部署至該 Amazon EC2 執行個體的 SimpleDemoApp 修訂版：

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

如果您看到恭喜頁面，表示您已成功使用 CodeDeploy 將修訂部署到 Auto Scaling 群組中的單一 Amazon EC2 執行個體！

接著，您將新增 Amazon EC2 執行個體至 Auto Scaling 群組。Amazon EC2 Auto Scaling 新增 Amazon EC2 執行個體後，CodeDeploy 會將您的修訂部署到新的執行個體。

## 檢查結果 (主控台)
<a name="tutorials-auto-scaling-group-verify-console"></a>

首先，您將需要 Amazon EC2 執行個體的公有 DNS。

前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

在 Amazon EC2 導覽窗格的 **Auto Scaling** 下，選擇 **Auto Scaling 群組**，然後選擇**CodeDeployDemo-AS-Group**項目。

在**執行個體**索引標籤上，選擇清單中的 Amazon EC2 執行個體 ID。

 在 **Instances (執行個體)** 頁面上，於**Description (描述)** 標籤上，記下 **Public DNS (公開 DNS)** 值。​ 其看起來如下所示：**ec2-01-234-567-890.compute-1.amazonaws.com**

使用 Web 瀏覽器，使用如下所示的 URL，顯示部署至該 Amazon EC2 執行個體的 SimpleDemoApp 修訂版：

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

如果您看到恭喜頁面，表示您已成功使用 CodeDeploy 將修訂部署到 Auto Scaling 群組中的單一 Amazon EC2 執行個體！

接著，您將 Amazon EC2 執行個體新增至 Auto Scaling 群組。Amazon EC2 Auto Scaling 新增 Amazon EC2 執行個體後，CodeDeploy 會將您的修訂部署到新的 Amazon EC2 執行個體。

# 步驟 4：增加 Auto Scaling 群組中的 Amazon EC2 執行個體數量
<a name="tutorials-auto-scaling-group-scale-up"></a>

在此步驟中，您會指示 Auto Scaling 群組建立額外的 Amazon EC2 執行個體。Amazon EC2 Auto Scaling 建立執行個體後，CodeDeploy 會將您的修訂部署到該執行個體。

**Topics**
+ [擴展 Auto Scaling 群組 (CLI) 中的 Amazon EC2 執行個體數量](#tutorials-auto-scaling-group-scale-up-cli)
+ [擴展部署群組中的 Amazon EC2 執行個體數量 （主控台）](#tutorials-auto-scaling-group-scale-up-console)

## 擴展 Auto Scaling 群組 (CLI) 中的 Amazon EC2 執行個體數量
<a name="tutorials-auto-scaling-group-scale-up-cli"></a>

1. 呼叫 **update-auto-scaling-group**命令，將名為 的 Auto Scaling 群組中的 Amazon EC2 執行個體**CodeDeployDemo-AS-Group**從 1 增加到 2。

   在本機 Linux、macOS 或 Unix 機器上：

   ```
   aws autoscaling update-auto-scaling-group \
     --auto-scaling-group-name CodeDeployDemo-AS-Group \
     --min-size 2 \
     --max-size 2 \
     --desired-capacity 2
   ```

   在本機 Windows 電腦上：

   ```
   aws autoscaling update-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --min-size 2 --max-size 2 --desired-capacity 2
   ```

1. 確定 Auto Scaling 群組現在有兩個 Amazon EC2 執行個體。針對 **CodeDeployDemo-AS-Group** 呼叫 **describe-auto-scaling-groups** 命令：

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text
   ```

   在兩個傳回值顯示 `Healthy`​ 和 `InService` 之前不要繼續。

## 擴展部署群組中的 Amazon EC2 執行個體數量 （主控台）
<a name="tutorials-auto-scaling-group-scale-up-console"></a>

1. 在 Amazon EC2 導覽列的 **Auto Scaling** 下，選擇 **Auto Scaling 群組**，然後選擇 **CodeDeployDemo-AS-Group**。

1. 選擇**動作**，然後選擇**編輯**。

1. 在 **Details (詳細資訊)** 標籤，在 **Desired (所需)**、**Min (最小)** 和 **Max (最大)** 方塊中，輸入 **2**，然後選擇 **Save (儲存)**。

1. 選擇**執行個體**標籤。新的 Amazon EC2 執行個體應該會出現在清單中。(如果執行個體沒有顯示，您也許需要選擇 **Refresh (重新整理)** 按鈕數次)。在**生命週期**欄中顯示 **InService** 的值，且**運作狀態**欄中顯示 **Healthy** 的值之前，請勿繼續。

# 步驟 5：再次檢查您的結果
<a name="tutorials-auto-scaling-group-reverify"></a>

在此步驟中，您將檢查 CodeDeploy 是否在 Auto Scaling 群組中的新執行個體上安裝 SimpleDemoApp 修訂版。

**Topics**
+ [檢查自動部署結果 (CLI)](#tutorials-auto-scaling-group-reverify-cli)
+ [檢查自動部署結果 (主控台)](#tutorials-auto-scaling-group-reverify-console)

## 檢查自動部署結果 (CLI)
<a name="tutorials-auto-scaling-group-reverify-cli"></a>

1. 在呼叫 **get-deployment** 命令之前，您將需要自動部署的 ID。取得 ID 後，針對名為 **SimpleDemoApp** 的應用程式及名為 **SimpleDemoDG** 的部署群組呼叫 **list-deployments** 命令。

   ```
   aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text
   ```

   應該會有兩個部署 ID。使用您還沒有用於呼叫 **get-deployment** 的命令：

   ```
   aws deploy get-deployment --deployment-id deployment-id --query "deploymentInfo.[status, creator]" --output text
   ```

   除了部署狀態之外，您應該會在命令輸出`autoScaling`中看到 (`autoScaling` 表示 Amazon EC2 Auto Scaling 已建立部署。) 

   直到部署狀態顯示 `Succeeded` 之前，請勿繼續。

1. 呼叫 **describe-instances**命令之前，您將需要新 Amazon EC2 執行個體的 ID。若要取得此 ID，請再次針對 **CodeDeployDemo-AS-Group** 呼叫 **describe-auto-scaling-groups** 命令。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text
   ```

   現在呼叫 **describe-instances** 命令：

   ```
   aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text
   ```

   在**describe-instances**命令的輸出中，記下新 Amazon EC2 執行個體的公有 DNS。

1. 使用 Web 瀏覽器，使用如下所示的 URL，顯示部署至該 Amazon EC2 執行個體的`SimpleDemoApp`修訂：

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

   如果出現恭喜頁面，表示您已使用 CodeDeploy 將修訂部署到 Auto Scaling 群組中向上擴展的 Amazon EC2 執行個體！

## 檢查自動部署結果 (主控台)
<a name="tutorials-auto-scaling-group-reverify-console"></a>

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

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

   

1. 選擇 Amazon EC2 Auto Scaling 建立之部署的部署 ID。

   .

1.  此 **Deployment (部署)** 頁面會顯示有關部署的資訊。一般而言，您會自行建立部署，但 Amazon EC2 Auto Scaling 會代表您建立部署，將您的修訂部署到新的 Amazon EC2 執行個體。

1. 在頁面頂端顯示 **Succeeded (成功)** 後，在執行個體上驗證結果。首先，您需要取得執行個體的公有 DNS：

1. 在 Amazon EC2 導覽窗格的 **Auto Scaling** 下，選擇 **Auto Scaling 群組**，然後選擇**CodeDeployDemo-AS-Group**項目。

1. 在**執行個體**索引標籤上，選擇新 Amazon EC2 執行個體的 ID。

1.  在 **Instances (執行個體)** 頁面上，於**Description (描述)** 標籤上，記下 **Public DNS (公開 DNS)** 值。​ 其看起來如下所示：**ec2-01-234-567-890.compute-1.amazonaws.com**

使用如下的 URL，顯示部署到執行個體的 `SimpleDemoApp` 修訂版：

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

如果出現恭喜頁面，表示您已使用 CodeDeploy 將修訂部署到 Auto Scaling 群組中向上擴展的 Amazon EC2 執行個體！

# 步驟 6：清除
<a name="tutorials-auto-scaling-group-clean-up"></a>

在此步驟中，您將刪除 Auto Scaling 群組，以避免您在本教學課程中使用的資源持續產生費用。或者，您可以刪除 Auto Scaling 組態和 CodeDeploy 部署元件記錄。

**Topics**
+ [清除資源 (CLI)](#tutorials-auto-scaling-group-clean-up-cli)
+ [清除資源 (主控台)](#tutorials-auto-scaling-group-clean-up-console)

## 清除資源 (CLI)
<a name="tutorials-auto-scaling-group-clean-up-cli"></a>

1. 透過對 呼叫 **delete-auto-scaling-group**命令來刪除 Auto Scaling 群組**CodeDeployDemo-AS-Group**。這也會終止 Amazon EC2 執行個體。

   ```
   aws autoscaling delete-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --force-delete
   ```

1. 或者，針對名為 的啟動組態呼叫 **delete-launch-template**命令，以刪除 Auto Scaling 啟動範本**CodeDeployDemo-AS-Launch-Template**：

   ```
   aws ec2 delete-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template
   ```

1. 或者，針對名為 的應用程式呼叫 **delete-application**命令，從 CodeDeploy 刪除應用程式**SimpleDemoApp**。這將刪除所有相關聯的部署、部署群組及修訂記錄。

   ```
   aws deploy delete-application --application-name SimpleDemoApp
   ```

1. 若要刪除 Systems Manager State Manager 關聯，請呼叫 **delete-association**命令。

   ```
   aws ssm delete-association --assocation-id association-id
   ```

   您可以呼叫 **describe-association**命令來取得 *association-id*。

   ```
   aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo
   ```

## 清除資源 (主控台)
<a name="tutorials-auto-scaling-group-clean-up-console"></a>

若要刪除也會終止 Amazon EC2 執行個體的 Auto Scaling 群組：

1. 

   登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在 Amazon EC2 導覽窗格的 **Auto Scaling** 下，選擇 **Auto Scaling 群組**，然後選擇**CodeDeployDemo-AS-Group**項目。

1. 依序選擇 **Actions (動作)**、**Delete (刪除)** 和 **Yes, Delete (是，刪除)**。

（選用） 若要刪除啟動範本：

1.  在導覽列的 **Auto Scaling** 下，選擇**啟動組態**，然後選擇 **CodeDeployDemo-AS-Launch-Template**。

1. 依序選擇 **Actions (執行)**、**Delete launch configuration (刪除啟動組態)** 和 **Yes, Delete (是，刪除)**。

1. 或者，從 CodeDeploy 刪除應用程式。這將刪除所有相關聯的部署、部署群組及修訂記錄。在 https：//[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) 開啟 CodeDeploy 主控台。

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

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

   

1. 在應用程式清單中，選擇 **SimpleDemoApp**。

1. 在 **Application details (應用程式詳細資訊)** 頁面上，選擇 **Delete application (刪除應用程式)**。

1. 當出現提示時，輸入 **Delete**，然後選擇 **Delete (刪除)**。

若要刪除 Systems Manager 狀態管理員關聯：

1. 在 https：//https://console.aws.amazon.com/systems-manager 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **State Manager (狀態管理員)**。

1. 選擇您建立的關聯，然後選擇 **Delete (刪除)**。