步驟 1:建立並設定「Auto Scaling」群組 - AWS CodeDeploy

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

步驟 1:建立並設定「Auto Scaling」群組

在此步驟中,您將建立包含單一 Amazon Linux、RHEL 或 Windows 伺服器亞馬 Amazon EC2 執行個體的 Auto Scaling 群組。在稍後的步驟中,您將指示 Amazon EC2 Auto Scaling 新增一個 Amazon EC2 執行個體,並 CodeDeploy 將您的修訂部署到該執行個體。

若要建立和設定 Auto Scaling 群組 (CLI)

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

    呼叫此命令之前,您需要適用於此教學課程之 AMI 的 ID,其由預留位置 image-id 代表。您還需要 Amazon EC2 執行個體 key pair 的名稱,才能存取 Amazon EC2 執行個體 (以預留位置鍵名稱表示)。

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

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

    2. 在導覽窗格中,在 Instances (執行個體) 下,選擇 Instances (執行個體),然後選擇 Launch Instance (啟動執行個體)

    3. 在「選擇 Amazon 機器映像」頁面的「快速啟動」選項卡上,請注意 Amazon Linux 2 AMI,紅帽企業 Linux 7.1Ubuntu 服務器 14.04 LTS 或 Microsoft Windows 服務器 2012 R 2 旁邊的 AMI 的 ID。

      注意

      如果您有與之相容的 AMI 的自訂版本,請在此處選擇它 CodeDeploy,而不是瀏覽 [快速入門] 索引標籤。如需搭配使用自訂 AMI CodeDeploy 和 Amazon EC2 自 Auto Scaling 的相關資訊,請參閱將自訂 AMI 與 CodeDeploy Amazon EC2 自 Auto Scaling 搭配使用

    對於亞馬遜 EC2 執行個體金鑰組,請使用您的 Amazon EC2 執行個體 key pair 的名稱。

    呼叫 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 CodeDeployDemo Scaling 群組建立名為-AS 啟動範本的 Amazon EC2 啟動範本,該範本將根據 t1.micro Amazon EC2 執行個體類型在以下步驟中建立。根據您的輸入ImageId、和 IamInstanceProfileKeyName,啟動範本還會指定 AMI ID、與啟動時傳遞給執行個體的 IAM 角色相關聯的執行個體設定檔名稱,以及連線至執行個體時要使用的 Amazon EC2 key pair。

  2. 呼叫指create-auto-scaling-group令以建立「Auto Scaling」群組。您需要在 [區域] 中列出的其中一個區域中的一個可用區域名稱以及中的端點 (以預留位置可用性區域表示)。AWS 一般參考

    注意

    若要檢視區域中的可用區域的清單,請呼叫:

    aws ec2 describe-availability-zones --region region-name

    例如,若要檢視美國西部 (奧勒岡) 區域的可用區域清單,請撥打:

    aws ec2 describe-availability-zones --region us-west-2

    有關區域名稱識別碼的清單,請參閱 依區域的資源套件時段名稱

    在本地 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 啟動範本命名的自動擴展群組CodeDeployDemo-AS-Launch-Template。此 Auto Scaling 群組只有一個 Amazon EC2 執行個體,並在指定的可用區域中建立。此「Auto Scaling 例」群組中的每個執行個體都會有標籤Name=CodeDeployDemo。稍後安裝 CodeDeploy 代理程式時會使用此標籤。

  3. 針對 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 之前不要繼續。

  4. Auto Scaling 群組中的執行個體必須安裝 CodeDeploy 代理程式,才能在 CodeDeploy 部署中使用。透過 AWS Systems Manager 使用建立 Auto Scaling 群組時新增的標籤呼叫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 *)"

    此命令會在系統管理員狀態管理員中建立關聯,該關聯會將 CodeDeploy 代理程式安裝在 Auto Scaling 群組中的所有執行個體上,然後嘗試在每個星期日早上 2:00 進行更新。如需 CodeDeploy 代理程式的詳細資訊,請參閱使用 CodeDeploy 代理程式。如需有關「Systems Manager 的詳細資訊,請參閱何謂 AWS Systems Manager

若要建立和設定「Auto Scaling」群組 (控制台)

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

  2. 在全域導覽列中,確定已選取「區域」中列出的其中一個區域和中AWS 一般參考的端點。Amazon EC2 Auto Scaling 資源與您指定的區域相關聯,並且 CodeDeploy 僅在特定區域提供支援。

  3. 在導覽列的「執行個體」下,選擇「啟動範本」。

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

  5. 在「啟動範本名稱和描述」對話方塊中,對於 Launch 範本名稱,輸入CodeDeployDemo-AS-Launch-Template。保留其他欄位的預設值。

  6. Amazon 機器映像(AMI)對話框中,單擊 AMI 下的下拉菜單,選擇適用於本教程的 AMI:

    1. AMI 下拉列表的快速啟動選項卡上,選擇以下選項之一:Amazon Linux 2 AMI紅帽企業 Linux 7.1Ubuntu 服務器 14.04 LTSMicrosoft 視窗服務器 2012 R 2。

      注意

      如果您有與之相容的 AMI 的自訂版本,請在此處選擇它 CodeDeploy,而不是瀏覽 [快速入門] 索引標籤。如需搭配使用自訂 AMI CodeDeploy 和 Amazon EC2 自 Auto Scaling 的相關資訊,請參閱將自訂 AMI 與 CodeDeploy Amazon EC2 自 Auto Scaling 搭配使用

  7. 執行個體類型中,選取下拉式清單,然後選擇 t1.micro。您可以使用搜索欄更快地找到它。

  8. 在 [key pair (登入)] 對話方塊中,選取 [選擇現有金鑰配對]。在選取 key pair 下拉式清單中,選擇您在先前步驟中建立或使用的 Amazon EC2 執行個體 key pair。

  9. [網路設定] 對話方塊中,選擇 [虛擬公用雲端 (VPC)]。

    在 [安全性群組] 下拉式清單中,選擇您在教學課程的必要條件區段 (CodeDeployDemo-AS-SG) 中建立的安全性群組。

  10. 展開「進階詳細資料」對話方塊。在 IAM 執行個體設定檔下拉式清單中,在 IAM 執行個體設定檔下選取您先前建立的 IAM 角色 (CodeDeployDemo-EC2-Instance-Profile)。

    保留其餘的預設值。

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

  12. 在「後續步驟」對話方塊中,選擇「建立 Auto Scaling」群組

  13. [選擇啟動範本或組態] 頁面上,針對 [Auto Scaling] 群組名稱輸入CodeDeployDemo-AS-Group

  14. 在 [啟動範本] 對話方塊中,應填入您的啟動範本 (CodeDeployDemo-AS-Launch-Template),如果沒有,請從下拉式功能表中選取它。保留預設值並選擇 [下一步]。

  15. [選擇執行個體啟動選項] 頁面的 [網路] 區段中,對於 VPC,選擇預設 VPC。然後,針對可用區域和子網路,選擇預設子網路。如果您無法選擇預設值,則必須建立 VPC。如需詳細資訊,請參閱開始使用 Amazon VPC

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

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

  18. 保留預設值並選擇 [下一步]。

  19. [設定群組大小和擴展原則] 頁面上,保持預設群組大小值 1。選擇下一步

  20. 略過設定通知的步驟,然後選擇下一步。

  21. 在 [新增標記] 頁面上,新增稍後安裝 CodeDeploy 代理程式時要使用的標籤。選擇 Add tag (新增標籤)

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

    2. Value (值) 中輸入 CodeDeployDemo

    選擇下一步

  22. 在「檢閱」頁面上閱「Auto Scaling」群組資訊,然後選擇「建立 Auto Scaling」群組

  23. 在導覽列中,選取「Auto Scaling 群組」後,選擇CodeDeployDemo-AS-Group,然後選擇「執行個體管理」索引標籤。直到的值InService出現在「生命週期」欄中,且「Health 全狀況」欄中顯示「狀況好」的值之前,請勿繼續執行。

  24. 依照安裝 CodeDeploy 代理程式中的步驟並使用Name=CodeDeployDemo執行個體標籤來安裝 CodeDeploy 代理程式