步骤 1:创建和配置 Auto Scaling 组
在本步骤中,您将创建一个包含单个 Amazon Linux、RHEL 或 Windows Server Amazon EC2 实例的 Auto Scaling 组。在后面的步骤中,您将指示 Amazon EC2 Auto Scaling 再添加一个 Amazon EC2 实例,并且 CodeDeploy 将向其中部署您的修订。
创建和配置 Auto Scaling 组(CLI)
-
调用 create-launch-template 命令创建 Amazon EC2 启动模板。
在调用此命令之前,您需要适用于本教程的 AMI 的 ID(由占位符
image-id表示)。您还需要 Amazon EC2 实例密钥对的名称(由占位符key-name表示)才能访问 Amazon EC2 实例。要获取适用于本教程的 AMI 的 ID,请执行以下操作:
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格中的 Instances 下,选择 Instances,然后选择 Launch Instance。
-
在选择一个 Amazon 系统映像页上的快速启动选项卡上,记下 Amazon Linux 2 AMI、Red Hat Enterprise Linux 7.1、Ubuntu Server 14.04 LTS 或 Microsoft Windows Server 2012 R2 旁边的 AMI 的 ID。
注意
如果您拥有与 CodeDeploy 兼容的 AMI 自定义版本,则在此选择它,而不用浏览快速启动选项卡。有关将自定义 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 实例类型创建。根据您对ImageId、IamInstanceProfile和KeyName的输入,启动模板还指定 AMI ID、启动时要传递给实例的 IAM 角色关联的实例配置文件名称,以及连接到实例时要使用的 Amazon EC2 密钥对。 -
-
调用 create-auto-scaling-group 命令以创建一个 Auto Scaling 组。您将需要《Amazon Web Services 一般参考》的区域和终端节点所列区域之一中的某个可用区的名称(由占位符
availability-zone表示)。注意
要查看区域中的可用区列表,请调用:
aws ec2 describe-availability-zones --regionregion-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-zonesavailability-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-zonesavailability-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 代理时将使用该标签。 -
针对 describe-auto-scaling-groups 调用
CodeDeployDemo-AS-Group命令:aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text请在返回的值显示
Healthy和InService之后继续。 -
Auto Scaling 组中的实例必须安装 CodeDeploy 代理才能在 CodeDeploy 部署中使用。通过使用标签从 Amazon Systems Manager 调用 create-association 命令来安装 CodeDeploy 代理,该标签是在创建 Auto Scaling 组时添加的。
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 状态管理器中创建一个关联,这将在 Auto Scaling 组中的所有实例上安装 CodeDeploy 代理,然后尝试在每周日凌晨 2:00 更新它。有关 CodeDeploy 代理的详细信息,请参阅使用 CodeDeploy 代理。有关 Systems Manager 的详细信息,请参阅什么是 Amazon Systems Manager。
创建和配置 Auto Scaling 组(控制台)
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在全局导航栏中,确保选中《Amazon Web Services 一般参考》的区域和终端节点中列出的某个区域。Amazon EC2 Auto Scaling 资源与您所指定的区域相关联,并且 CodeDeploy 仅在选定区域中受支持。
-
在导航栏中的实例下,选择启动模板。
-
选择Create launch template(创建启动模板)。
-
在启动模板名称和描述对话框中,为启动模板名称输入
CodeDeployDemo-AS-Launch-Template。对其他字段保留默认值。 -
在亚马逊机器映像(AMI)对话框中,单击 AMI 下的下拉列表,选择适用于本教程的 AMI:
-
在 AMI 下拉列表的快速启动选项卡上,选择以下选项之一:Amazon Linux 2 AMI、Red Hat Enterprise Linux 7.1、Ubuntu Server 14.04 LTS 或 Microsoft Windows Server 2012 R2。
注意
如果您拥有与 CodeDeploy 兼容的 AMI 自定义版本,则在此选择它,而不用浏览快速启动选项卡。有关将自定义 AMI 与 CodeDeploy 和 Amazon EC2 Auto Scaling 配合使用的信息,请参阅将 自定义 AMI 与 CodeDeploy 和 Amazon EC2 Auto Scaling 一起使用。
-
-
在实例类型中,选择下拉列表,然后选择 t1.micro。您可以使用搜索栏来更快地找到它。
-
在密钥对(登录)对话框中,选择选择现有密钥对。在选择密钥对下拉列表中,选择您在前面步骤中创建或使用的 Amazon EC2 实例密钥对。
-
在网络设置对话框中,选择虚拟公有云(VPC)。
在安全组下拉列表中,选择您在教程的先决条件部分中创建的安全组(
CodeDeployDemo-AS-SG)。 -
展开高级详细信息对话框。在 IAM 实例配置文件下拉列表中,在 IAM 实例配置文件下选择您之前创建的 IAM 角色(
CodeDeployDemo-EC2-Instance-Profile)。保留其余的默认值。
-
选择Create launch template(创建启动模板)。
-
在后续步骤对话框中,选择创建 Auto Scaling 组。
-
在选择启动模板或配置页面上,对于 Auto Scaling 组名称,键入
CodeDeployDemo-AS-Group。 -
在启动模板对话框中,应该已经填充您的启动模板(
CodeDeployDemo-AS-Launch-Template),如果没有,请从下拉菜单中将其选中。保留默认选择,然后选择下一步。 -
在选择实例启动选项页面的网络部分,对于 VPC,选择默认的 VPC。然后为可用区和子网选择默认子网。如果无法选择默认 VPC,则必须创建 VPC。有关更多信息,请参阅 Amazon VPC 入门。
-
在 Instance type requirements(实例类型要求)部分中,使用默认设置简化此步骤。(请勿覆盖启动模板。) 在本教程中,您将仅使用启动模板中指定的实例类型启动按需实例。
-
选择 Next(下一步)转至 Configure advanced options(配置高级选项)页面。
-
保持默认值,然后选择下一步。
-
在配置组大小和扩展策略页面上,保留默认组大小值 1。选择下一步。
-
跳过配置通知的步骤,然后选择下一步。
-
在添加标签页面上,添加一个标签,以便稍后安装 CodeDeploy 代理时使用。选择 Add tag(添加标签)。
-
在键中,输入
Name。 -
在值中,输入
CodeDeployDemo。
选择下一步。
-
-
在审核页面上,检查 Auto Scaling 组的详细信息,然后选择创建 Auto Scaling 组。
-
在导航栏中,在 Auto Scaling 组处于选中状态的情况下,选择
CodeDeployDemo-AS-Group,然后选择实例管理选项卡。请在 InService 的值出现在 Lifecycle 列中并且 Healthy 的值出现在 Health Status 列中之后继续。 -
按照安装 CodeDeploy 代理中的步骤并使用
Name=CodeDeployDemo实例标签安装 CodeDeploy 代理。