SUS03-BP01 最佳化非同步與排程任務的軟體和架構 - AWS Well-Architected 架構

SUS03-BP01 最佳化非同步與排程任務的軟體和架構

使用有效率的軟體和架構模式 (例如佇列驅動),讓所部署的資源一直保持高使用率。

常見的反模式:

  • 在雲端工作負載中過度佈建資源以滿足未預料到的突增需求。

  • 您的架構未透過傳訊元件將非同步訊息的傳送者與接受者分離。

建立此最佳實務的優勢:

  • 有效率的軟體和架構模式可盡量減少工作負載中的未使用資源,並改善整體效率。

  • 您可以將非同步訊息的處理與接收分開擴展。

  • 透過傳訊元件,可用性要求會比較寬鬆,不用太多資源即可滿足。

未建立此最佳實務時的風險暴露等級:

實作指引

使用有效率的架構模式 (例如事件驅動架構),以便能平均地使用元件,並盡量避免工作負載過度佈建。使用有效率的架構模式可盡量地讓閒置資源不會因為需求隨時間發生變化而有乏人問津的情形。

了解工作負載元件的要求,並採用能夠提升整體資源使用率的架構模式。淘汰不再需要的元件。

實作步驟

  • 分析工作負載需求以判斷如何回應。

  • 如果請求或作業不需要同步回應,請使用佇列驅動的架構和 Auto Scaling 工作節點,以將使用率最大化。以下是您可能會考慮使用佇列驅動架構的一些範例:

    Queuing mechanism Description

    AWS Batch 作業佇列

    AWS Batch 作業會提交至作業佇列並停留其中,直到能夠排定在運算環境中執行為止。

    Amazon Simple Queue Service 和 Amazon EC2 Spot 執行個體

    搭配使用 Amazon SQS 與 Spot 執行個體即可建置能容錯且有效率的架構。

  • 對於可以隨時處理的佇列或作業,請使用排程機制來批次處理作業,以提升效率。以下是 AWS 上排程機制的幾個範例:

    Scheduling mechanism Description

    Amazon EventBridge 排程器

    這是 Amazon EventBridge 的一項功能,可讓您大規模地建立、執行和管理已排定的任務。

    AWS Glue 時間型排程

    在 AWS Glue 中定義爬蟲程式和作業的時間型排程。

    Amazon Elastic Container Service (Amazon ECS) 排定的任務

    Amazon ECS 支援建立排定的任務排定的任務會使用 Amazon EventBridge 規則,依排程執行任務或是在 EventBridge 事件的回應中執行任務。

    Instance Scheduler

    設定 Amazon EC2 和 Amazon Relational Database Service 執行個體的開始和停止排程。

  • 如果您的架構中使用輪詢和 Webhook 機制,請將其更換為事件。使用事件驅動的架構可建置高效率的工作負載。

  • 利用 AWS 上的無伺服器來消除過度佈建的基礎設施。

  • 將架構的個別元件調整為適當大小,避免閒置資源等待輸入。

資源

相關文件:

相關影片: