Spot 实例数据源
为了帮助您了解 Spot 实例 费用情况,Amazon EC2 通过提供的数据源说明 Spot 实例 使用情况和定价。此数据源会发送到您在订阅数据源时指定的 Amazon S3 存储桶。
数据源文件一般一小时到达您的存储桶一次,且每小时使用量一般都包含在单个数据文件中。这些文件在传送到您的存储桶前要进行压缩 (gzip)。当文件很大时(例如,当一小时的文件内容在压缩前超过 50 MB 时),Amazon EC2 可以将给定小时的使用情况写入多个文件。
如果在特定小时中没有 Spot 实例 运行,则您不会收到该小时的数据源文件。
数据源文件名和格式
Spot 实例数据源的文件名采用以下格式 (用 UTC 日期和时间):
bucket-name
.s3.amazonaws.com/optional-prefix
/aws-account-id.YYYY-MM-DD-HH.n.unique-id.gz
例如,如果您的存储桶名称为 my-bucket-name
并且前缀为 my-prefix
,则您的文件名类似如下:
my-bucket-name
.s3.amazonaws.com/my-prefix
/111122223333
.2019-03-17-20.001.pwBdGTJG.gz
有关存储桶名称的更多信息,请参阅 Amazon Simple Storage Service 开发人员指南中的存储桶命名规则。
Spot 实例数据源文件采用制表符分隔格式。数据文件的每一行都对应一小时实例使用时间,并且包含在下表中列出的字段。
字段 | 描述 |
---|---|
|
时间戳,其用于确定针对此实例使用收取的费用。 |
|
指示使用类型和被收取费用的实例类型。对于 |
|
指示被收取费用的产品。对于 Linux Spot 实例,此字段设置为 |
|
生成此实例使用的Spot 实例的 ID。 |
|
生成此实例使用的Spot 实例请求的 ID。 |
|
为此Spot 实例请求指定的最高价。 |
|
在 |
|
针对此实例使用收取的费用。 |
|
此记录的数据源文件名中包含的版本。 |
Amazon S3 存储桶要求
在您订阅数据源时,必须指定 Amazon S3 存储桶来存储数据源文件。在为数据源选择 Amazon S3 存储桶之前,请考虑以下内容:
-
您必须拥有存储桶的
FULL_CONTROL
权限,其中包括s3:GetBucketAcl
和s3: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
my-bucket-name
\ [--prefixmy-prefix
]
下面是示例输出:
{
"SpotDatafeedSubscription": {
"OwnerId": "111122223333",
"Bucket": "my-bucket-name
",
"Prefix": "my-prefix
",
"State": "Active"
}
}
删除您的 Spot 实例数据源
要删除数据源,请使用 delete-spot-datafeed-subscription 命令。
aws ec2 delete-spot-datafeed-subscription