竞价型实例数据源
为了帮助您了解竞价型实例的费用情况,Amazon EC2 通过提供的数据源说明竞价型实例使用情况和定价。此数据源会发送到您在订阅数据源时指定的 Amazon S3 存储桶。
数据源文件一般一小时到达您的存储桶一次,且每小时使用量一般都包含在单个数据文件中。这些文件在传送到您的存储桶前要进行压缩 (gzip)。当文件很大时(例如,当一小时的文件内容在压缩前超过 50 MB 时),Amazon EC2 可以将给定小时的使用情况写入多个文件。
注意
您只能为每个 AWS 账户 创建一个竞价型实例数据源。如果在特定小时中没有竞价型实例运行,则您不会收到该小时的数据源文件。
在所有 AWS 区域中,Spot 实例数据源均支持除中国 (北京)、中国 (宁夏)、AWS GovCloud (US) 和预设情况下禁用的区域。
数据源文件名和格式
竞价型实例数据源的文件名采用以下格式 (用 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.2023-12-09-07.001.b959dbc6.gz
有关存储桶名称的更多信息,请参阅《Amazon S3 用户指南》中的存储桶命名规则。
竞价型实例数据源文件采用制表符分隔格式。数据文件的每一行都对应一小时实例使用时间,并且包含在下表中列出的字段。
字段 | 描述 |
---|---|
|
时间戳,其用于确定针对此实例使用收取的费用。 |
|
指示使用类型和被收取费用的实例类型。对于 |
|
指示被收取费用的产品。对于 Linux 竞价型实例,此字段设置为 |
|
生成此实例使用的竞价型实例的 ID。 |
|
生成此实例使用的竞价型实例请求的 ID。 |
|
为此竞价型请求指定的最高价。 |
|
在 |
|
针对此实例使用收取的费用。 |
|
数据源版本。1.0为可行的版本。 |
Amazon S3 存储桶要求
在您订阅数据源时,必须指定 Amazon S3 存储桶来存储数据源文件。
在为数据源选择 Amazon S3 存储桶之前,请考虑以下内容:
-
必须拥有对存储桶的
FULL_CONTROL
权限。如果您是存储桶拥有者,根据默认情况,您有此权限。否则,存储桶拥有者必须向您的 AWS 账户 授予此权限。 -
在您订阅数据源时,这些权限用于更新存储桶 ACL,以向 AWS 数据源账户提供
FULL_CONTROL
权限。AWS 数据源账户会将数据源文件写入存储桶。如果您的账户没有所需权限,则数据源文件无法写入存储桶。有关的更多信息,请参阅《Amazon CloudWatch Logs 用户指南》中的 发送到 Amazon S3 的日志。注意
如果您更新 ACL 并删除 AWS 数据源账户的权限,则数据源文件无法写入存储桶。您必须重新订阅数据源以接收数据源文件。
-
每一个数据源文件都有其自己的 ACL (不同于存储桶的 ACL)。存储桶拥有者具有数据文件的
FULL_CONTROL
权限。AWS 数据源账户具有读取和写入权限。 -
如果对存储桶应用了禁用的 ACL,请添加允许具有完全控制权的用户向存储桶写入数据的存储桶策略。有关更多信息,请参阅查看和更新存储桶策略。
-
如果您删除您的数据源订阅,Amazon EC2 不会撤销AWS数据源账户在存储桶或数据文件上的读取和写入权限。您必须自行撤销这些权限。
-
如果您使用 AWS Key Management Service(SSE-KMS)中存储的 AWS KMS 密钥通过服务器端加密来加密 Amazon S3 存储桶,您必须使用客户托管密钥。有关更多信息,请参阅 Amazon CloudWatch Logs 用户指南中的 Amazon S3 存储桶服务器端加密。
注意
对于竞价型实例数据馈送,生成 S3 文件的资源不再是 Amazon CloudWatch Logs。因此,您必须从 S3 存储桶权限策略和 KMS 策略中删除
aws:SourceArn
部分。
订阅竞价型实例数据源
要订阅您的数据源,请使用 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"
}
}
描述您的竞价型实例数据源
要描述您的数据源订阅,请使用 describe-spot-datafeed-subscription 命令。
aws ec2 describe-spot-datafeed-subscription
示例输出
{
"SpotDatafeedSubscription": {
"OwnerId": "123456789012",
"Prefix": "spotdata",
"Bucket": "my-s3-bucket",
"State": "Active"
}
}
查看数据源中的数据
在 AWS Management Console 中,打开 AWS CloudShell。使用以下 s3 sync 命令从 S3 存储桶中获取数据源的 .gz 文件,并将文件存储到指定的文件夹。
aws s3 sync s3://
my-s3-bucket
./data-feed
要显示 .gz 文件的内容,请切换到存储 S3 存储桶内容的文件夹。
cd
data-feed
使用 ls 命令查看文件名称。使用带有文件名的 zcat 命令来显示压缩文件的内容。示例命令如下。
zcat
111122223333.2023-12-09-07.001.b959dbc6
.gz
下面是示例输出。
#Version: 1.0 #Fields: Timestamp UsageType Operation InstanceID MyBidID MyMaxPrice MarketPrice Charge Version 2023-12-09 07:13:47 UTC USE2-SpotUsage:c7a.medium RunInstances:SV050 i-0c3e0c0b046e050df sir-pwq6nmfp 0.0510000000 USD 0.0142000000 USD 0.0142000000 USD 1
描述您的竞价型实例数据源
要删除数据源,请使用 delete-spot-datafeed-subscription 命令。
aws ec2 delete-spot-datafeed-subscription