我使用 Amazon Simple Storage Service (Amazon S3) 設定了 Amazon Elastic Compute Cloud (Amazon EC2) 資料饋送。我想解決資料饋送問題。
簡短描述
若要檢查 Amazon EC2 Spot 執行個體的費用,請設定一個資料饋送,用於報告 Spot 執行個體的使用情況和定價。當您訂閱資料饋送時,Amazon EC2 會將此資料儲存在一個 S3 儲存貯體中。如果您在使用資料饋送時遇到問題,請根據您的情況完成以下疑難排解步驟。
解決方法
**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確定您使用的是最新版本的 AWS CLI。
AWS KMS 加密
您的 S3 儲存貯體可能會使用客戶自管 AWS Key Management Service (AWS KMS) key 加密。在這種情況下,您必須在 AWS KMS 金鑰政策的權限範圍內允許向 delivery.logs.amazonaws.com 提供服務。這允許 AWS KMS 將資料饋送傳送到加密的 S3 儲存貯體。
在您的金鑰政策中加入以下權限:
{
"Sid": "Allow Logs Delivery to use the key",
"Effect": "Allow",
"Principal": {
"Service": [
"delivery.logs.amazonaws.com"
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
}
如需詳細資訊,請參閱 Amazon S3 儲存貯體伺服器端加密。
ACL 權限
當您訂閱資料饋送時,您的帳戶將收到 S3 儲存貯體的存取控制清單 (ACL) 權限,以接收資料饋送。如果沒有這些權限,資料饋送將停止傳送到儲存貯體。確保您的帳戶中仍然存在這些權限:
- 開啟 Amazon S3 console (Amazon S3 主控台)
- 從導覽窗格中選擇 Buckets (儲存貯體),然後選擇與您資料饋送關聯的 S3 儲存貯體。
- 選擇 Permissions (權限) 索引標籤。
- 在 Access control list (ACL) (存取控制清單 (ACL)) 下,找到已作為承授者新增且已訂閱資料饋送的外部帳戶。請確認此帳戶是否對您的 S3 儲存貯體具有 FULL_CONTROL 權限。AWS 帳戶 awslogsdelivery 的 ACL 權限是以該帳戶的正規 ID新增的:
c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0
如果帳戶沒有 FULL_CONTROL,則必須重新訂閱資料饋送,以獲得所需的 ACL 權限。若要這麼做,請執行 create-spot-datafeed-subscription AWS CLI 命令。
**注意:**如果您移除資料饋送訂閱,這並不會自動移除相關的 ACL 權限。如果您想刪除資料饋送,則必須透過 Amazon S3 主控台中的權限 (步驟 1-4) 才能手動刪除相關權限。
資料饋送限制
每個 AWS 帳戶只能建立一個資料饋送。若要將資料饋送傳輸到另一個 S3 儲存貯體,請使用不同的 S3 儲存貯體重新執行 create-spot-datafeed-subscription AWS CLI 命令。
EC2 Spot 執行個體執行時期
您只會在 EC2 Spot 執行個體運作期間收到資料饋送。例如,如果您停止 Spot 執行個體三個小時,那麼您的資料饋送在這三個小時內也會停止傳輸資料。當 Spot 執行個體再次啟動時,您的資料饋送將自動恢復。
S3 物件擁有權
資料饋送所使用 S3 儲存貯體的物件擁有權設定,必須是儲存貯體擁有者優先或物件寫入者。這些設定允許您的 S3 儲存貯體使用 ACL 權限。如果您的 S3 儲存貯體沒有上述任一擁有權設定,那麼您就無法在 S3 儲存貯體上設定資料饋送。如果發生這種情況,那麼您會收到錯誤:
"An error occurred (InaccessibleStorageLocation) when calling the CreateSpotDatafeedSubscription operation: The specified bucket does not exist or does not have enough permissions."
如需詳細資訊,請參閱控制物件的擁有權並停用儲存貯體的 ACL。
其他注意事項
在設定資料饋送時,請注意以下幾點:
- 啟用資料饋送不會產生額外費用。不過,您需要負擔資料饋送在 S3 儲存貯體中的儲存費用。
- 資料饋送檔案通常每小時會傳送到您的儲存貯體一次。通常,每個資料檔案涵蓋一小時的使用情況。有關檔案大小和到達時間的更多資訊,請參閱 Spot 執行個體資料饋送。