Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Spot 实例数据源

为了帮助您了解 Spot 实例费用情况,Amazon EC2 通过提供的数据源说明 Spot 实例的使用情况和定价。此数据源会发送到您在订阅数据源时指定的 Amazon S3 存储桶。

数据源文件一般一小时到达您的存储桶一次,且每小时使用量一般都包含在单个数据文件中。这些文件在传送到您的存储桶前要进行压缩 (gzip)。当文件很大时 (例如,当一小时的文件内容在压缩前超过 50 MB 时),Amazon EC2 可以将给定小时的使用情况写入多个文件。

注意

如果在特定小时中没有Spot 实例运行,则您不会收到该小时的数据源文件。

数据源文件名和格式

Spot 实例数据源的文件名采用以下格式 (用 UTC 日期和时间):

bucket-name.s3.amazonaws.com.cn/{optional prefix}/aws-account-id.YYYY-MM-DD-HH.n.unique-id.gz

例如,如果您的存储桶名称为 myawsbucket 并且前缀为 myprefix,则您的文件名类似如下:

myawsbucket.s3.amazonaws.com.cn/myprefix/111122223333.2014-03-17-20.001.pwBdGTJG.gz

Spot 实例数据源文件采用制表符分隔格式。数据文件的每一行都对应一小时实例使用时间,并且包含在下表中列出的字段。

字段 描述

Timestamp

时间戳,其用于确定针对此实例使用收取的费用。

UsageType

指示使用类型和被收取费用的实例类型。对于 m1.small Spot 实例,此字段设置为 SpotUsage。对于所有其他实例类型,此字段设置为 SpotUsage:{instance-type}。例如:SpotUsage:c1.medium

Operation

指示被收取费用的产品。对于 Linux Spot 实例,此字段设置为 RunInstances。对于 Windows Spot 实例,此字段设置为 RunInstances:0002。Spot 使用情况按照可用区分组。

InstanceID

生成此实例使用的Spot 实例的 ID。

MyBidID

生成此实例使用的Spot 实例请求的 ID。

MyMaxPrice

为此Spot 实例请求指定的最高价。

MarketPrice

Timestamp 字段中指定的时刻的 Spot 价格。

Charge

针对此实例使用收取的费用。

Version

此记录的数据源文件名中包含的版本。

Amazon S3 存储桶要求

在您订阅数据源时,必须指定 Amazon S3 存储桶来存储数据源文件。在为数据源选择 Amazon S3 存储桶之前,请考虑以下内容:

  • 您必须拥有存储桶的 FULL_CONTROL 权限,其中包括 s3:GetBucketAcls3:PutBucketAcl 操作的权限。

    如果您是存储桶所有者,根据默认情况,您有此权限。或者,存储桶拥有者必须授予您的 AWS 账户此权限。

  • 在您订阅数据源时,这些权限用于更新存储桶 ACL,以向 AWS 数据源账户提供 FULL_CONTROL 权限。AWS 数据源账户会将数据源文件写入存储桶。如果您的账户没有所需权限,则数据源文件无法写入存储桶。

    注意

    如果您更新 ACL 并删除 AWS 数据源账户的权限,则数据源文件无法写入存储桶。您必须重新订阅数据源以接收数据源文件。

  • 每一个数据源文件都有其自己的 ACL (不同于存储桶的 ACL)。存储桶拥有者具有数据文件的 FULL_CONTROL 权限。AWS 数据源账户具有读取和写入权限。

  • 如果您删除您的数据源订阅,Amazon EC2 不会撤销 AWS 数据源账户在存储桶或数据文件上的读取和写入权限。您必须自行撤销这些权限。

订阅您的Spot 实例数据源

要订阅您的数据源,请使用以下 create-spot-datafeed-subscription 命令:

aws ec2 create-spot-datafeed-subscription --bucket myawsbucket [--prefix myprefix]

下面是示例输出:

{ "SpotDatafeedSubscription": { "OwnerId": "111122223333", "Prefix": "myprefix", "Bucket": "myawsbucket", "State": "Active" } }

删除您的Spot 实例数据源

要删除数据源,请使用以下 delete-spot-datafeed-subscription 命令:

aws ec2 delete-spot-datafeed-subscription