本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 CodeDeploy 创建 Amazon EC2 实例(AWS CLI 或 Amazon EC2 控制台)
这些说明向您介绍如何启动配置为在 CodeDeploy 部署中使用的新 Amazon EC2 实例。
您可使用 CloudFormation 模板启动已配置为在 CodeDeploy 部署中使用的运行 Amazon Linux 或 Windows Server 的 Amazon EC2 实例。我们不为运行 Ubuntu Server 或 Red Hat Enterprise Linux(RHEL)的 Amazon EC2 实例提供 CloudFormation 模板。有关模板使用的替代方法,请参阅使用适用于 CodeDeploy 的实例。
您可以使用 Amazon EC2 控制台、AWS CLI 或 Amazon EC2 API 启动 Amazon EC2 实例。
启动 Amazon EC2 实例(控制台)
先决条件
如果您尚未这样做,请按照入门 CodeDeploy中的说明进行操作来设置和配置 AWS CLI 并创建 IAM 实例配置文件。
启动 Amazon EC2 实例
登录到 AWS 管理控制台 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/
)。 -
在导航窗格中,选择 Instances(实例),然后选择 Launch Instance(启动实例)。
-
在 Step 1: Choose an Amazon Machine Image(AMI)(步骤 1: 选择 Amazon 系统映像(AMI))页上,从 Quick Start(快速启动)选项卡中,找到要使用的操作系统和版本,然后选择 Select(选择)。您必须选择一个由 CodeDeploy 支持的 Amazon EC2 AMI 操作系统。有关更多信息,请参阅 CodeDeploy 代理支持的操作系统。
-
在步骤 2: 选择一个实例类型页上,选择任何可用的 Amazon EC2 实例类型,然后选择下一步: 配置实例详细信息。
-
在步骤 3:配置实例详细信息页上的 IAM 角色列表中,选择您在步骤 4:为您的 Amazon 实例创建 IAM EC2 实例配置文件中创建的 IAM 实例角色。如果您使用建议的角色名称,则选择
CodeDeployDemo-EC2-Instance-Profile。如果您创建了自己的角色名称,请选择该名称。注意
如果网络列表中未显示默认虚拟私有云(VPC),则必须选择或创建 Amazon VPC 和子网。选择新建 VPC 和/或新建子网。有关更多信息,请参阅您的 VPC 和子网。
-
选择下一步:添加存储。
-
将 Step 4: Add Storage(步骤 4: 添加存储)页保持不变,然后选择 Next: Add Tags(下一步: 添加标签)。
-
在 Step 5: Add Tags(步骤 5: 添加标记)页面上,选择 Add Tag(添加标记)。
-
在 Key(键)框中,键入
Name。在 Value(值)框中,键入CodeDeployDemo。重要
Key(键)和 Value(值)框的内容是区分大小写的。
-
选择 Next: Configure Security Group。
-
在 Step 6: Configure Security Group(步骤 6: 配置安全组)页上,将 Create a new security group(创建新安全组)选项保持选中状态。
将为运行 Amazon Linux、Ubuntu Server 或 RHEL 的 Amazon EC2 实例配置默认 SSH 角色。将为运行 Windows Server 的 Amazon EC2 实例配置默认 RDP 角色。
-
如果您要打开 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。CodeDeploy 不需要无限制的端口访问,也不需要 HTTP 访问。有关更多信息,请参阅有关保护您的 Amazon EC2 实例的提示
。 如果 Boot from General Purpose(SSD)(由通用(SSD)启动)对话框出现,请遵循说明,然后选择 Next(下一步)。
-
将 Step 7: Review Instance Launch(步骤 7: 查看实例启动)页保持不变,然后选择 Launch(启动)。
-
在 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 实例,则必须具有密钥对。
-
选择启动新实例。
-
选择 Amazon EC2 实例的 ID。在实例启动并通过所有检查之前,请不要继续。
安装 CodeDeploy 代理
在 CodeDeploy 部署中使用 CodeDeploy 代理之前,必须先在您的 Amazon EC2 实例上安装该代理。有关更多信息,请参阅 安装 CodeDeploy 代理。
注意
在控制台中创建部署组时,可以配置 CodeDeploy 代理的自动安装和更新。
启动 Amazon EC2 实例(CLI)
先决条件
如果您尚未这样做,请按照入门 CodeDeploy中的说明进行操作来设置和配置 AWS CLI 并创建 IAM 实例配置文件。
启动 Amazon EC2 实例
-
仅针对 Windows Server 如果您要创建运行 Windows Server 的 Amazon EC2 实例,请调用 create-security-group 和 authorize-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 3389aws 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 实例的提示
。 -
调用 run-instances 命令以创建并启动 Amazon EC2 实例。
在您调用此命令之前,您需要收集以下内容:
-
将用于此实例的 Amazon 系统映像(AMI)的 ID(
ami-id)。要获取此 ID,请参阅查找合适的 AMI。 -
您将创建的 Amazon EC2 实例的类型(
instance-type)的名称,如t1.micro。有关列表,请参阅 Amazon EC2 实例类型。 -
IAM 实例配置文件的名称,该文件有权访问 Amazon S3 存储桶,其中存储着您的区域的 CodeDeploy 代理安装文件。
有关创建 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 创建您的密钥对。请务必在《AWS 一般参考》的区域和终端节点中列出的其中一个区域中创建密钥对。否则,您无法将 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-idami-id\ --key-namekey-name\ --count 1 \ --instance-typeinstance-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-idami-id--key-namekey-name--count 1 --instance-typeinstance-type--iam-instance-profile Name=iam-instance-profile--security-groups CodeDeploy-Windows-Security-Group这些命令将使用指定的 AMI 实例配置文件启动一个具有指定的 AMI、密钥对和实例类型的 Amazon EC2 实例,并在启动过程中运行指定脚本。
-
-
记下输出中的
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 --resourcesinstance-id--tags Key=Name,Value=CodeDeployDemo您可以为一个实例同时应用多个标签。例如:
aws ec2 create-tags --resourcesinstance-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-idsinstance-id--query "InstanceStatuses[*].InstanceStatus.[Status]" --output text
如果实例已启动并通过所有检查,输出中将显示 ok。
安装 CodeDeploy 代理
在 CodeDeploy 部署中使用 CodeDeploy 代理之前,必须先在您的 Amazon EC2 实例上安装该代理。有关更多信息,请参阅 安装 CodeDeploy 代理。
注意
在控制台中创建部署组时,可以配置 CodeDeploy 代理的自动安装和更新。