全部產品
Search
文件中心

Elastic Compute Service:流量控制

更新時間:Feb 28, 2024

阿里雲為保障雲端服務的穩定以及雲資源的公平使用,Elastic Compute Service開啟了API訪問的流量控制,以防止惡意攻擊和濫用API。本文介紹如何查看Elastic Compute Service API的流量控制,並提供API流量控制的合理化建議。

查看API流量控制

您可以通過API速率配額找到並單擊Elastic Compute Service,查看不同的Elastic Compute Service API的流量控制閾值。

image.png

說明

Elastic Compute Service目前僅支援查詢部分API的流量控制閾值。

流量控制範圍說明

  • Elastic Compute Service的API訪問流量受到嚴格的控制和限制。所有的API都啟用了訪問流量控制機制,並根據地區和具體的API介面進行劃分和區分。不同地區和不同介面會有不同的流量控制閾值。

  • 對於同一個阿里雲帳號,在不同地區內調用特定介面的訪問流量不能超過系統設定的閾值。如果超出閾值,API調用請求會在單位時間內被系統拒絕。

  • 訪問流量包括來自ECS控制台、RAM使用者、基於阿里雲帳號的自建平台以及IaaS(Infrastructure as a Service)編排平台(如Terraform、Ansible)的資料流量。

流量控制規則說明

API訪問流量控制的規則說明如下:

  • 不同介面的流量控制各自獨立計算,單個介面達到流量控制閾值時不會影響其他介面的調用,也不會影響該介面在其他地區下的正常使用。

  • 如果某一介面在第T分鐘時被流量控制,則該介面需要在第T+1分鐘時才會被允許繼續調用。

  • 如果使用SDK或CLI等營運方式調用API時被流量控制並報錯,相應的功能在雲端服務控制台操作中也會受到流量控制。

  • ECS的建立執行個體操作介面(如RunInstances和CreateInstance),除去API層級的流量控制外,還存在建立資源數量的限制。即同一個阿里雲帳號,在一分鐘內建立ECS執行個體請求的數量不能大於5000台(不包括已建立並處於啟動並執行ECS執行個體數量),且實際在一分鐘內提交建立執行個體操作的請求,可能需要超過一分鐘的時間才能完成執行個體的交付(即執行個體達到運行狀態)。

調用合理化建議

當調用Elastic Compute Service API的請求達到流量控制閾值時,系統會報Throttling錯誤碼且請求不會被系統正確處理。因此,在構建IaaS架構時,需要考慮調用API的合理性。主要建議如下:

  • 請求彙總

    ECS中部分查詢類和操作類的API支援批量的查詢或操作,在使用這類介面時儘可能批量完成資源的查詢或操作。

  • 調用頻率

    在需要檢查資源狀態的流程中,注意每次調用API的請求間隔,您可以採用固定間隔或者反向退避的方式。例如:

    • 常見的狀態檢查(資源的啟動、停止等狀態)間隔時間為1s~2s。

    • 反向退避是指您可以在資源操作後的若干秒內不進行狀態檢查,然後逐漸增加檢查頻率,直到達到固定的1s~2s間隔時間。

  • 退避策略

    在調用介面並返迴流量控制的錯誤碼後,相同的介面請求需要退避策略。在退避時,同一阿里雲帳號的同一介面調用可以採取1 QPS的速度進行可用性探測。