本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SUS03-BP01 針對非同步和排程任務最佳化軟體和架構
使用有效率的軟體和架構模式 (例如佇列驅動),讓所部署的資源一直保持高使用率。
常見的反模式:
-
在雲端工作負載中過度佈建資源以滿足未預料到的突增需求。
-
您的架構未透過傳訊元件將非同步訊息的傳送者與接受者分離。
建立此最佳實務的優勢:
-
高效率的軟體和架構模式可盡量減少工作負載中的未使用資源,並改善整體效率。
-
您可以將非同步訊息的處理與接收分開擴展。
-
透過傳訊元件,可用性要求會比較寬鬆,不用太多資源即可滿足。
未建立此最佳實務時的曝險等級:中
實作指引
使用有效率的架構模式 (例如事件驅動架構
了解工作負載元件的要求,並採用能夠提升整體資源使用率的架構模式。淘汰不再需要的元件。
實作步驟
-
分析工作負載需求以確定如何回應。
-
如果請求或任務不需要同步回應,請使用佇列驅動的架構和自動擴展工作節點,以將使用率最大化。以下是您可能會考慮使用佇列驅動架構的一些範例:
佇列機制 描述 AWS Batch 任務會提交至其所在的任務佇列,直到可以排程在運算環境中執行為止。
配對 Amazon SQS和 Spot 執行個體,以建置容錯且高效率的架構。
-
對於可以隨時處理的佇列或任務,請使用排程機制來批次處理任務,以提升效率。以下是在 上排程機制的一些範例 AWS:
排程機制 描述 Amazon EventBridge
的功能,可讓您大規模建立、執行和管理排程任務。 在 中為您的爬蟲程式和任務定義以時間為基礎的排程 AWS Glue。
Amazon ECS支援建立排程任務。排程的任務會使用 Amazon EventBridge 規則,在排程或 EventBridge 事件回應中執行任務。
設定 Amazon 和 Amazon Relational Database Service 執行個體的啟動EC2和停止排程。
-
如果您的架構中使用輪詢和 Webhook 機制,請將其取代為事件。使用事件驅動的架構來建置高效率的工作負載。
-
利用 AWS上的無伺服器
來消除過度佈建的基礎設施。 -
將架構的個別元件調整為適當大小,避免閒置資源等待輸入。
-
您可以使用 AWS Cost Explorer中的適當調整大小建議或 AWS Compute Optimizer
識別適當調整大小的機會。 -
如需詳細資訊,請參閱適當調整大小:佈建執行個體以符合工作負載。
-
資源
相關文件:
相關影片:
相關範例: