为 CodeDeploy (Amazon CloudFormation模板)创建 Amazon EC2 实例 - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 CodeDeploy (Amazon CloudFormation模板)创建 Amazon EC2 实例

您可以使用我们的Amazon CloudFormation模板快速启动运行亚马逊 Linux 或 Windows 服务器的亚马逊 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. 请确保您已创建管理员用户,如中所述步骤 1:设置。仔细检查用户是否具有以下最低权限,然后添加任何不存在的最低权限:

    • 云层:*

    • codedeploy:*

    • ec2:*

    • 我是:AddRoleToInstanceProfile

    • 我是:CreateInstanceProfile

    • 我是:CreateRole

    • 我是:DeleteInstanceProfile

    • 我是:DeleteRole

    • 我是:DeleteRolePolicy

    • 我是:GetRole

    • 我是:DeleteRolePolicy

    • 我是:PutRolePolicy

    • 我是:RemoveRoleFromInstanceProfile

  2. 确保您有实例密钥对,可以通过 SSH 访问运行 Amazon Linux 的 Amazon EC2 实例,或者使用 RDP 访问运行 Windows Server 的实例。

    要查找密钥对名称,请打开亚马逊 EC2 控制台 https://console.aws.amazon.com/ec2。在导航窗格中,在 Network & Security (网络和安全) 下,选择 Key Pairs (密钥对),然后记下列表中的密钥对名称。

    要生成新的密钥对,请参阅使用 Amazon EC2 创建密钥对。请确保密钥对是在区域和终端节点中列出的其中一个区域中创建的Amazon Web Services 一般参考。否则,您无法将实例密钥对与 CodeDeploy 结合使用。

使用Amazon CloudFormation模板启动 Amazon EC2 实例(控制台)

  1. 登录到 Amazon Web Services Management Console 并打开 Amazon CloudFormation 控制台 https://console.aws.amazon.com/cloudformation

    重要

    使用您在CodeDeploy 入门中使用的同一账户登录 Amazon Web Services Management Console。在导航栏的区域选择器中,选择区域和终端节点中列出的其中一个区域Amazon Web Services 一般参考。 CodeDeploy 仅支持这些区域。

  2. 选择Create Stack(创建堆栈)。

  3. 选择模板中,选择指定 Amazon S3 模板网址。在框中键入您所在区域的 Amazon CloudFormation模板的位置,然后选择 Next (下一步)

    对于中国(北京)区域:

    • https://s3.cn-north-1.amazonaws.com.cn/aws-codedeploy-cn-north-1/templates/latest/CodeDeploy_SampleCF_Template.json(适用于中国(北京)区域)

  4. Stack name (堆栈名称) 框中,键入堆栈的名称(例如,CodeDeployDemoStack)。

  5. 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)。

  6. Options 页上,将选项框留空,然后选择 Next

    重要

    Amazon CloudFormation标签与 CodeDeploy 标签不同。 Amazon CloudFormation使用标签来简化基础架构的管理。 CodeDeploy 使用标签来识别 Amazon EC2 实例。您在 “指定参数” 页面上指定了 CodeDeploy标签。

  7. 在 “查看” 页面的 “能力” 中,选中 “我确认Amazon CloudFormation可能会创建 IAM 资源” 复选框,然后选择 “创建”。

    创建堆栈并启动 Amazon EC2 实例后Amazon CloudFormation,在Amazon CloudFormation控制台中,CREATE_COMPL ETE 将显示在状态列中。此过程可能耗时数分钟。

要验证 CodeDeploy 代理是否在 Amazon EC2 实例上运行管理 CodeDeploy 代理操作,请参阅,然后继续使用创建应用程序 CodeDeploy

使用Amazon CloudFormation模板启动 Amazon EC2 实例 (Amazon CLI)

  1. 在调用 create-stack 命令时使用 Amazon CloudFormation 模板。该堆栈将启动一个安装了 CodeDeploy 代理的新 Amazon EC2 实例。

    要启动运行亚马逊 Linux 的亚马逊 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 服务器的 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_IAM

    keyName 是实例密钥对的名称。仅键入密钥对名称而不是密钥对文件扩展名。

    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 标记的,但您可使用任何值标记它。它已应用指定的实例密钥对。

  2. 调用 describe-stacks 命令以验证名为 CodeDeployDemoStack 的 Amazon CloudFormation 堆栈是否已成功创建:

    aws cloudformation describe-stacks --stack-name CodeDeployDemoStack --query "Stacks[0].StackStatus" --output text

    在返回 CREATE_COMPLETE 值之前,不要继续。

要验证 CodeDeploy 代理是否在 Amazon EC2 实例上运行管理 CodeDeploy 代理操作,请参阅,然后继续使用创建应用程序 CodeDeploy