使用 Spot 執行個體資料饋送追蹤 Spot 執行個體成本 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Spot 執行個體資料饋送追蹤 Spot 執行個體成本

為了協助您了解 Spot 執行個體的費用,Amazon EC2 提供描述 Spot 執行個體用量和定價的資料輸入。當您訂閱資料摘要時,此資料摘要會傳送到您所指定的 Amazon S3 儲存貯體。

資料饋送檔案通常會每小時到達您的儲存貯體一次。如果在某個小時內沒有執行 Spot 執行個體,您不會收到那個小時的資料摘要檔案。

Spot 執行個體的每小時用量通常涵蓋在單一資料檔案中。這些檔案在傳送到您的儲存貯體之前,會先經過壓縮 (gzip)。Amazon EC2 可以在檔案較大的指定使用時數內寫入多個檔案 (例如,當該小時的檔案內容在壓縮前超過 50 MB 時)。

注意

每個 只能建立一個 Spot 執行個體資料饋送 AWS 帳戶。

除中國 AWS (北京)、中國 (寧夏)、 AWS GovCloud (美國) 和預設停用的區域外,所有區域都支援 Spot 執行個體資料饋送。

資料摘要檔案名稱與格式

Spot 執行個體資料饋送檔案名稱使用以下格式 (日期和時間以 UTC 表示):

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

例如,如果儲存貯體的名稱為 amzn-s3-demo-bucket、前綴字首為 my-prefix,則檔案名稱會類似於下列名稱:

amzn-s3-demo-bucket.s3.amazonaws.com/my-prefix/111122223333.2023-12-09-07.001.b959dbc6.gz

如需儲存貯體名稱的詳細資訊,請參閱《Amazon S3 使用者指南》中的儲存貯體命名規則

Spot 執行個體資料摘要檔案以製表符 (tab) 分隔。資料檔案中的每一行皆對應至一個執行個體小時,而且包含下表中所列出的欄位。

欄位 描述

Timestamp

時間戳記,用來判定使用此執行個體的收費價格。

UsageType

計費的使用類型和執行個體類型。對於 m1.small 競價型執行個體,此欄位設定為 SpotUsage。如果是其他所有的執行個體類型,此欄位會設定為 SpotUsage:{instance-type}。例如:SpotUsage:c1.medium

Operation

收費的產品。若是 Linux 競價型執行個體,此欄位會設定為 RunInstances。若是 Windows 競價型執行個體,此欄位會設定為 RunInstances:0002。Spot 的使用會根據可用區域分組。

InstanceID

產生此執行個體用量的 Spot 執行個體的 ID。

MyBidID

產生此執行個體用量的 Spot 執行個體請求的 ID。

MyMaxPrice

針對此 Spot 請求所指定的最高價格。

MarketPrice

Timestamp 欄位中所指定時間點當時的 Spot 價格。

Charge

針對此執行個體用量的計費價格。

Version

資料饋送版本。可用的版本為 1.0。

Amazon S3 儲存貯體需求

訂閱資料摘要時,您必須指定用來存放資料摘要檔案的 Amazon S3 儲存貯體。

在選擇資料摘要的 Amazon S3 儲存貯體之前,請考量下列事項:

  • 您必須具有儲存貯體的 FULL_CONTROL 許可。如果您是儲存貯體擁有者,預設會具有此項權限。否則,儲存貯體擁有者必須授予您的 AWS 帳戶 此許可。

  • 當您訂閱 data feed 時,這些許可會用來更新儲存貯體 ACL,以授予 AWS data feed 帳戶FULL_CONTROL許可。 AWS 資料饋送帳戶會將資料饋送檔案寫入儲存貯體。如果您的帳戶沒有所需的權限,則資料摘要檔案無法寫入儲存貯體。如需詳細資訊,請參閱 AmazonWord Logs 使用者指南中的傳送至 Amazon S3 的日誌 CloudWatch

    如果您更新 ACL 並移除 AWS data feed 帳戶的許可,則無法將 data feed 檔案寫入儲存貯體。您必須重新訂閱資料摘要,以接收資料摘要檔案。

  • 每個資料饋送檔案都有自己的 ACL (與儲存貯體的 ACL 分開)。儲存貯體擁有者具有對資料檔案的 FULL_CONTROL 權限。 AWS 資料饋送帳戶具有讀取和寫入許可。

  • 如果您刪除資料饋送訂閱,Amazon EC2 不會移除儲存貯體或資料檔案上 AWS 資料饋送帳戶的讀取和寫入許可。您必須自行移除這些權限。

  • 如果您使用伺服器端加密以及存放在 AWS Key Management Service (SSE-KMS) 中的 AWS KMS 金鑰來加密 Amazon S3 儲存貯體,則必須使用客戶受管金鑰。如需詳細資訊,請參閱 AmazonWord Logs 使用者指南中的 Amazon S3 儲存貯體伺服器端加密 CloudWatch

訂閱 Spot 執行個體資料摘要

若要訂閱資料摘要,請使用 create-spot-datafeed-subscription AWS CLI 命令。

aws ec2 create-spot-datafeed-subscription \ --bucket amzn-s3-demo-bucket \ [--prefix my-prefix]

以下是輸出範例。

{ "SpotDatafeedSubscription": { "OwnerId": "111122223333", "Bucket": "amzn-s3-demo-bucket", "Prefix": "my-prefix", "State": "Active" } }

如果您收到儲存貯體沒有足夠的許可的錯誤,請參閱以下文章以取得故障診斷資訊:故障診斷 Spot 執行個體的 Data Feed

檢視資料饋送中的資料

在 中 AWS Management Console,開啟 AWS CloudShell。使用下列 s3 同步命令,從資料饋送的 S3 儲存貯體取得 .gz 檔案,並將其存放在您指定的資料夾中。

aws s3 sync s3://amzn-s3-demo-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

刪除 Spot 執行個體資料摘要

若要刪除資料饋送,請使用 delete-spot-datafeed-subscription AWS CLI 命令。

aws ec2 delete-spot-datafeed-subscription