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

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

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

这些说明向您展示了如何启动配置为用于 CodeDeploy 部署的新 Amazon EC2 实例。

您可以使用我们的 Amazon CloudFormation 模板启动运行亚马逊 Linux 或 Windows 服务器的 Amazon EC2 实例,该实例已配置为用于 CodeDeploy 部署。我们不为运行 Ubuntu 服务器或红帽企业 Linux (RHEL) 的 Amazon EC2 实例提供 Amazon CloudFormation 模板。有关模板使用的替代方法,请参阅使用以下实例 CodeDeploy

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

启动 Amazon EC2 实例(控制台)

先决条件

如果您尚未执行此操作,请按照中的入门 CodeDeploy说明设置和配置 Amazon CLI 并创建 IAM 实例配置文件。

启动 Amazon EC2 实例

  1. 登录 Amazon Web Services Management Console 并打开亚马逊 EC2 控制台,网址为 https://console.aws.amazon.com/ec2/

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

  3. Step 1: Choose an Amazon Machine Image(AMI)(步骤 1: 选择 Amazon 系统映像(AMI))页上,从 Quick Start(快速启动)选项卡中,找到要使用的操作系统和版本,然后选择 Select(选择)。您必须选择支持的 Amazon EC2 AMI 操作系统 CodeDeploy。有关更多信息,请参阅 CodeDeploy 代理支持的操作系统

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

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

    注意

    如果网络列表中未显示默认虚拟私有云(VPC),则必须选择或创建 Amazon VPC 和子网。选择新建 VPC 和/或新建子网。有关更多信息,请参阅您的 VPC 和子网

  6. 选择下一步:添加存储

  7. Step 4: Add Storage(步骤 4: 添加存储)页保持不变,然后选择 Next: Add Tags(下一步: 添加标签)

  8. Step 5: Add Tags(步骤 5: 添加标记)页面上,选择 Add Tag(添加标记)

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

    重要

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

  10. 选择 Next: Configure Security Group

  11. Step 6: Configure Security Group(步骤 6: 配置安全组)页上,将 Create a new security group(创建新安全组)选项保持选中状态。

    将为运行 Amazon Linux、Ubuntu Server 或 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 端口的访问,而不是指定 Anywhere 0.0.0.0/0。 CodeDeploy 不需要不受限制的端口访问,也不需要 HTTP 访问。有关更多信息,请参阅有关保护您的 Amazon EC2 实例的提示

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

  13. Step 7: Review Instance Launch(步骤 7: 查看实例启动)页保持不变,然后选择 Launch(启动)

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

    如果您尚未拥有 Amazon EC2 实例密钥对,请选择创建新密钥对并为密钥对指定一个可识别的名称。选择下载密钥对以将 Amazon EC2 实例密钥对下载到您的计算机。

    重要

    如果您需要使用 SSH 或 RDP 访问您的 Amazon EC2 实例,则必须具有密钥对。

  15. 选择启动新实例

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

安装代 CodeDeploy 理

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

注意

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

启动 Amazon EC2 实例(CLI)

先决条件

如果您尚未执行此操作,请按照中的入门 CodeDeploy说明设置和配置 Amazon CLI 并创建 IAM 实例配置文件。

启动 Amazon EC2 实例

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

    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 实例的类型(instance-type)的名称,如 t1.micro。有关列表,请参阅 Amazon EC2 实例类型

    • 有权访问存储您所在地区的 CodeDeploy 代理安装文件的 Amazon S3 存储桶的 IAM 实例配置文件的名称。

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

    • Amazon EC2 实例密钥对(key-name)的名称,用于允许通过 SSH 访问运行 Amazon Linux、Ubuntu Server 或 RHEL 的 Amazon EC2 实例,或者通过 RDP 访问运行 Windows Server 的 Amazon EC2 实例。

      重要

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

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

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

    对于 Amazon Linux、RHEL 和 Ubuntu Server

    旨在调用 run-instances 命令以启动运行 Amazon Linux、Ubuntu Server 或 RHEL 的 Amazon EC2 实例并附加您在步骤 4:为您的 Amazon IAM 实例创建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 实例、附加您在步骤 4:为您的 Amazon IAM 实例创建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

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

  3. 记下输出中的 InstanceID 的值。如果您忘记此值,可稍后通过对 Amazon EC2 实例密钥对调用 describe-instances 命令来获取它。

    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 代理的自动安装和更新。