選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

REL05-BP06 盡可能讓系統處於無狀態 - 可靠性支柱

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

REL05-BP06 盡可能讓系統處於無狀態

系統不應要求狀態,或應該卸載狀態,以便在不同的用戶端請求之間,不依賴磁碟和記憶體中本機儲存的資料。這允許伺服器任意置換,而不會對可用性造成影響。

當使用者或服務與應用程式互動時,他們通常會執行形成工作階段的一系列互動。工作階段是使用者在使用應用程式時,在不同請求之間持續存在的唯一資料。無狀態應用程式是一種不需要了解先前互動,也不會儲存工作階段資訊的應用程式。

一旦設計為無狀態,您就可以使用無伺服器運算服務,例如 AWS Lambda 或 AWS Fargate。

除了伺服器替換之外,無狀態應用程式的另一個優點是他們可以水平擴展,因為任何可用的運算資源 (例如EC2執行個體和 AWS Lambda 函數) 都可以服務任何請求。

建立此最佳實務的優勢:設計為無狀態的系統更適合水平擴展,因此可以根據波動的流量和需求來新增或移除容量。其本質上也具有抵抗故障的能力,並在應用程式開發中提供靈活性和敏捷性。

未建立此最佳實務時的曝險等級:

實作指引

讓您的應用程式無狀態。無狀態應用程式支援水平擴展,並且可以容忍單個節點的失敗。分析並了解在架構中維持狀態的應用程式元件。這可協助您評估轉換為無狀態設計的潛在影響。無狀態架構會分離使用者資料並卸載工作階段資料。這提供了獨立擴展每個元件的彈性,以滿足不同的工作負載需求,並最佳化資源使用率。

實作步驟

  • 識別並了解應用程式中的有狀態元件。

  • 透過將使用者資料與核心應用程式邏輯進行分離和管理來解耦資料。

    • Amazon Cognito 可以使用身分池使用者集區Amazon Cognito Sync 等功能,將使用者資料與應用程式的程式碼分離。

    • 可以將密碼儲存在安全的集中位置,使用 AWS Secrets Manager 來分離使用者資料。這意味著應用程式的程式碼不需要存儲密碼,這使得它更安全。

    • 請考慮使用 Amazon S3 來存放大型非結構化資料,例如影像和文件。應用程式可以在需要時擷取此資料,而無需將其存儲在記憶體中。

    • 使用 Amazon DynamoDB 來存放使用者設定檔等資訊。應用程式可以近乎即時的速度查詢這些資料。

  • 將工作階段資料卸載至資料庫、快取或外部檔案。

  • 在確定需要使用所選儲存解決方案維持哪些狀態和使用者資料之後,設計一個無狀態架構。

資源

相關的最佳實務:

相關文件:

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。