如何防止 Auto Scaling API 呼叫受到限流?

2 分的閱讀內容
0

在應用程式呼叫 Amazon EC2 Auto Scaling、AWS Auto Scaling 或 AWS Application Auto Scaling 時,我的應用程式收到「超過比率」錯誤。

簡短說明

API 呼叫都不能超過每個 AWS 帳戶和每個 AWS 區域允許的 API 請求率上限。這包括來自 AWS Command Line Interface (AWS CLI) 和 AWS 管理主控台的 API 呼叫。如果 API 請求超過比率上限,您會收到「超過比率」錯誤,且後續的 API 呼叫會受到限流。

Amazon EC2 Auto Scaling、AWS Auto Scaling 和 AWS Application Auto Scaling 都有專屬的 API 限流儲存貯體。這表示所有 Amazon EC2 Auto Scaling API 呼叫都有單一的共用 API 限制。Amazon EC2 Auto Scaling API 呼叫不會影響 AWS Application Auto Scaling API 的限制。

若要避免出現「超過比率」錯誤和限流情況,請確認您的應用程式只進行必要的呼叫。

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

解決方法

檢查目前的 Auto Scaling API 使用量

若要檢查目前的 Auto Scaling API 使用量,請在 Amazon CloudWatch 指標中監控 EC2 Auto Scaling 服務的 AWS 使用量統計資料。使用指標監控呼叫的 Auto Scaling API,並找出大量 API 呼叫的次數或「超過比率」錯誤。然後,使用這項資訊最佳化並減少您的 API 使用量。

驗證 "describe" 呼叫

過多的 describe 呼叫會影響根據允許的請求率所測得的 API 請求總數。請確認您的應用程式 describe 呼叫全都是必要的,並盡可能使用其他解決方法。例如,請使用來自 Amazon EventBridge 的推送通知,以在執行個體狀態變更時傳送通知,例如在執行個體開始進行 lifecycle hook 時。

檢查執行個體生命週期狀態的應用程式不會進行 describe 呼叫。這些應用程式反而會查詢執行個體中繼資料。從執行個體中繼資料擷取標籤資訊,包括 Auto Scaling 群組的名稱。您必須使用啟動範本開啟執行個體的標籤資訊

檢查來自第三方應用程式的呼叫

第三方應用程式可能會持續呼叫 AWS 中的 Auto Scaling。檢閱第三方應用程式是否有不必要的呼叫,並更新第三方應用程式的設定。

實作錯誤重試和指數退避

錯誤重試和指數退避可協助限制 API 呼叫率。每個 AWS SDK 都會實作自動重試邏輯和指數退避演算法。如需詳細資訊,請參閱重試行為

避免活動爆量

避免會造成 API 呼叫爆量的情況。例如,啟動 Amazon EC2 Auto Scaling 群組中的所有執行個體時,不要將執行個體設定為開啟縮減保護。Auto Scaling 群組的選項預設為開啟,因此所有執行個體都會受到保護。

請求增加服務配額

若要增加服務配額,請從支援中心主控台請求增加。在服務限額增加區段下方,請完成下列步驟:

  1. 限額類型中,選擇 Auto Scaling
  2. Auto Scaling Service 中,選擇 EC2 Auto Scaling
  3. 限額中,選擇 API 限流
  4. 新的限額值中,選擇 N/A

在請求中提供下列資訊:

  • 驗證您的 API 呼叫率和實作的錯誤重試或指數退避方法
  • 區域和與限流問題相關的時間範圍
  • AutoScaling API 的完整工作流程
  • 當您預期 API 使用量要達到尖峰時,例如在部署期間

如需詳細資訊,請參閱如何管理 AWS Service Quotas?

相關資訊

指數退避和抖動

AWS Service Quotas

AWS 官方
AWS 官方已更新 2 年前