

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

# 步驟 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)。