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

配置 Amazon EC2 实例,使其与 CodeDeploy 配合使用

这些说明展示了如何配置运行 Amazon Linux、Ubuntu Server、Red Hat Enterprise Linux(RHEL)或 Windows Server 的 Amazon EC2 实例,以便在 CodeDeploy 部署中使用。

注意

如果您没有 Amazon EC2 实例,可以使用 Amazon CloudFormation 模板启动一个运行 Amazon Linux 或 Windows Server 的实例。我们不提供适用于 Ubuntu Server 或 RHEL 的模板。

步骤 1:验证 IAM 实例配置文件是否已附加到 Amazon EC2 实例

  1. 登录 Amazon Web Services 管理控制台,打开 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. 在导航窗格中,选择角色

  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 实例。使用使用适用于 CodeDeploy 的实例中的信息停止并创建 Amazon EC2 实例。

    如果有显示身份提供商 ec2.amazonaws.com 的条目,并且您仅将应用程序存储在 GitHub 存储库中,则向前跳到步骤 3:为 Amazon EC2 实例添加标签

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

  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"}]}

    也可能如下所示:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "*" } ] }

    如果 "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:::amzn-s3-demo-bucket/*", "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 EC2 实例上安装 Amazon CodeDeploy 代理

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