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

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

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

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

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

您可以使用一个 Amazon EC2 控制台或一个 Amazon EC2 控制台或一个 Amazon EC2 实例。Amazon CLI

启动一个 Amazon EC2 实例(控制台)

先决条件

如果您尚未配置,请按照中的说明设置和配置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. 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 角色列表中,选择您在中创建的 IAM 实例角色步骤 4:为您的 Amazon 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 实例密钥对,请选择创建新密钥对并为密钥对指定一个可识别的名称。选择下载key pa ir,将 Amazon EC2 实例密钥对下载到您的计算机。

    重要

    如果您想通过 SSH 或 RDP 访问您的 Amazon EC2 实例,则必须拥有key pair。

  15. 选择 Launch Instances

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

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

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

    • Amazon EC2 实例key pair 的名称(密钥名称),用于启用 SSH 访问运行亚马逊 Linux、Ubuntu Server 的Amazon EC2 实例,或者通过 RHEL 或 RDP 访问运行 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 Web Services 一般参考。否则,您将无法使用 Amazon EC2 实例key pairCodeDeploy。

    适用于一个 Amazon Linux、RHEL 和 Ubuntu Server

    调用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 服务器

    调用run-instances命令启动运行 Windows Server 的 Amazon EC2 实例并附加您在中步骤 4:为您的 Amazon EC2 实例创建 IAM 实例配置文件创建的 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 的值。如果您忘记了此值,则可以稍后通过调用 Amazon EC2 实例key pair 的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 代理的自动安装和更新。