配置 Amazon EC2 实例以使用 CodeDeploy - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

配置 Amazon EC2 实例以使用 CodeDeploy

这些说明向您展示了如何配置运行亚马逊 Linux、Ubuntu 服务器、红帽企业 Linux (RHEL) 或 Windows 服务器的 Amazon EC2 实例,以便在 CodeDeploy 部署中使用。

注意

如果您没有 Amazon EC2 实例,可使用Amazon CloudFormation模板来启动一个运行亚马逊 Linux 或 Windows 服务器的模板。我们不提供 Ubuntu Server 或 RHEL 的模板。

第 1 步:验证 IAM 实例配置文件已附加到您的 Amazon EC2 实例

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

  2. 在导航窗格中的 Instances 下,选择 Instances

  3. 浏览并在列表中选择您的 Amazon EC2 实例。

  4. 在详细信息窗格中的说明选项卡中的值,请注意IAM 角色字段,然后继续下一部分。

    如果该字段为空,您可以向实例附加 IAM 实例配置文件。想要了解有关信息,请参阅将 IAM 角色附加到实例.

第 2 步:验证附加的 IAM 实例配置文件具有正确的访问权限

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Roles(角色)

  3. 浏览并选择您在上一部分的步骤 4 中记下的 IAM 角色名称。

    注意

    如果您希望使用由 Amazon CloudFormation 模板生成的服务角色,而不使用您按照第 2 步:为 CodeDeploy 创建服务角色中的说明创建的服务角色,请注意以下事项:

    在我们的某些版本中Amazon CloudFormation模板,生成并附加到 Amazon EC2 实例的 IAM 实例配置文件的显示名称与 IAM 控制台中的显示名称不相同。例如,IAM 实例配置文件的显示名称可能为CodeDeploySampleStack-expnyi6-InstanceRoleInstanceProfile-IK8J8A9123EX,而 IAM 控制台中的 IAM 实例配置文件的显示名称可能为CodeDeploySampleStack-expnyi6-InstanceRole-C5P33V1L64EX.

    为帮助您标识 IAM 控制台中的实例配置文件,您将看到CodeDeploySampleStack-expnyi6-InstanceRole两者都是相同的。有关这些显示名称可能不同的原因的信息,请参阅实例配置文件.

  4. 选择 Trust Relationships 选项卡。如果没有进入受信任实体读取选项提供商 ec2.amazonaws.com,则您无法使用此 Amazon EC2 实例。使用中的信息停止并创建 Amazon EC2 实例使用 CodeDeploy 的实例.

    如果有显示的条目选项提供商 ec2.amazonaws.com,并且您只需要将应用程序存储在 GitHub 存储库中,请向前跳到第 3 步:为 Amazon EC2 实例添加标签.

    如果有显示的条目选项提供商 ec2.amazonaws.com,并且您要将应用程序存储在 Amazon S3 存储桶中,选择Permissions (权限)选项卡。

  5. 如果权限策略区域中有一个策略,则展开该策略,然后选择编辑策略

  6. 选择 JSON 选项卡。如果您将应用程序存储在 Amazon S3 存储桶中,请确保"s3:Get*""s3:List*"位于指定操作的列表中。

    它可能如下所示:

    {"Statement":[{"Resource":"*","Action":[ ... Some actions may already be listed here ... "s3:Get*","s3:List*" ... Some more actions may already be listed here ... ],"Effect":"Allow"}]}

    也可能如下所示:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ ... Some actions may already be listed here ... "s3:Get*", "s3:List*" ... Some more actions may already be listed here ... ], ... } ] }

    如果 "s3:Get*""s3:List*" 不在指定操作列表中,请选择 Edit 添加它们,然后选择 Save。(如果 "s3:Get*""s3:List*" 都不是列表中的最后一个操作,请确保在操作后添加逗号,以便策略文档进行验证。)

    注意

    我们建议您将此策略限制为您的 Amazon EC2 实例必须访问的 Amazon S3 存储桶。请确保授予对包含 CodeDeploy 代理的 Amazon S3 存储桶的访问权限。否则,在实例上安装或更新 CodeDeploy 代理时可能会出现错误。例如:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-cn-north-1/*", "arn:aws:s3:::aws-codedeploy-cn-northwest-1/*" ] } ] }

第 3 步:为 Amazon EC2 实例添加标签

有关如何标记 Amazon EC2 实例以便 CodeDeploy 可以在部署过程中找到它的说明,请参阅在控制台中使用标签,然后返回此页。

注意

您可以使用所需的任何密钥和值标记 Amazon EC2 实例。只需确保在部署到此实例时指定此密钥和值即可。

第 4 步:安装Amazon CodeDeployAmazon EC2 实例上的代理

有关如何在 Amazon EC2 实例上安装 CodeDeploy 代理并验证其是否运行的说明,请参阅管理 CodeDeploy 代理操作,然后执行使用 CodeDeploy 创建应用程序.