考慮專用資料庫 - AWS 規範指引

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

考慮專用資料庫

概觀

執行 Microsoft 型工作負載的最昂貴層面之一,來自商業資料庫的授權,例如SQL伺服器。企業通常會在 SQL 伺服器上標準化為選擇的資料庫平台,並融入組織的開發文化。無論使用案例為何,開發人員通常會選擇以SQL伺服器為基礎的關聯式模型。原因包括:

  • 企業已有可用的SQL伺服器執行個體和/或授權。

  • 團隊已透過使用共用程式庫ORMs、 和 業務邏輯習慣於SQL程式設計模型。

  • 管理層不知道替代方案。

  • 開發人員不知道替代方案。

專用資料庫可以容納使用案例的資料存取模式。這些資料庫隨著採用更現代的架構 (例如微服務) 以及個別應用程式的範圍縮小而逐漸受到企業採用。

正在建置的資料庫不會排除關聯式模型,或需要否SQL (非關聯式) 模型。事實上,在為回應工作負載的特定需求而選取 時,關聯式資料庫會被視為特別建置。使用專用資料庫可協助團隊降低與其 .NET 應用程式相關的資料庫成本,同時獲得標準雲端優勢,例如可擴展性、彈性和減少未區分的繁重負載。

下表顯示 提供的專用資料庫 AWS。

資料庫 Type 特性
Amazon Aurora PostgreSQLAmazon Aurora MySQL 關聯性

資料具有固定結構的使用案例

關聯式資料庫會透過ACID交易自然維持資料一致性

Amazon DynamoDB 鍵值對

沒有SQL使用雜湊表資料結構存放資料的資料庫

高效能儲存和擷取非結構化資料

使用案例包括使用者設定檔、工作階段狀態和購物車資料

Amazon ElastiCache 記憶體內

高效能 無SQL資料庫,在存取時間低於毫秒的記憶體中存放非結構化資料

用於經常存取的暫時性資料,例如使用者工作階段,並作為在其他較慢的資料存放區前面的快取層

包括對 ElastiCache (Redis OSS) 和 ElastiCache (Memcached) 的支援

Amazon MemoryDB 耐用的記憶體內 Redis 相容的專用資料庫,具有耐用儲存
Amazon Timestream 時間序列

專為以時間順序擷取高輸送量資料的資料庫

使用案例包括物聯網 IoT) 應用程式和儲存指標或遙測資料

Amazon DocumentDB 文件

沒有規定結構或與其他資料強制執行關係,則沒有SQL儲存資料的資料庫

常用於讀取密集型工作負載,例如產品目錄

Amazon Neptune 圖表

沒有SQL同時包含資料和資料項目之間連線的資料庫

使用案例包括詐騙偵測、推薦引擎和社交應用程式

Amazon Keyspaces 寬欄

以 Apache Cassandra 為基礎的高效能分散式資料庫

使用案例包括 IoT 應用程式、事件處理和遊戲應用程式

特定用途資料庫採用的重要驅動因素可歸因於取消商業授權。不過,DynamoDB (包括隨需模式 )、AuroraAmazon NeptuneAmazon Keyspaces 等資料庫的自動擴展功能可讓您佈建一般案例的容量,而不是尖峰用量。Timestream 等專門建置的資料庫是無伺服器,並自動擴展以滿足需求,無需任何預先佈建。

AWS 如果您想要使用專用、開放原始碼相容的關聯式資料庫,但無法或不願意對應用程式進行重大程式碼變更,則 會提供 Babelfish for Aurora PostgreSQL。在某些情況下,Babelfish 允許您使用現有的SQL伺服器存取碼,幾乎沒有變更。

選擇應用程式專用的關聯式資料庫時,請務必保留應用程式所需的相同 (或功能相當的) 功能。此建議會將專用資料庫作為應用程式的主要資料存放區。特定應用程式 (例如快取) 會在其他建議中說明。

成本影響

為 .NET 工作負載採用專用資料庫,雖然不太可能直接影響運算消耗/成本,但 會直接影響 .NET 應用程式所使用之資料庫服務的成本。事實上,與敏捷性、可擴展性、彈性和資料耐久性的額外優勢相比,節省成本可能是次要目標。

本指南的範圍之外,說明為應用程式選擇專用資料庫的完整程序,以及重新建構資料策略以有效使用它們。如需詳細資訊,請參閱 AWS 教學課程目錄中的專用資料庫

下表顯示幾個範例,說明將SQL伺服器取代為專用資料庫可以如何改變應用程式成本。請注意,這些只是粗略的估算。計算確切的生產成本需要實際工作負載的基準和最佳化。

這些是一些常用的專用資料庫估算,包括 中的隨需運算和 100 GB SSD的單一執行個體資料庫us-east-1。授權成本包括SQL伺服器授權加上軟體保證。

下表顯示商業資料庫範例的預估成本。

資料庫引擎 授權模式 執行個體類型/規格 AWS 運算 + 儲存成本 授權成本 每月總成本
SQL Amazon 上的 Server Standard 版本 EC2 包含授權 r6i.2xlarge (8 CPU/64 GBRAM) 1,345.36 美元 0.00 美元 1,345.36 美元
SQL Amazon 上的 Server Enterprise 版本 EC2 包含授權 r6i.2xlarge (8 CPU/64 GBRAM) 2,834.56 美元 0.00 美元 2,834.56 美元
SQL Amazon 上的 Server Standard 版本 EC2 BYOL r6i.2xlarge (8 CPU/64 GBRAM) $644.56 $456.00 1,100.56 美元
SQL Amazon 上的 Server Enterprise 版本 EC2 BYOL r6i.2xlarge (8 CPU/64 GBRAM) $644.56 1,750.00 美元 2,394.56 美元
SQL Amazon 上的 Server Standard 版本 RDS   db.r6i.2xlarge (8 CPU/64 GBRAM) 2,318.30 美元 0.00 美元 2,318.30 美元
SQL Amazon 上的 Server Enterprise 版本 RDS   db.r6i.2xlarge (8 CPU/64 GBRAM) 3,750.56 美元 0.00 美元 3,750.56 美元

下表顯示專用範例的預估成本。

資料庫引擎 執行個體類型/規格 AWS 運算 + 儲存成本 授權成本 每月總成本
Amazon Aurora PostgreSQL r6g.2xlarge (8 CPU/64 GBRAM) 855.87 美元 0.00 美元 855.87 美元
DynamoDB 佈建的基礎 100WCU/400 RCU $72.00   $72.00
Amazon DocumentDB db.r6i.2xlarge (8 CPU/64 GBRAM) $778.60   $778.60
重要

資料表是根據購買前三年內,具有軟體保證之SQL伺服器的預估授權成本。對於 SQL Server Standard 版本:4,100 美元、2 個核心套件、3 年。對於 SQL Server Enterprise 版本:15,700 美元、2 個核心套件、3 年。

我們建議您在採用專用資料庫之前考慮成本影響。例如,更新應用程式以使用專用資料庫的成本與應用程式和來源資料庫的複雜性有關。在規劃此架構切換時,請務必考量擁有權的總成本。這包括重構您的應用程式、提升新技術的工作人員技能,以及仔細規劃每個工作負載預期的效能和耗用。從那裡,您可以判斷投資是否值得節省成本。在大多數情況下,維護 end-of-support產品是安全和合規風險,而補救產品的成本值得投入精力和初始投資。

成本最佳化建議

對於存取 SQL Server 的 .NET 應用程式,有專用關聯式資料庫的替代程式庫。您可以在應用程式中實作這些程式庫,以取代類似的SQL伺服器應用程式功能。

下表重點介紹一些可在許多常見案例中使用的程式庫。

程式庫 資料庫 取代 架構相容性
Npgsql 實體架構核心提供者 Amazon Aurora PostgreSQL 實體架構核心SQL伺服器提供者 現代 。NET
Npgsql 實體架構 6 提供者 Amazon Aurora PostgreSQL 實體架構 6.0 SQL 伺服器提供者 。NET 架構
Npgsql (ADO.NET 相容 PostgreSQL 程式庫) Amazon Aurora PostgreSQL ADO.NET 。NET Framework/Modern 。NET
我的SQL實體架構核心提供者 Amazon Aurora MySQL 實體架構核心SQL伺服器提供者 現代 。NET
Pomelo.EntityFrameworkCore.MySql Amazon Aurora MySQL 實體架構核心SQL伺服器提供者 現代 。NET

使用 Babelfish 連線至 Amazon Aurora PostgreSQL 不需要任何特殊編碼即可連線。不過,所有程式碼都應在使用前徹底測試。

其他專用建置的資料庫具有用於存取 的程式庫。NET相容的程式庫可讓您存取專用建置的資料庫。範例包括:

如果您遷移至目的內建資料庫,您可以使用 中的這些工具 AWS 來協助遷移程序:

其他資源