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

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

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

你可以使用我们的Amazon CloudFormation模板,快速启动运行 Amazon Linux 或 Windows Server 的 Amazon EC2 实例。您可以使用Amazon CLI、CodeDeploy 控制台或Amazon使用 API 启动实例。除了启动实例之外,模板还可用于:

  • 指示Amazon CloudFormation为实例提供参与 CodeDeploy 部署的权限。

  • 标记实例,以便 CodeDeploy 可在部署过程中找到它。

  • 在实例上安装并运行 CodeDeploy 代理。

您不一定要使用我们的Amazon CloudFormation设置 Amazon EC2 实例。有关替代方法,请参阅使用 CodeDeploy 的实例

我们不提供Amazon CloudFormation针对运行 Ubuntu Server 或 Red Hat Enterprise Linux (RHEL) 的 Amazon EC2 实例的模板。

开始前的准备工作

在您可以使用Amazon CloudFormation模板启动 Amazon EC2 实例,请确保完成以下步骤。

  1. 确保您已完成第 3 步:预配 IAM 用户中的步骤。仔细检查分配给 IAM 用户的策略是否具有以下最低权限,然后添加任何不存在的权限:

    • 云形成:*

    • codedeploy:*

    • ec2:*

    • 我:addroleto 实例配置文件

    • IAM:创建实例配置文件

    • iam:CreateRole

    • 我:删除实例配置文件

    • iam:DeleteRole

    • iam:DeleteRolePolicy

    • iam:GetRole

    • iam:DeleteRolePolicy

    • iam:PutRolePolicy

    • 我:从实例配置文件中删除角色

  2. 请确保您有一个实例 key pair,以允许针对运行 Amazon Linux 的 Amazon EC2 实例的 SSH 访问或针对运行 Windows Server 的实例的 RDP 访问。

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

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

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

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

    重要

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

  2. 选择 Create Stack

  3. InChoose a template,选择指定 Amazon S3 模板 URL. 在框中键入您所在区域的 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框,键入Windows启动运行 Windows Server 的实例(或保留默认值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. 在存储库的审核在页面上,Capabilities,选择我承认这一点Amazon CloudFormation可能会创建 IAM 资源框,然后选择Create.

    晚于Amazon CloudFormation在中创建堆栈并启动 Amazon EC2 实例Amazon CloudFormation控制台,创建 _ 完成将显示在状态column. 此过程可能耗时数分钟。

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

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

  1. 在调用 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_IAM

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

    template-url 是您所在区域的 Amazon CloudFormation 模板的位置:

    对于中国(北京)区域:

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

    此命令会创建Amazon CloudFormation名为的堆栈CodeDeployDemoStack,使用Amazon CloudFormation指定的 Amazon S3 存储桶中的模板。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 创建应用程序.