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

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

为 CodeDeploy 创建 Amazon EC2 实例 (Amazon CLI或 Amazon EC2 控制台)

这些说明向您介绍如何启动配置为在 CodeDeploy 部署中使用的新 Amazon EC2 实例。

你可以使用我们的Amazon CloudFormation模板,以启动已配置为在 CodeDeploy 部署中使用的运行 Amazon Linux 或 Windows 服务器的 Amazon EC2 实例。我们不提供Amazon CloudFormation运行 Ubuntu Server 或 Red Hat Enterprise Linux (RHEL) 的 Amazon EC2 实例的模板。有关模板使用的替代方法,请参阅使用 CodeDeploy 的实例

您可以使用 Amazon EC2 控制台,Amazon CLI,或 Amazon EC2 API,启动 Amazon EC2 实例。

启动 Amazon EC2 实例(控制台)

Prerequisites

如果您尚未这样做,请按照中的说明操作。开始使用 CodeDeploy设置和配置Amazon CLI创建 IAM 实例配置文件。

启动 Amazon EC2 实例

  1. 登录 Amazon Web Services Management Console,打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Instances (实例),然后选择 Launch Instance (启动实例)

  3. 在存储库的第 1 步:选择一个Amazon 系统映像(AMI)页面,来自快速启动选项卡中,找到要使用的操作系统和版本,然后选择Select. 您必须选择 CodeDeploy 支持的 Amazon EC2 AMI 操作系统。有关更多信息,请参阅CodeDeploy 代理支持的操作系统

  4. 在存储库的步骤 2: 选择一个实例类型页上,选择任何可用的 Amazon EC2 实例类型,然后选择后续:配置实例详细信息.

  5. 在存储库的步骤 3: 配置实例详细信息页面,在IAM 角色列表中,选择您在中创建的 IAM 实例角色第 4 步:为您的 Amazon EC2 实例创建 IAM 实例配置文件. 如果您使用建议的角色名称,则选择 CodeDeployDemo-EC2-Instance-Profile。如果您创建了自己的角色名称,请选择该名称。

    注意

    如果启动到 EC2-Classic或者默认的虚拟私有云 (VPC) 不显示在网络列表中,并且您无法选择支持启动到 EC2-Classic 的其他 Amazon EC2 实例类型,则必须选择或创建 Amazon VPC 和子网。选择新建 VPC 和/或新建子网。有关更多信息,请参阅 。您的 VPC 和子网.

  6. 选择 Next:添加存储.

  7. 离开步骤 4: 添加存储页面不变,然后选择后续:添加标签.

  8. 在存储库的第 5 步:添加标签页面,选择添加标签.

  9. Key (键) 框中,键入 Name。在 Value (值) 框中,键入 CodeDeployDemo

    重要

    Key (键)Value (值) 框的内容是区分大小写的。

  10. 选择 Next:配置安全组.

  11. 在存储库的步骤 6:配置安全组页面,离开创建新安全组选项已选择。

    为运行 Amazon Linux、Ubuntu 服务器或 RHEL 的 Amazon EC2 实例配置默认 SSH 角色。系统为运行 Windows Server 的 Amazon EC2 实例配置默认 RDP 角色。

  12. 如果您要打开 HTTP 端口,请选择 Add Rule (添加规则) 按钮,然后从 Type (类型) 下拉列表中,选择 HTTP。接受 Source (源) 默认值 Custom 0.0.0.0/0 (自定义 0.0.0.0/0),然后选择 Review and Launch (审核和启动)

    注意

    在生产环境中,建议您将访问限制到 SSH、RDP 和 HTTP 端口,而不是指定任何地方 0.0.0.0.0.0.0/0. CodeDeploy 不需要无限制的端口访问,也不需要 HTTP 访问。有关更多信息,请参阅 。保护 Amazon EC2 实例的提示.

    如果 Boot from General Purpose (SSD) (由通用 (SSD) 启动) 对话框出现,请遵循说明,然后选择 Next (下一步)

  13. 离开步骤 7:核查实例启动页面不变,然后选择启动.

  14. Select an existing key pair or create a new key pair (选择现有密钥对或创建新密钥对) 对话框中,选择 Choose an existing key pair (选择现有密钥对)Create a new key pair (创建新密钥对)。如果您已配置 Amazon EC2 实例 key pair,可在此处选择它。

    如果您尚不拥有 Amazon EC2 实例 key pair,请创建新 key pair给它一个可识别的名称。选择下载密钥对将 Amazon EC2 实例 key pair 下载到您的计算机。

    重要

    如果您需要使用 SSH 或 RDP 访问 Amazon EC2 实例,则必须具有 key pair。

  15. 选择 Launch Instances

  16. 选择您的 Amazon EC2 实例的 ID。在实例启动并通过所有检查之前,请不要继续。

安装 CodeDeploy 代理

在 CodeDeploy 部署中使用 CodeDeploy 代理之前,必须先在 Amazon EC2 实例上安装该代理。有关更多信息,请参阅安 CodeDeploy

注意

在控制台中创建部署组时,可以配置 CodeDeploy 代理的自动安装和更新。

启动 Amazon EC2 实例 (CLI)

Prerequisites

如果您尚未这样做,请按照中的说明操作。开始使用 CodeDeploy设置和配置Amazon CLI创建 IAM 实例配置文件。

启动 Amazon EC2 实例

  1. 仅适用于 Windows Server如果您要创建运行 Windows Server 的 Amazon EC2 实例,请调用create-security-groupauthorize-security-group-ingress命令来创建允许 RDP 访问 (默认情况下不允许) 或者 HTTP 访问的安全组。例如,要创建名为的安全组Code 部署演示-Windows-安全组,请逐条运行以下命令:

    aws ec2 create-security-group --group-name CodeDeployDemo-Windows-Security-Group --description "For launching Windows Server images for use with CodeDeploy"
    aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 3389 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 3389
    aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 80 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 80
    注意

    在演示中,这些命令将创建一个安全组来允许通过端口 3389 的 RDP 无限制访问或通过端口 80 的 HTTP 无限制访问。作为最佳实践,建议您将访问限制到 RDP 和 HTTP 端口。CodeDeploy 不需要无限制的端口访问,也不需要 HTTP 访问。有关更多信息,请参阅 。保护 Amazon EC2 实例的提示.

  2. 调用run-instances命令以创建并启动 Amazon EC2 实例。

    在您调用此命令之前,您需要收集以下内容:

    • 将用于此实例的 Amazon 系统映像 (AMI) 的 ID (ami-id)。要获取此 ID,请参阅查找合适的 AMI.

    • Amazon EC2 实例的类型名称 (实例类型) 你创建的,例如t1.micro. 有关列表,请参阅Amazon EC2 实例类型.

    • IAM 实例配置文件的名称,该文件有权访问 Amazon S3 存储桶,其中存储着您的区域的 CodeDeploy 代理安装文件。

      有关创建 IAM 实例配置文件的信息,请参阅第 4 步:为您的 Amazon EC2 实例创建 IAM 实例配置文件.

    • Amazon EC2 实例 key pair 的名称 (密钥名称) 以允许针对运行 Amazon Linux、Ubuntu 服务器或 RHEL 或 RDP 的 Amazon EC2 实例的 SSH 访问,以访问运行 Windows Server 的 Amazon EC2 实例。

      重要

      仅键入密钥对名称而不是密钥对文件扩展名。例如,my-keypair,而不是 my-keypair.pem

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

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

    对于 Amazon Linux、RHEL 和 Ubuntu 服务器

    调用run-instances命令以启动运行 Amazon Linux、Ubuntu Server 或 RHEL 的 Amazon EC2 实例并附加您在中创建的 IAM 实例配置文件。第 4 步:为您的 Amazon EC2 实例创建 IAM 实例配置文件. 例如:

    aws ec2 run-instances \ --image-id ami-id \ --key-name key-name \ --count 1 \ --instance-type instance-type \ --iam-instance-profile Name=iam-instance-profile
    注意

    此命令将为 Amazon EC2 实例创建一个允许访问多个端口的默认安全组,包括通过端口 22 的 SSH 无限制访问或通过端口 80 的 HTTP 无限制访问。作为最佳实践,建议您将访问限制到 SSH 和 HTTP 端口。CodeDeploy 不需要无限制的端口访问,也不需要 HTTP 端口访问。有关更多信息,请参阅 。保护 Amazon EC2 实例的提示.

    适用于 Windows Server

    调用run-instances命令以启动运行 Windows Server 的 Amazon EC2 实例并附加您在中创建的 IAM 实例配置文件。第 4 步:为您的 Amazon EC2 实例创建 IAM 实例配置文件,并指定您在步骤 1 中创建的安全组的名称。例如:

    aws ec2 run-instances --image-id ami-id --key-name key-name --count 1 --instance-type instance-type --iam-instance-profile Name=iam-instance-profile --security-groups CodeDeploy-Windows-Security-Group

    这些命令将使用指定的 IAM 实例配置文件启动一个具有指定的 AMI、key pair 和实例类型的 Amazon EC2 实例,并在启动过程中运行指定脚本。

  3. 记下输出中的 InstanceID 的值。如果您忘记此值,可稍后通过调用describe-instances针对 Amazon EC2 实例 key pair 的命令。

    aws ec2 describe-instances --filters "Name=key-name,Values=keyName" --query "Reservations[*].Instances[*].[InstanceId]" --output text

    使用实例 ID 调用create-tags命令,该命令将标记 Amazon EC2 实例,以便 CodeDeploy 可以在部署过程中找到它。在以下示例中,将命名为标签CodeDeployDemo,但您可指定所需的任何 Amazon EC2 实例标签。

    aws ec2 create-tags --resources instance-id --tags Key=Name,Value=CodeDeployDemo

    您可以为一个实例同时应用多个标签。例如:

    aws ec2 create-tags --resources instance-id --tags Key=Name,Value=testInstance Key=Region,Value=West Key=Environment,Value=Beta

    要验证 Amazon EC2 实例是否已启动并通过所有检查,请使用实例 ID 调用describe-instance-status命令。

    aws ec2 describe-instance-status --instance-ids instance-id --query "InstanceStatuses[*].InstanceStatus.[Status]" --output text

如果实例已启动并通过所有检查,输出中将显示 ok

安装 CodeDeploy 代理

在 CodeDeploy 部署中使用 CodeDeploy 代理之前,必须先在 Amazon EC2 实例上安装该代理。有关更多信息,请参阅安 CodeDeploy

注意

在控制台中创建部署组时,可以配置 CodeDeploy 代理的自动安装和更新。