步骤 1:创建和配置 Auto Scaling 组 - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

步骤 1:创建和配置 Auto Scaling 组

在本步骤中,您将创建一个包含单个 Amazon Linux、RHEL 或 Windows Server 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-name 表示)才能访问 Amazon EC2 实例。

    要获取适用于本教程的 AMI 的 ID,请执行以下操作:

    1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

    2. 在导航窗格中的 Instances 下,选择 Instances,然后选择 Launch Instance

    3. 选择一个 Amazon 系统映像页上的快速启动选项卡上,记下 Amazon Linux 2 AMIRed Hat Enterprise Linux 7.1Ubuntu Server 14.04 LTSMicrosoft Windows Server 2012 R2 旁边的 AMI 的 ID。

      注意

      如果您有与兼容的 AMI 的自定义版本,请在此处选择该版本 CodeDeploy,而不是浏览快速入门选项卡。有关将自定义 AMI 与 CodeDeploy Amazon EC2 Auto Scaling 配合使用的信息,请参阅将自定义 AMI 与 CodeDeploy Amazon EC2 Auto Scaling 配合使用

    对于 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 实例类型创建。根据您对 ImageIdIamInstanceProfileKeyName 的输入,启动模板还指定 AMI ID、启动时要传递给实例的 IAM 角色关联的实例配置文件名称,以及连接到实例时要使用的 Amazon EC2 密钥对。

  2. 调用 create-auto-scaling-group 命令以创建一个 Auto Scaling 组。您将需要《Amazon Web Services 一般参考》区域和终端节点所列区域之一中的某个可用区的名称(由占位符 availability-zone 表示)。

    注意

    要查看区域中的可用区列表,请调用:

    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-Launch-Template 的 Amazon EC2 启动模板创建名为 CodeDeployDemo-AS-Group 的 Auto Scaling 组。此 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

    请在返回的值显示 HealthyInService 之后继续。

  4. 您的 Auto Scaling 组中的实例必须安装 CodeDeploy 代理才能用于 CodeDeploy 部署。通过调用 Amazon 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 *)"

    此命令在 Systems Manager 状态管理器中创建关联,该关联将在 CodeDeploy Auto Scaling 组中的所有实例上安装代理,然后在每周日凌晨 2:00 尝试对其进行更新。有关 CodeDeploy 代理的更多信息,请参阅使用代 CodeDeploy 理。有关 Systems Manager 的详细信息,请参阅什么是 Amazon Systems Manager

创建和配置 Auto Scaling 组(控制台)

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在全局导航栏中,确保选中《Amazon Web Services 一般参考》区域和终端节点中列出的某个区域。Amazon EC2 Auto Scaling 资源与您指定的区域相关联,并且 CodeDeploy 仅在特定区域受支持。

  3. 在导航栏中的实例下,选择启动模板

  4. 选择Create launch template(创建启动模板)。

  5. 启动模板名称和描述对话框中,为启动模板名称输入 CodeDeployDemo-AS-Launch-Template。对其他字段保留默认值。

  6. 亚马逊机器映像(AMI)对话框中,单击 AMI 下的下拉列表,选择适用于本教程的 AMI:

    1. AMI 下拉列表的快速启动选项卡上,选择以下选项之一:Amazon Linux 2 AMIRed Hat Enterprise Linux 7.1Ubuntu Server 14.04 LTSMicrosoft Windows Server 2012 R2

      注意

      如果您有与兼容的 AMI 的自定义版本,请在此处选择该版本 CodeDeploy,而不是浏览快速入门选项卡。有关将自定义 AMI 与 CodeDeploy Amazon EC2 Auto Scaling 配合使用的信息,请参阅将自定义 AMI 与 CodeDeploy Amazon EC2 Auto Scaling 配合使用

  7. 实例类型中,选择下拉列表,然后选择 t1.micro。您可以使用搜索栏来更快地找到它。

  8. 密钥对(登录)对话框中,选择选择现有密钥对。在选择密钥对下拉列表中,选择您在前面步骤中创建或使用的 Amazon EC2 实例密钥对。

  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,则必须创建 VPC。有关更多信息,请参阅 Amazon VPC 入门

  16. Instance type requirements(实例类型要求)部分中,使用默认设置简化此步骤。(请勿覆盖启动模板。) 在本教程中,您将仅使用启动模板中指定的实例类型启动按需实例。

  17. 选择 Next(下一步)转至 Configure advanced options(配置高级选项)页面。

  18. 保持默认值,然后选择下一步

  19. 配置组大小和扩展策略页面上,保留默认组大小值 1。选择下一步

  20. 跳过配置通知的步骤,然后选择下一步

  21. 添加标签页面上,添加一个标记,以便以后安装 CodeDeploy 代理时使用。选择 Add tag(添加标签)

    1. 中,输入 Name

    2. 中,输入 CodeDeployDemo

    选择下一步

  22. 审核页面上,检查 Auto Scaling 组的详细信息,然后选择创建 Auto Scaling 组

  23. 在导航栏中,在 Auto Scaling 组处于选中状态的情况下,选择 CodeDeployDemo-AS-Group,然后选择实例管理选项卡。在 “生命周期” 列中InService显示的值且 “健康” 的值出现在 “健康状态” 列中之前,请勿继续操作。

  24. 按照安装 CodeDeploy 代理中的步骤安装 CodeDeploy 代理,并使用Name=CodeDeployDemo实例标签。