邁出第一步
簡介
Amazon Web Services (AWS) 提供越來越多的專用資料庫選項 (目前超過 15 個),以支援各種資料模型。這些專用資料庫包括包括關聯式資料庫、鍵值資料庫、文件資料庫、記憶體內資料庫、圖形資料庫、時間序列資料庫、寬欄資料庫和帳本資料庫。
若要選擇合適的資料庫或多個資料庫,需要您根據組織需求做出一系列決策。本決策指南將協助您提出正確的問題,為實作提供明確途徑,並協助您從現有資料庫遷移。
這段時長為六分半的影片由 AWS 資深開發人員支援主管 Ricardo Ferreira 為您帶來,他闡述了選擇 AWS 資料庫的基礎知識,並深入介紹了本決策指南其餘部分所述的概念、準則和選擇。
閱讀時間
20 分鐘
作用
協助確定哪些 AWS 資料庫服務最適合貴組織。
等級
初階
上次更新日期
2023 年 9 月 11 日
涵蓋的服務
了解
資料庫是用於儲存任何類型應用程式之資料的重要後端系統,無論是小型行動應用程式,或是具有網際網路規模和即時需求的企業應用程式。
本決策指南旨在協助您了解可供選擇的範圍,建立適合您選擇資料庫的標準,為您提供有關每個資料庫獨特屬性的詳細資訊,然後讓您深入了解每個資料庫所提供的功能。
人們使用資料庫來建置哪類應用程式?
- 網際網路規模的應用程式︰建置全球分散式和網際網路規模的應用程式,每秒處理數百 TB 資料的數百萬個請求。這類資料庫能擴展或縮減規模,以順應您突增的工作負載。
- 即時應用程式︰快取、工作階段儲存、遊戲排行榜、叫車、廣告定位和即時分析等即時應用程式需要微秒級的延遲和高輸送量,才能支援每秒數百萬個請求。
- 開放原始碼應用程式:部分客戶更喜歡開放原始碼資料庫,因為其具有低成本、社群支援的開發與支援,以及龐大的工具和擴充功能生態系統。
- 企業應用程式︰企業應用程式用於管理核心業務流程,例如銷售、計費、客戶服務、人力資源和業務線流程,以及旅館連鎖店的預訂系統或保險公司的風險管理系統。這些應用程式需要快速、可擴展、安全、可用且可靠的資料庫。
注意:本指南著重於適用於線上交易處理 (OLTP) 應用程式的資料庫。如果您主要需要快速有效地存放和分析大量資料 (通常由線上分析處理 (OLAP) 應用程式滿足),AWS 可提供 Amazon Redshift,這是全受管雲端資料倉儲服務,專為處理大規模分析工作負載而設計。
AWS OLTP 資料庫有兩個高階類別:關聯式和非關聯式。
- AWS 關聯式資料庫系列包括七個適用於 Amazon RDS 和 Amazon Aurora 的熱門引擎 (與 MySQL 相容的 Amazon Aurora、與 PostgreSQL 相容的 Amazon Aurora、MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server),以及在 AWS Outposts 上使用 Amazon RDS 內部部署的選項。
- 非關聯式資料庫選項是專為滿足對鍵值、文件、快取、記憶體內、圖形、時間序列、寬欄和帳本資料庫有特定需求的使用者而設計。
我們將在本指南的選擇部分中詳細探討所有這些內容。
資料庫遷移
在決定要使用哪個資料庫服務來處理資料前,您可能需要花點時間考慮如何遷移現有資料庫。
最佳資料庫遷移策略有助於您充分利用 AWS 雲端。這涉及將應用程式遷移至使用專門建置、以雲端為中心的資料庫。它也不會將您綁定在您於內部部署中使用的相同資料庫。考慮將應用程式現代化,並選擇最適合您應用程式工作流程需求的資料庫。
下列資源有助於您制定遷移策略:
- 開始使用 AWS Database Migration Service
- AWS Database Migration Service 的高階概觀
- 使用 AWS 結構描述轉換工具
- 選擇適合您工作負載的資料庫和資料庫遷移計畫
除了在規劃前期擁有遷移策略外,您還希望能從資料中獲得洞察。您可以使用 Amazon Redshift。Amazon Redshift 是快速、全受管 PB 級資料倉儲服務,可讓您使用現有的商業智慧工具有效率地分析所有資料。它已針對範圍從幾百 GB 到 PB 以上的資料集最佳化。
考慮
您正考慮在 AWS 上託管資料庫。這可能是為了支援綠地/先導專案,作為雲端遷移之旅的第一步,或者您可能希望在最少干擾下遷移現有工作負載。或者您希望將工作負載轉移到受管 AWS 服務,甚至將其重構為完全雲端原生。
無論您的目標為何,考慮適當的問題會讓您更輕鬆地做出資料庫決策。以下是需要考慮的主要標準摘要。
-
商業目標
-
遷移策略
-
專門打造
-
資料考量
-
操作注意事項
-
可靠性考量
-
效能考量
-
安全性考量
-
選擇資料庫的首要考慮因素是您的商業目標。推動貴組織改變的策略方向是什麼? 誠如 AWS 的 7 R 策略所建議,請考慮是否要對現有工作負載進行重新架構或重構,移至新平台以擺脫商業授權承諾,將現有的資料庫和資料主機轉換至雲端,而不需要做出任何變更即可充分利用雲端功能,或是立即轉向受管資料庫策略。
-
您可以選擇主機轉換策略,以更快地部署至雲端,並減少資料遷移的麻煩。在一個或多個 EC2 執行個體上安裝資料庫引擎軟體、遷移您的資料,並與內部部署一樣管理此資料庫執行個體。或者,您可以選擇平台轉換策略,將內部部署關聯式資料庫遷移至全受管 Amazon RDS 執行個體。
最後,您可以考慮將工作負載重構為雲端原生,充分利用 Amazon DynamoDB 和 Amazon DocumentDB (with MongoDB compatibility) 等專用 NoSQL 資料庫。如果您想要轉為無伺服器佔用空間,以減輕基礎設施管理和容量規劃的負擔,AWS 針對其眾多資料庫提供了無伺服器服務,例如 Amazon Aurora Serverless 和 Amazon Neptune Serverless、圖形資料庫。
-
任何資料庫選擇的核心,都包括了您需要儲存、擷取、分析和操作所需的資料特性。這包括您的資料模型 (是關聯式、結構化還是半結構化,使用高度連線的資料集或時間序列?)、資料存取 (您需要存取資料的方式?)、您需要即時資料的程度,以及是否有特定的資料記錄大小需求。
-
您的主要營運考量與資料的存放位置及管理方式有關。您需要做出的兩個關鍵選擇是:
要自我託管還是全受管:此處的核心問題是,您的團隊將在哪方面為企業帶來最大價值? 如果資料庫是自我託管的,您將負責實現資料庫真正差異化的價值 (透過您在結構描述設計、查詢建構和查詢最佳化方面的工作),並負責資料庫的日常維護、監控和修補。選擇全受管 AWS 資料庫可簡化您的工作,讓您的團隊專注於可能帶來獨特價值的地方。
- 無論您需要無伺服器還是已佈建的資料庫:Amazon Aurora 都提供如何考慮此選擇的模型。 Amazon Aurora Serverless v2 適用於要求嚴荷且高度可變的工作負載。例如,您的資料庫用量可能會在短時間內很高,然後是長時間的輕度活動或完全沒有活動。一些範例包括零售、遊戲或會定期舉辦推廣活動的體育類網站,以及只在需要時產生報告的資料庫。Aurora 佈建的叢集適用於穩定的工作負載。使用佈建的叢集,您可以選擇具有預先定義記憶體、CPU 運算能力和 I/O 頻寬的 Aurora 執行個體類別。
-
資料庫的可靠性對任何企業都至關重要。實現並維持資料庫的可靠性和復原能力代表要注意許多關鍵因素。這些因素包括備份和還原、複製、容錯移轉及時間點復原 (PITR) 功能。
此外,支援遍佈全球的應用程式/資料集,以及復原時間點目標 (RTO) / 復原點目標 (RPO) 的需求,對您而言可能很重要。
-
請考慮您的工作負載輸送量是否可能超過單一運算節點的容量。然後考慮您對資料庫的潛在需求,以支援高度並行的交易 (10,000 個或更多),以及是否需要在多個地理區域部署。
-
安全是 AWS 和您的共同責任。AWS 共同責任模式將此描述為雲端安全性和雲端內的安全性。特定的安全性考量包括在您資料的所有層級的資料保護、驗證、合規性、資料安全性、敏感資料儲存,以及稽核需求的支援。
選擇
既然您已了解評估資料庫選項的標準,那麼您已準備好選擇適合貴組織需求的 AWS 資料庫。
以下表格反白顯示了哪些資料庫會針對哪些情況和資料類型最佳化。使用它來協助確定最適合您使用案例的資料庫。
關聯式
AmazonRDS 提供七種關聯式資料庫引擎可供選擇,包括 Amazon Aurora MySQL 相容版本、Amazon Aurora PostgreSQL 相容版本、MySQL、MariaDB、PostgreSQL、Oracle 和 Microsoft SQL Server。
使用 AWS Outposts 上的 Amazon RDS,您可以在內部部署環境中部署全受管的資料庫執行個體。
Amazon RDS 是受管服務的集合,專為簡化雲端中資料庫設定、操作和擴展而設計。
Amazon RDS for SQL Server 讓使用者能在雲端中輕鬆設定、操作和擴展 SQL Server 部署。
Amazon RDS for Oracle 是全受管商業資料庫,可讓您輕鬆設定、操作和擴展雲端中的 Oracle 部署。
Amazon RDS for PostgreSQL 讓您能夠存取熟悉的 PostgreSQL 資料庫引擎功能。
Amazon RDS 讓使用者能更輕鬆地在雲端中設定、操作和擴展 MariaDB 伺服器部署。
Amazon RDS 讓使用者能更輕鬆地在雲端中設定、操作和擴展 MySQL 部署。
執行和管理在 MySQL 中建立的資料庫,但具有 Aurora 引擎中的其他功能。
與 PostgreSQL 相容的 Amazon Aurora
執行和管理在 PostgreSQL 中建立的資料庫,但具有 Aurora 引擎中的其他功能。
Amazon Aurora 提供內建的安全、連續備份、無伺服器運算、最多 15 個僅供讀取複本、自動多區域複寫以及與其他 AWS 服務整合。
Amazon Redshift 是一項全受管 PB 級資料倉儲服務,專為實現高速度、易用性和成本效益而進行優化。它旨在讓您使用現有的商業智慧工具來分析所有資料。
高效能、彈性、可擴展且無伺服器的 NoSQL 資料庫,專為支援鍵值和文件工作負載而設計。
Amazon DocumentDB (with MongoDB compatibility)
需要全受管的資料庫服務來簡化雲端中與 MongoDB 相容資料庫的設定、操作和擴展時,請使用 Amazon DocumentDB (with MongoDB compatibility)。
如果您需要可擴展、高可用性和受管,並與 Apache Cassandra 相容的資料庫服務,請使用 Amazon Keyspaces (適用於 Apache Cassandra),無需佈建、修補或管理伺服器,或安裝、維護或操作軟體。
如果需要快速、可靠且全受管的圖形資料庫服務,以便輕鬆建置及執行搭配高度連線資料集運作的應用程式,請選擇 Amazon Neptune。Neptune 的核心是專門打造的高效能圖形資料庫引擎。
如果您需要快速、可擴展、全受管、專門建置的時間序列資料庫來儲存和分析每天數兆個時間序列資料點,請使用 Amazon Timestream。Amazon Timestream 透過將最近的資料儲存在記憶體中,並根據使用者定義的政策,將歷史資料移至成本最佳化的儲存層,以管理時間序列資料的生命週期。
Amazon Quantum Ledger Database (QLDB)
如果需要全受管的帳本資料庫,以提供由中央受信任授權單位擁有的透明、不可變且可加密驗證的交易日誌,請選擇 Amazon QLDB。
使用
現在您已了解了資料形狀,資料如何適應您的環境、支持您的使用案例,以及每個資料庫服務針對什麼進行了最佳化。現在,您應該已經能選擇針對貴組織的需求進行了最佳化的 AWS 資料庫服務。
若要探索如何使用並了解有關每項可用 AWS 資料庫服務的更多資訊,我們提供了探索每個服務運作方式的途徑。下一節提供助您開始使用的深入說明文件、實作教學課程和資源的連結。
-
Amazon Aurora
-
Amazon DocumentDB
-
Amazon DynamoDB
-
Amazon ElastiCache
-
Amazon Keyspaces
-
Amazon MemoryDB
-
Amazon Neptune
-
Amazon QLDB
-
Amazon RDS
-
Amazon Timestream
-
Amazon Aurora
-
使用 Amazon Aurora 全球資料庫
我們協助您開始使用 Aurora 全球資料庫。本指南概述 Aurora 全球資料庫支援的引擎,以及 Aurora MySQL 和 Aurora PostgreSQL 的 AWS 區域可用性。
從 Amazon RDS for MySQL 遷移至 Amazon Aurora MySQL
我們向您展示如何將任何應用程式的資料庫從 Amazon RDS for MySQL 遷移至 Amazon Aurora MySQL,並將停機時間降至最低。本教學不在免費方案內,將花費您不到 1 USD。
建立無伺服器訊息處理應用程式
我們向您展示如何使用 Amazon Aurora Serverless (PostgreSQL 相容版本)、適用於 Aurora Serverless 的 Data API、AWS Lambda 和 Amazon SNS 建立無伺服器訊息處理應用程式。
-
Amazon DocumentDB
-
開始使用 Amazon DocumentDB
只需七個步驟,我們就能協助您開始使用 Amazon DocumentDB。本指南使用 AWS Cloud9 從 AWS 管理主控台直接連線並使用 MongoDB Shell 查詢叢集。
探索指南 »
使用 Amazon DocumentDB 設定文件資料庫
本教學可協助您開始使用 MongoDB Shell 從 AWS Cloud9 環境連線至 Amazon DocumentDB 叢集,並執行一些查詢。
使用 Amazon DocumentDB 的最佳實務
了解使用 Amazon DocumentDB (with MongoDB compatibility) 的最佳實務,以及使用它時的基本操作準則。
探索指南 »
-
Amazon DynamoDB
-
-
Amazon ElastiCache
-
Amazon ElastiCache 文件
探索 Amazon ElastiCache 完整文件集,包括 ElastiCache for Redis 和 ElastiCache for Memcached 的使用者指南,以及特定 AWS CLI 和 API 參考資料。
開始使用 Amazon ElastiCache for Redis
了解如何使用 Amazon ElastiCache 主控台建立、授予存取權、連線和刪除 Redis (已停用叢集模式) 叢集。
為線上應用程式建置工作階段存放區
了解如何將 Amazon ElastiCache for Redis 用作工作階段管理的分散式快取。並且學習設定 ElastiCache 節點的最佳實務,以及如何處理應用程式的工作階段。
設定 Redis 叢集以實現可擴展性和高可用性
了解如何在啟用 TLS 加密功能下使用 ElastiCache for Redis 7.0 版本建立並設定 Redis 叢集。在啟用叢集模式的情況下,Redis 叢集將提升可擴展性及高可用性。
-
Amazon Keyspaces
-
開始使用 Amazon Keyspaces (適用於 Apache Cassandra)
本指南適用於剛接觸 Apache Cassandra 和 Amazon Keyspaces (適用於 Apache Cassandra) 的人。它會引導您安裝成功使用 Amazon Keyspaces 所需的全部程式和驅動程式。
使用 Amazon Keyspaces 執行 Apache Cassandra 工作負載
了解如何使用 Property Graph 和 W3C 的 RDF 來建立叢集和建置圖形模型。了解如何使用 Apache TinkerPop Gremlin、SPARQL 撰寫查詢,疑難排解效能,以及與 AWS Glue 和 Elasticsearch 整合。
初階 Amazon Keyspaces 使用課程
了解 Amazon Keyspaces 的優勢、典型使用案例和技術概念。您可以透過提供的範例程式碼或 AWS 管理主控台中的互動工具嘗試此服務。
-
Amazon MemoryDB
-
Amazon Neptune
-
Amazon QLDB
-
開始使用 Amazon QLDB
在 Amazon Quantum Ledger Database (Amazon QLDB) 中,日誌是資料庫的核心。本指南提供 Amazon QLDB 服務元件及其互動方式的高階概觀。
建立您的第一個 Amazon QLDB 帳本
我們會引導您完成建立第一個 Amazon QLDB 範例帳本,並在其中填入資料表和範例資料的步驟。
搭配 AWS SDK 使用 Amazon QLDB 驅動程式
了解如何將 Amazon QLDB 驅動程式與 AWS SDK 搭配使用,以建立 QLDB 帳本並在其中填入範例資料。此驅動程式能讓應用程式使用交易資料 API 與 QLDB 互動。
-
Amazon RDS
-
開始使用 Amazon RDS
我們會說明如何使用 Amazon RDS 建立並連接到資料庫執行個體。您將學會如何建立使用 MariaDB、MySQL、Microsoft SQL Server、Oracle 或 PostgreSQL 的資料庫執行個體。
開始建立 MySQL 資料庫執行個體
我們會向您展示如何使用 AWS 管理主控台建立 Amazon RDS MySQL 資料庫執行個體,並使用標準 MySQL 公用程式 (如 MySQL Workbench) 連線至資料庫執行個體上的資料庫。
探索指南 »
建立 Web 伺服器和 Amazon RDS 資料庫執行個體
了解如何安裝含有 PHP 的 Apache 網頁伺服器,並建立 MySQL 資料庫。網頁伺服器在使用 Amazon Linux 的 Amazon EC2 執行個體上執行,而 MySQL 資料庫是 MySQL DB 執行個體。
建立並連接到 MySQL 資料庫
了解如何建立執行 MySQL 資料庫的環境、連接到資料庫,以及刪除資料庫執行個體。我們將使用 Amazon RDS 進行此工作,而且本教學中的所有操作都可用免費方案資格來進行。
-
Amazon Timestream