本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 CodeDeploy (Amazon CloudFormation 模板)创建 Amazon EC2 实例
您可以使用我们的 Amazon CloudFormation 模板快速启动运行亚马逊 Linux 或 Windows 服务器的 Amazon EC2 实例。您可以使用 Amazon CLI、 CodeDeploy 控制台或 Amazon API 使用模板启动实例。除了启动实例之外,模板还可用于:
-
指示 Amazon CloudFormation 向实例授予参与 CodeDeploy部署的权限。
-
为实例添加标签,以便在部署期间 CodeDeploy 可以找到它。
-
在实例上安装并运行 CodeDeploy 代理。
您不必使用我们的 Amazon CloudFormation 来设置 Amazon EC2 实例。有关替代方法,请参阅使用以下实例 CodeDeploy。
我们不为运行 Ubuntu 服务器或红帽企业 Linux (RHEL) 的 Amazon EC2 实例提供 Amazon CloudFormation 模板。
主题
开始前的准备工作
在使用 Amazon CloudFormation 模板启动 Amazon EC2 实例之前,请务必完成以下步骤。
-
请确保您已创建管理员用户,如步骤 1:设置中所述。仔细检查用户是否具有以下最低权限,然后添加任何不存在的最低权限:
-
cloudformation:*
-
codedeploy:*
-
ec2:*
-
我是:AddRoleToInstanceProfile
-
我是:CreateInstanceProfile
-
我是:CreateRole
-
我是:DeleteInstanceProfile
-
我是:DeleteRole
-
我是:DeleteRolePolicy
-
我是:GetRole
-
我是:DeleteRolePolicy
-
我是:PutRolePolicy
-
我是:RemoveRoleFromInstanceProfile
-
-
确保您有实例密钥对,以允许通过 SSH 访问运行 Amazon Linux 的 Amazon EC2 实例,或者允许通过 RDP 访问运行 Windows Server 的实例。
要查找密钥对名称,请打开 Amazon EC2 控制台,网址为 https://console.aws.amazon.com/ec2
。在导航窗格中,在 Network & Security(网络和安全)下,选择 Key Pairs(密钥对),然后记下列表中的密钥对名称。 要生成新的密钥对,请参阅使用 Amazon EC2 创建密钥对。请确保密钥对是《Amazon Web Services 一般参考》的区域和终端节点中列出的其中一个区域中创建的。否则,您不能将实例 key pair 与一起使用 CodeDeploy。
使用 Amazon CloudFormation 模板启动 Amazon EC2 实例(控制台)
登录 Amazon Web Services Management Console 并打开 Amazon CloudFormation 控制台,网址为 https://console.aws.amazon.com/cloudformation
。 重要
使用您使用的相同帐户登录入门 CodeDeploy。 Amazon Web Services Management Console 在导航栏的区域选择器中,选择区域和终端节点中列出的其中一个区域Amazon Web Services 一般参考。 CodeDeploy 仅支持这些区域。
-
选择创建堆栈。
-
在选择模板中,选择指定 Amazon S3 模板 URL。在框中,键入您所在地区的 Amazon CloudFormation 模板位置,然后选择下一步。
对于中国(北京)区域:
-
https://s3.cn-north-1.amazonaws.com.cn/aws-codedeploy-cn-north-1/templates/latest/CodeDeploy_SampleCF_Template.json
(适用于中国(北京)区域)
-
-
在 Stack name(堆栈名称)框中,键入堆栈的名称(例如,
CodeDeployDemoStack
)。 -
在 Parameters 中,键入以下内容,然后选择 Next。
-
对于 InstanceCount,键入要启动的实例数量。(建议您保留默认值 1。)
-
对于 InstanceType,键入要启动的实例类型(或保留默认值 t1.micro)。
-
对于 KeyPairName,键入实例 key pair 名称。仅键入密钥对名称而不是密钥对文件扩展名。
-
OperatingSystem在 box 中,键
Windows
入启动运行 Windows 服务器的实例(或保留默认值 Linux)。 -
对于 SSHLocation,键入要用于使用 SSH 或 RDP 连接到实例的 IP 地址范围(或保留默认值 0.0.0.0/0)。
重要
提供的默认值
0.0.0.0/0
仅用于演示目的。 CodeDeploy 不要求 Amazon EC2 实例可以不受限制地访问端口。作为最佳实践,建议您限制对 SSH(和 HTTP)端口的访问。 -
对于 TagKey,键入部署期间用于识别实例的实例标签密钥 CodeDeploy (或保留默认名称)。
-
对于 TagValue,键入部署期间用于识别实例的实例标签值 CodeDeploy (或保留默认值 CodeDeployDemo)。
-
-
在 Options 页上,将选项框留空,然后选择 Next。
重要
Amazon CloudFormation 标签与 CodeDeploy 标签不同。 Amazon CloudFormation 使用标签来简化基础架构的管理。 CodeDeploy 使用标签来识别 Amazon EC2 实例。您在 “指定参数” 页面上指定了 CodeDeploy标签。
-
在 “查看” 页面的 “能力” 中,选中 “我确认 Amazon CloudFormation 可能会创建 IAM 资源” 复选框,然后选择 “创建”。
创建堆栈并启动 Amazon EC2 实例后 Amazon CloudFormation ,在 Amazon CloudFormation 控制台中,CREATE_COMPL ETE 将显示在状态列中。此过程可能耗时数分钟。
要验证 CodeDeploy 代理是否在 Amazon EC2 实例上运行管理 CodeDeploy 代理操作,请参阅,然后继续使用创建应用程序 CodeDeploy。
使用 Amazon CloudFormation 模板启动 Amazon EC2 实例 (Amazon CLI)
-
在调用create-stack命令时使用我们的 Amazon CloudFormation 模板。该堆栈将启动一个安装了 CodeDeploy 代理的新 Amazon EC2 实例。
要启动运行 Amazon Linux 的 Amazon EC2 实例,请执行以下操作:
aws cloudformation create-stack \ --stack-name CodeDeployDemoStack \ --template-url
templateURL
\ --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro \ ParameterKey=KeyPairName,ParameterValue=keyName
ParameterKey=OperatingSystem,ParameterValue=Linux \ ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name \ ParameterKey=TagValue,ParameterValue=CodeDeployDemo \ --capabilities CAPABILITY_IAM要启动运行 Windows Server 的 Amazon EC2 实例,请执行以下操作:
aws cloudformation create-stack --stack-name CodeDeployDemoStack --template-url
template-url
--parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro ParameterKey=KeyPairName,ParameterValue=keyName
ParameterKey=OperatingSystem,ParameterValue=Windows ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name ParameterKey=TagValue,ParameterValue=CodeDeployDemo --capabilities CAPABILITY_IAMkeyName
是实例密钥对的名称。仅键入密钥对名称而不是密钥对文件扩展名。template-url
是您所在地区的 Amazon CloudFormation 模板所在位置:对于中国(北京)区域:
-
https://s3.cn-north-1.amazonaws.com.cn/aws-codedeploy-cn-north-1/templates/latest/CodeDeploy_SampleCF_Template.json
(适用于中国(北京)区域)
此命令使用指定 Amazon S3 存储桶中的 Amazon CloudFormation 模板创建一个名
CodeDeployDemoStack
为的 Amazon CloudFormation 堆栈。虽然 Amazon EC2 实例基于 t1.micro 实例类型,但您可使用任何类型。虽然它是使用值CodeDeployDemo
标记的,但您可使用任何值标记它。它已应用指定的实例密钥对。 -
-
调用describe-stacks命令验证名为的 Amazon CloudFormation 堆栈
CodeDeployDemoStack
已成功创建:aws cloudformation describe-stacks --stack-name CodeDeployDemoStack --query "Stacks[0].StackStatus" --output text
在返回
CREATE_COMPLETE
值之前,不要继续。
要验证 CodeDeploy 代理是否在 Amazon EC2 实例上运行管理 CodeDeploy 代理操作,请参阅,然后继续使用创建应用程序 CodeDeploy。