Amazon EC2 竞价型实例集角色 - AWS Batch

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

Amazon EC2 竞价型实例集角色

如果创建一个使用 Amazon EC2 竞价型实例集实例的托管计算环境,则必须创建AmazonEC2SpotFleetTaggingRole策略。该政策授权竞价型实例集代表您启动、标记和终止实例。在竞价型实例集请求中指定该角色。还必须具有适用于 Amazon EC2 Spot 和竞价型实例集的 AWSServiceRoleForEC2SpotAWSServiceRoleForEC2SpotFleet 服务相关角色。请按照以下说明以创建所有这些角色。有关更多信息,请参阅《IAM 用户指南》中的使用服务相关角色创建将权限委托给AWS服务的角色

在AWS Management Console中创建 Amazon EC2 竞价型实例集角色

要创建适用于 Amazon EC2 竞价型实例集的AmazonEC2SpotFleetTaggingRole IAM 服务相关角色
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 访问管理下,请选择角色

  3. 对于角色,选择创建角色

  4. 为可信实体类型选择可信实体中,选择AWS 服务

  5. 对于其他AWS 服务用例,请选择EC2,然后选择 EC2 - 竞价型实例集标记

  6. 选择下一步

  7. 策略名称权限策略中,验证AmazonEC2SpotFleetTaggingRole

  8. 选择下一步

  9. 对于名称,请查看并创建

    1. 对于命名标签,输入用于标识角色的名称。

    2. 描述中,输入策略的简短解释。

    3. (可选)对于步骤 1:选择可信实体,选择编辑以修改代码。

    4. (可选)对于步骤 2:添加权限,选择编辑以修改代码。

    5. (可选)对于添加标签,选择添加标签以向资源添加标签。

    6. 选择创建角色

注意

过去,Amazon EC2 竞价型实例集角色有两个托管策略。

  • AmazonEC2SpotFleetRole:这是竞价型实例集角色的初始托管策略。但是,不再建议将其与AWS Batch一起使用。此策略不支持计算环境中的竞价型实例标记,这是使用AWSServiceRoleForBatch服务相关角色所必需的。如果以前是使用此策略创建的竞价型实例集角色,请将新的推荐策略应用于该角色。有关更多信息,请参阅创建时未标记的竞价型实例

  • AmazonEC2SpotFleetTaggingRole:该角色提供标记 Amazon EC2 竞价型实例的所需的所有权限。使用此角色允许在AWS Batch计算环境中标记竞价型实例。

使用AWS CLI创建 Amazon EC2 竞价型实例集角色

要为竞价型实例集计算环境创建 AmazonEC2SpotFleetTaggingRole IAM 角色
  1. 使用AWS CLI运行以下命令。

    $ aws iam create-role --role-name AmazonEC2SpotFleetTaggingRole \ --assume-role-policy-document '{ "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal": { "Service":"spotfleet.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }'
  2. 要将 AmazonEC2SpotFleetTaggingRole 托管 IAM policy 附加到AmazonEC2SpotFleetTaggingRole 角色上,请使用AWS CLI运行以下命令。

    $ aws iam attach-role-policy \ --policy-arn \ arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole \ --role-name \ AmazonEC2SpotFleetTaggingRole
创建适用于 Amazon EC2 Spot 的 AWSServiceRoleForEC2Spot IAM 服务相关角色
注意

如果AWSServiceRoleForEC2Spot IAM 服务相关角色已存在,则会出现类似于以下内容的错误消息。

An error occurred (InvalidInput) when calling the CreateServiceLinkedRole operation: Service role name AWSServiceRoleForEC2Spot has been taken in this account, please try a different suffix.
  • 使用AWS CLI运行以下命令。

    $ aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
要创建适用于 Amazon EC2 竞价型实例集的AWSServiceRoleForEC2SpotFleet IAM 服务相关角色
注意

如果AWSServiceRoleForEC2SpotFleet IAM 服务相关角色已存在,则会出现类似于以下内容的错误消息。

An error occurred (InvalidInput) when calling the CreateServiceLinkedRole operation: Service role name AWSServiceRoleForEC2SpotFleet has been taken in this account, please try a different suffix.
  • 使用AWS CLI运行以下命令。

    $ aws iam create-service-linked-role --aws-service-name spotfleet.amazonaws.com