iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0

當我們在開發應用程式時,光有程式碼還不夠。想像一下,如果一個購物網站只能顯示首頁,但無法記住誰下了單、誰加入了購物車,這樣的網站幾乎沒有用。程式碼需要一個地方來「存放資料」,這個地方就是資料庫。資料庫在雲端裡,就像家裡的各種櫃子:衣櫃放衣服、冰箱放食物、書櫃放書。不同的東西要放進不同的櫃子,才能方便存取和管理。AWS 提供了許多不同的資料庫服務,今天我們要認識其中三個:DynamoDB、RDS 和 Aurora


DynamoDB — 雲端裡的快取櫃

DynamoDB 是一個 Serverless 的 NoSQL 資料庫。所謂 NoSQL,代表它不像傳統資料庫那樣用「表格 + 欄位」來管理資料,而是更靈活,常見的結構是「Key-Value」或「文件型態」。想像它像是一個超快的置物櫃,你只要有一個「鑰匙」(Key),就能快速找到你要的東西(Value)。

它的特點是:

  • 自動擴展:不需要人工調整,AWS 會自動幫你處理大量請求。
  • 高併發:同時有上萬人查資料也沒問題。
  • 低延遲:速度快,特別適合即時應用。

常見應用場景包括:遊戲排行榜(記錄玩家分數)、IoT 裝置資料(感測器數據)、聊天訊息記錄等。更棒的是,DynamoDB 提供相當大的免費額度(每月 25GB 儲存空間,以及一定量的讀寫次數),這對初學者或小專案來說幾乎不用花錢。

可以把 DynamoDB 想成「便利商店的置物櫃」:東西放進去,隨時都能快速取出,而且櫃子數量會自動增加,完全不用自己管理。


RDS — 傳統的資料櫃

RDS 全名是 Relational Database Service,顧名思義就是一個「關聯式資料庫」服務。它支援許多傳統的 SQL 資料庫引擎,例如:MySQL、PostgreSQL、MariaDB、Oracle、SQL Server。這些都是大家在學習資料庫時最常見的選項。

RDS 的特色是:

  • 支援 SQL 語法:適合需要進行複雜查詢或關聯操作的應用。
  • 交易處理能力強:像是銀行轉帳、電商訂單,都需要確保資料一致性,RDS 很適合這類場景。
  • 自動備份與修補:AWS 幫你處理基礎設施,使用者只要專心寫程式即可。

RDS 適合的情境有:電商平台的會員與訂單系統、財務記錄、公司內部系統。舉例來說,如果你要設計一個「線上書店」,可能需要建立「會員表格」、「商品表格」、「訂單表格」,這些彼此會有關聯,這正是 RDS 擅長的地方。

不過需要注意,RDS 雖然有免費層(通常是 750 小時的小型資料庫),但資源有限。如果長時間開著,超過免費額度,可能會開始產生成本。所以在學習時要記得定期關閉不使用的資料庫。


Aurora — 豪華的智慧櫃

Aurora 是 AWS 自家開發的雲端資料庫,可以看作是「進化版的 RDS」。它相容 MySQL 和 PostgreSQL,因此你可以用熟悉的 SQL 語法開發,但它的效能與可擴展性比傳統資料庫更強大。

Aurora 的特色:

  • 把「運算」和「儲存」拆開。在 Aurora 裡,運算節點(處理 SQL 查詢的地方)和儲存層(存放資料的地方)是獨立的,並透過一個 共享的叢集儲存卷 (Cluster Volume) 連結起來。這個共享儲存卷會分散到 三個可用區 (AZ),總共 六個 Storage Node。這樣的設計帶來幾個好處:

1. 自動儲存擴展

  • Aurora 的儲存會 自動以 10GB 為單位增加,從最小 10GB 到最大 128TiB
  • 使用者不需要手動調整磁碟大小,也不用擔心資料庫突然「爆滿」或效能下降。
  • 相比之下,傳統 RDS 的最大空間:MySQL / MariaDB / Oracle / PostgreSQL 上限是 64TiB,而 SQL Server 甚至只有 16TiB。Aurora 的擴展能力更強。

2. 加強版的多可用區容錯能力

  • Aurora 的資料會 在三個 AZ 各自複製兩份,總共有 六份複本
  • 這樣即使某個 AZ 或某個儲存節點故障,仍然有其他複本可以即時接手,幾乎不會有資料遺失。
  • 由於是分散式儲存架構,故障轉移 (Failover) 非常快,系統停機時間降到最低。

3. 最佳化的運算與複寫方式

  • Aurora 的 運算節點 (Compute Node) 負責處理查詢,並透過共享儲存卷來存取資料。
  • Aurora 的 複寫完全在儲存層進行,不需要像傳統 RDS 那樣,主節點與從節點間必須做「同步複寫」。
  • 因為運算節點是 無狀態 (Stateless),隨時可以快速替換,不會影響資料。這讓系統更快、更穩、更好維護。

最後是RDS vs Aurora 架構比較

https://ithelp.ithome.com.tw/upload/images/20250919/20106094wqhAJjlVmJ.png

總結

在 AWS 的世界裡,「資料的家」有很多選擇,每一種都有不同定位:

  • DynamoDB:就像便利商店的置物櫃,快速、簡單、不用管伺服器,還有大方的免費額度。非常適合入門或需要高併發的應用。
  • RDS:就像傳統的書櫃,資料有條理、能建立關聯,適合需要 SQL 與強一致性的場景。免費層有限,但學習價值高。
  • Aurora:像是智慧豪華櫃,效能強大、能自動調整容量,適合商業級應用,但要考慮成本。

👉 建議初學者的選擇路線:

  • 想省錢、快速上手 → 選 DynamoDB(挑戰我會選用這個!)
  • 想熟悉 SQL、體驗傳統資料庫 → 選 RDS
  • 想了解高階雲端資料庫架構 → 研究 Aurora,但不建議一開始就直接使用。

記住:選擇資料庫就像選擇櫃子,要看你放的東西是什麼,以及未來要怎麼用。學會挑對「資料的家」,應用程式才能更穩定、更強大。


上一篇
Day 4 數位保險箱:AWS 儲存服務
下一篇
Day 6 雲上的 AI 腦袋:認識 Amazon Bedrock
系列文
來都來了,那就做一個AWS從0到100的微服務AI小平台!8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言