本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 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。
注意
如果您有与兼容的 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 实例类型创建。根据您对ImageId
、IamInstanceProfile
和KeyName
的输入,启动模板还指定 AMI ID、启动时要传递给实例的 IAM 角色关联的实例配置文件名称,以及连接到实例时要使用的 Amazon EC2 密钥对。 -
-
调用 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 代理时使用。 -
针对
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
之后继续。 -
您的 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 组(控制台)
-
通过以下网址打开 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。
注意
如果您有与兼容的 AMI 的自定义版本,请在此处选择该版本 CodeDeploy,而不是浏览快速入门选项卡。有关将自定义 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显示的值且 “健康” 的值出现在 “健康状态” 列中之前,请勿继续操作。 -
按照安装 CodeDeploy 代理中的步骤安装 CodeDeploy 代理,并使用
Name=CodeDeployDemo
实例标签。