PERF03-BP01 使用專門建置的資料存放區,最適合支援您的資料存取和儲存需求 - AWS 建構良好的架構

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

PERF03-BP01 使用專門建置的資料存放區,最適合支援您的資料存取和儲存需求

了解資料特性 (例如可共用、大小、快取大小、存取模式、延遲、輸送量和資料的持續性),為工作負載選擇適合的專用資料存放區 (儲存或資料庫)。

常見的反模式:

  • 由於具備某種特定類型資料庫解決方案的內部經驗和知識,您堅持使用某個資料存取區。

  • 您假設所有工作負載都有類似的資料儲存和存取需求。

  • 您未實作資料目錄以清查資料資產。

建立此最佳實務的優勢:了解資料特性和需求,可協助您判斷能滿足工作負載需求的最有效率且效能最高的儲存技術。

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

實作指引

在選擇和實作資料儲存時,請確定查詢、擴展和儲存特性支援工作負載資料需求。 AWS 提供許多資料儲存和資料庫技術,包括區塊儲存、物件儲存、串流儲存、檔案系統、關聯性、索引鍵值、文件、記憶體內、圖形、時間序列和分類帳資料庫。每個資料管理解決方案都有為您提供的選項和組態,以支援您的使用案例和資料模型。透過了解資料特性和需求,您可以擺脫單片儲存技術和限制性 one-size-fits-all的方法,以適當地管理資料。

實作步驟

  • 對您工作負載現有的各種資料類型執行清查。

  • 了解並記錄資料特性和需求,包括:

    • 資料類型 (非結構化、半結構化、關聯式)

    • 資料量與成長

    • 資料耐用性:持續性、暫時性、臨時

    • ACID (原子性、一致性、隔離、耐久性) 需求

    • 資料存取模式 (大量讀取或大量寫入)

    • Latency (延遲)

    • 輸送量

    • IOPS (每秒的輸入/輸出操作)

    • 資料保留期間

  • 了解適用於 工作負載的不同資料存放區 (儲存資料庫服務) AWS ,其可滿足您的資料特性,如 所述PERF01-BP01 了解和了解可用的雲端服務和功能。 AWS 儲存技術及其重要特性的一些範例包含:

    類型 AWS 服務 重要特性
    物件儲存 Amazon Simple Storage Service (Amazon S3) 具有不受限的可擴展性、高可用性,以及多個可存取性選項。對 Amazon S3 輸入和存取物件時,可以使用 Transfer AccelerationAccess Points 之類的服務來支援您的位置、安全需求和存取模式。
    封存儲存 Amazon S3 Glacier 專為資料封存而打造。
    串流儲存空間

    Amazon Kinesis

    Amazon Managed Streaming for Apache Kafka (Amazon MSK)

    快速地擷取和儲存串流資料。
    共用檔案系統

    Amazon Elastic File System (Amazon EFS)

    可供多種類型的運算解決方案存取的可掛載檔案系統。

    共用檔案系統 Amazon FSx 以最新的 AWS 運算解決方案為基礎,支援四個常用的檔案系統: NetApp ONTAP、Open ZFS、Windows File Server 和 Lustre。FSxAmazonlatency、輸送量和 IOPS會因檔案系統而異,因此在選擇適合您工作負載需求的檔案系統時,應該考慮這一點。
    區塊儲存 Amazon Elastic Block Store (Amazon EBS) 專為 Amazon Elastic Compute Cloud (Amazon ) 設計的可擴展、高效能區塊儲存服務EC2。Amazon EBS包含交易IOPS型 密集型工作負載的 SSD後端儲存體,以及輸送量密集型工作負載的 HDD後端儲存體。
    關聯式資料庫 Amazon Aurora、Amazon RDSAmazon Redshift 旨在支援 ACID(原子性、一致性、隔離、耐久性) 交易,並維持參考完整性和強大的資料一致性。許多傳統應用程式、企業資源規劃 (ERP)、客戶關係管理 (CRM) 和電子商務會使用關聯式資料庫來存放其資料。
    鍵值資料庫 Amazon DynamoDB 已針對常見的存取模式進行最佳化,通常用於儲存和擷取大量資料。高流量 Web 應用程式、電子商務系統和遊戲應用程式是鍵值資料庫的典型使用案例。
    文件資料庫 Amazon DocumentDB 旨在將半結構化資料儲存為JSON類似 文件。這些資料庫可協助開發人員快速建置和更新應用程式,例如內容管理、目錄和使用者設定檔。 
    記憶體資料庫 Amazon ElastiCacheAmazon MemoryDB for Redis 適用於需要即時存取資料、最低延遲和最高輸送量的應用程式。您可以將記憶體資料庫用於應用程式快取、工作階段管理、遊戲排行榜、低延遲 ML 特徵存放區、微型服務簡訊系統,以及高輸送量串流機制
    圖形資料庫 Amazon Neptune 適用於此類應用程式:必須在高度連線圖形資料集之間,大規模導覽和查詢數百萬個關係,並且在過程中僅有毫秒延遲。許多公司使用圖形資料庫進行詐騙偵測、社交聯網和推薦引擎。
    時間序列資料庫 Amazon Timestream 可快速地從隨時間變化的資料收集、合成和衍生洞見。IoT 應用程式 DevOps和工業遙測可以利用時間序列資料庫。
    寬欄 Amazon Keyspaces (適用於 Apache Cassandra) 可使用表格、列和欄,但與關聯式資料庫不同,在同一個表格中,欄的名稱和格式會因列而異。您通常會在大規模工業應用程式中看到寬欄存放區,用於設備維護、叢集管理和路由優化。 
    總帳 Amazon Quantum Ledger 資料庫 (Amazon QLDB) 可提供集中化且受信任的機構,為每個應用程式維護可擴展、不可變且以密碼編譯方式驗證的交易記錄。我們會看到用於記錄、供應鏈、註冊甚至銀行交易系統的總帳資料庫。  
  • 如果您要建置資料平台,請在 上利用現代資料架構 AWS 來整合您的資料湖、資料倉儲和專用資料存放區。

  • 為工作負載選擇資料存放區時,需要考慮的關鍵問題如下:

    問題 重要考慮事項
    如何建構資料?
    需要哪種層級的參考完整性?
    • 對於外部金鑰限制,Amazon RDSAurora 等關聯式資料庫可以提供此完整性層級。

    • 一般而言,在無SQL資料模型中,您會將資料還原成單一文件或要在單一請求中擷取的文件集合,而不是跨文件或資料表加入。 

    是否需要符合 ACID(原子性、一致性、隔離、耐久性) 要求?
    • 如果需要與關聯式資料庫相關聯的ACID屬性,請考慮關聯式資料庫,例如 Amazon RDSAurora。

    • 如果沒有SQL資料庫 需要強烈的一致性,您可以搭配 DynamoDB使用強烈的一致性讀取。

    儲存要求如何隨時間變更? 這如何影響可擴展性?
    讀取查詢與寫入查詢的比例是多少? 快取可能改善效能嗎?
    • 如果DAX資料庫是 DynamoDB ,則大量讀取工作負載可以從快取層中受益,例如 ElastiCache或 。 DynamoDB

    • 讀取也可以卸載,以讀取具有關聯式資料庫的複本,例如 Amazon RDS

    儲存和修改 (OLTP - 線上交易處理) 或擷取和報告 (OLAP - 線上分析處理) 是否具有更高的優先順序?
    • 對於高輸送量讀取即交易處理,請考慮無SQL資料庫,例如 DynamoDB 。

    • 對於具有一致性的高輸送量和複雜的讀取模式 (如聯結),請使用 Amazon RDS。

    • 對於分析查詢,請考慮 Amazon Redshift 之類的資料欄式資料庫,或將資料匯出至 Amazon S3,並使用 AthenaAmazon QuickSight執行分析。

    資料需要哪種層級的耐久性?
    • Aurora 會自動跨區域內的三個可用區域複寫資料,這表示資料高度耐用且資料遺失的機會較低。

    • DynamoDB 會自動跨多個可用區域複寫,具有高可用性和資料耐久性。

    • Amazon S3 提供 11 個九的耐用性。許多資料庫服務,例如 Amazon RDS和 DynamoDB ,都支援將資料匯出至 Amazon S3 以進行長期保留和封存。

    是否希望擺脫商務資料庫引擎、或授權成本?
    對資料庫的操作期望是什麼? 移至受管服務是否為主要問題?
    • 利用 Amazon RDS而非 Amazon EC2,以及使用 DynamoDB 或 Amazon DocumentDB 而非自我託管無SQL資料庫,可以降低營運開銷。

    目前如何存取資料庫? 它是否僅存取應用程式,還是有商業智慧 (BI) 使用者和其他連線 off-the-shelf的應用程式?
    • 如果您依賴於外部工具,則可能必須保持與其所支援之資料庫的相容性。Amazon 與其支援的引擎版本RDS完全相容,包括 Microsoft SQL Server、Oracle、My SQL和 Postgre SQL。

  • 在非生產環境中執行實驗和基準測試,以確定哪個資料存放區最能滿足您的工作負載需求。

資源

相關文件:

相關影片:

相關範例: