

# SUS03-BP01 最佳化非同步與排程任務的軟體和架構
<a name="sus_sus_software_a2"></a>

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

 **常見的反模式：** 
+  在雲端工作負載中過度佈建資源以滿足未預料到的突增需求。 
+  您的架構未透過傳訊元件將非同步訊息的傳送者與接受者分離。 

 **建立此最佳實務的優勢：** 
+  有效率的軟體和架構模式可盡量減少工作負載中的未使用資源，並改善整體效率。 
+  您可以將非同步訊息的處理與接收分開擴展。 
+  透過傳訊元件，可用性要求會比較寬鬆，不用太多資源即可滿足。 

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

## 實作指引
<a name="implementation-guidance"></a>

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

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

 **實作步驟** 
+  分析工作負載需求以判斷如何回應。 
+  如果請求或作業不需要同步回應，請使用佇列驅動的架構和 Auto Scaling 工作節點，以將使用率最大化。以下是您可能會考慮使用佇列驅動架構的一些範例：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-04-10/framework/sus_sus_software_a2.html)
+  對於可以隨時處理的佇列或作業，請使用排程機制來批次處理作業，以提升效率。以下是 AWS 上排程機制的幾個範例：     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/wellarchitected/2023-04-10/framework/sus_sus_software_a2.html)
+  如果您的架構中使用輪詢和 Webhook 機制，請將其更換為事件。使用[事件驅動的架構](https://docs.aws.amazon.com/lambda/latest/operatorguide/event-driven-architectures.html)可建置高效率的工作負載。 
+  利用 [AWS 上的無伺服器](https://aws.amazon.com/serverless/)來消除過度佈建的基礎設施。 
+  將架構的個別元件調整為適當大小，避免閒置資源等待輸入。 

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [什麼是 Amazon Simple Queue Service？](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) 
+  [什麼是 Amazon MQ？](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html) 
+  [根據 Amazon SQS 擴展](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) 
+  [什麼是 AWS Step Functions？](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 
+  [什麼是 AWS Lambda？](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 
+  [搭配 Amazon SQS 使用 AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html) 
+  [什麼是 Amazon EventBridge？](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) 

 **相關影片：** 
+  [移至事件驅動型架構](https://www.youtube.com/watch?v=h46IquqjF3E) 