

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

# 使用 Spot 執行個體資料摘要追蹤 Spot 執行個體成本
<a name="spot-data-feeds"></a>

為協助您了解 Spot 執行個體的費用，Amazon EC2 提供了資料摘要來說明您的 Spot 執行個體使用狀況和定價。當您訂閱資料摘要時，此資料摘要會傳送到您所指定的 Amazon S3 儲存貯體。

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

Spot 執行個體的每小時使用量通常涵蓋在單一資料檔案中。這些檔案在傳送到您的儲存貯體之前，會先經過壓縮 (gzip)。如果有特定某小時的使用狀況，產生了大型檔案，則 Amazon EC2 可以寫入多個檔案 (例如，當該小時的檔案內容在壓縮前已超過 50 MB 時)。

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

除中國 AWS （北京）、中國 （寧夏）、 AWS GovCloud （美國） 和[預設停用的區域](using-regions-availability-zones.md#concepts-available-regions)以外，所有區域都支援 Spot 執行個體資料饋送。

**Topics**
+ [資料摘要檔案名稱與格式](#using-spot-instances-format)
+ [Amazon S3 儲存貯體需求](#using-spot-instances-dfs3)
+ [訂閱 Spot 執行個體資料摘要](#using-spot-instances-datafeed-all)
+ [檢視資料饋送中的資料](#using-spot-instances-datafeed-view-data)
+ [刪除 Spot 執行個體資料摘要](#using-spot-instances-datafeed-delete)

## 資料摘要檔案名稱與格式
<a name="using-spot-instances-format"></a>

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 使用者指南」**中的[儲存貯體命名規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)。

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


|  欄位  |  描述  | 
| --- | --- | 
|   `Timestamp`   |  時間戳記，用來判定使用此執行個體的收費價格。  | 
|   `UsageType`   |  計費的使用類型和執行個體類型。對於 `m1.small` 競價型執行個體，此欄位設定為 `SpotUsage`。如果是其他所有的執行個體類型，此欄位會設定為 `SpotUsage:`\$1*instance-type*\$1。例如：`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 儲存貯體需求
<a name="using-spot-instances-dfs3"></a>

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

在選擇資料摘要的 Amazon S3 儲存貯體之前，請考量下列事項：
+ 您必須具有儲存貯體的 `FULL_CONTROL` 許可。如果您是儲存貯體擁有者，預設會具有此項權限。否則，儲存貯體擁有者必須授予您的 AWS 帳戶 此許可。
+ 當您訂閱資料饋送時，這些許可會用來更新儲存貯體 ACL，以提供 AWS 資料饋送帳戶`FULL_CONTROL`許可。 AWS 資料饋送帳戶會將資料饋送檔案寫入儲存貯體。如果您的帳戶沒有所需的權限，則資料摘要檔案無法寫入儲存貯體。如需詳細資訊，請參閱「Amazon CloudWatch Logs 使用者指南」**中的[傳送至 Amazon S3 的日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)。

  如果您更新 ACL 並移除 AWS 資料饋送帳戶的許可，則無法將資料饋送檔案寫入儲存貯體。您必須重新訂閱資料摘要，以接收資料摘要檔案。
+ 每個資料摘要檔案皆擁有自己的 ACL (和儲存貯體的 ACL 不同)。儲存貯體擁有者具有對資料檔案的 `FULL_CONTROL` 權限。 AWS 資料饋送帳戶具有讀取和寫入許可。
+ 如果您刪除資料饋送訂閱，Amazon EC2 不會移除儲存貯體或資料檔案上 AWS 資料饋送帳戶的讀取和寫入許可。您必須自行移除這些權限。
+ 如果您使用伺服器端加密搭配存放在 AWS Key Management Service (SSE-KMS) 中的 AWS KMS 金鑰來加密 Amazon S3 儲存貯體，則必須使用客戶受管金鑰。如需詳細資訊，請參閱「Amazon CloudWatch Logs 使用者指南」**中的 [Simple Storage Service (Amazon S3) 儲存貯體伺服器端加密](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-SSE-KMS-S3)。

## 訂閱 Spot 執行個體資料摘要
<a name="using-spot-instances-datafeed-all"></a>

您可隨時訂閱 Spot 執行個體資料摘要。您無法使用 Amazon EC2 主控台完成此任務。

如果您收到儲存貯體沒有足夠許可的錯誤，請參閱以下文章以取得疑難排解資訊：[疑難排解 Spot 執行個體的資料摘要](https://repost.aws/knowledge-center/s3-data-feed-ec2-spot-instances)。

------
#### [ AWS CLI ]

**訂閱您的資料摘要**  
使用 [create-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-spot-datafeed-subscription.html) 命令。

要指定帶字首的儲存貯體，請使用下列範例：

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

要指定不帶字首的儲存貯體，請使用下列範例：

```
aws ec2 create-spot-datafeed-subscription \
    --bucket amzn-s3-demo-bucket
```

------
#### [ PowerShell ]

**訂閱您的資料摘要**  
使用 [New-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2SpotDatafeedSubscription.html) cmdlet。

要指定帶字首的儲存貯體，請使用下列範例：

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket `
    -Prefix my-prefix
```

要指定不帶字首的儲存貯體，請使用下列範例：

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket
```

------

## 檢視資料饋送中的資料
<a name="using-spot-instances-datafeed-view-data"></a>

在 中 AWS 管理主控台，開啟 AWS CloudShell。使用下列 [s3 sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) 命令，從資料摘要的 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 執行個體資料摘要
<a name="using-spot-instances-datafeed-delete"></a>

當您不再需要 Spot 執行個體資料饋送時，即可將其刪除。

------
#### [ AWS CLI ]

**刪除您的資料摘要**  
使用 [delete-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-spot-datafeed-subscription.html) 命令。

```
aws ec2 delete-spot-datafeed-subscription
```

------
#### [ PowerShell ]

**刪除您的資料摘要**  
使用 [Remove-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2SpotDatafeedSubscription.html) cmdlet。

```
Remove-EC2SpotDatafeedSubscription
```

------