利用 Amazon Aurora Global Database 快速進行跨區域災難復原和

低延遲全域讀取

在本教學中,您將了解如何建立跨多個 AWS 區域的 Amazon Aurora Global Database 部署,複制資料而不影響效能。Aurora 全域數據庫可從整個區域中斷的情況中進行災難復原,並實現低延遲的全域讀取。

Amazon Aurora 是 MySQL 和 PostgreSQL 相容的關聯式資料庫,結合了傳統企業資料庫的效能和可用性,以及開放原始碼資料庫的簡單與經濟實惠優勢。

Aurora Global Database 包含一個主要 AWS 區域 (用於掌控您的資料) 和多個唯讀次要 AWS 區域 (用於複寫資料)。您的寫入將主資料庫,但是您可以從任何區域進行讀取,並能從低延遲中獲益。

本教學將使用具有 MySQL 相容性的 Amazon Aurora。本教學不在免費方案之中,如果您按照本教學中的步驟並在結束時終止資源,本教學只會花費您不到 1 USD。

先決條件

Amazon Aurora 資料庫叢集包含一個或多個資料庫執行個體以及一個可管理這些資料庫執行個體的資料的叢集磁碟區。Aurora 叢集磁碟區是可跨多個可用區域的虛擬資料庫儲存磁碟區,其中每個可用區域均含有資料庫叢集資料副本。Aurora 資料庫叢集包含兩種資料庫執行個體類型:主資料庫執行個體 (可支援讀取和寫入操作) 及 Aurora 複本 (可連接至與主資料庫執行個體相同的儲存磁碟區且僅支援讀取操作)。每個 Aurora 資料庫叢集在各可用區域中最多可以有 15 個 Aurora 複本。萬一主資料庫執行個體不可用,則 Aurora 會自動容錯移轉至 Aurora 複本。

在本教學中,您將建立一個 Aurora Global Database,其中某一區域擁有要叢集而其他區域具有次要叢集。您可以自行決定使用哪些區域。建議您在要使用的每個區域中都設有一個應用程式。例如,如果您的 Aurora Global Database 在 us-east-1 中含有一個主要叢集,且在 eu-west-3 中具有一個次要叢集,則您應該在 us-east-1 中設定一個執行個體並在 eu-west-3 中設定另一個執行個體。

另外,如果您想節省時間,則您可以為每個區域建立一個安全群組,以允許從執行個體傳入的連線。例如,您可以使用類型 MYSQL/Aurora 的入站規則建立一個安全群組,以允許在連接埠 3306 上從執行個體的安全群組傳入 TCP 連線。

最後,為了測試您的 Aurora Global Database (請參閱步驟8),您將需要一個 MySQL 用戶端。如果您的應用程式執行個體正在執行 Amazon Linux,則安裝 MySQL 用戶端可如同執行 sudo yum install mysql 一樣簡單,但是確切命令視您所執行的作業系統而定。如果您執行的是 Windows,則您可以改為下載 MySQL Workbench。

關於本教學
時間 10 分鐘                                           
費用 低於 1 USD
使用案例 資料庫
產品 Amazon Aurora、Amazon RDS
對象 資料庫管理員、開發人員
等級 中級
上次更新日期 2019 年 6 月 3 日

步驟 1:存取 Amazon RDS 主控台

1.1 — 開啟瀏覽器並導覽至 Amazon RDS 主控台。如果您已有 AWS 帳戶,請登入主控台。否則,請建立新的 AWS 帳戶來開始使用。

1.2 — 在右上角選取您希望啟動主要 Aurora 資料庫叢集的區域。針對本教學的目的,我們將使用 us-east-1 做為主要區域,eu-west-1 做為次要區域。

已經有帳戶了嗎? 登入您的帳戶

1.3 — 在 Amazon Aurora 視窗中按一下「建立資料庫」。

1.4 — 在 Aurora Global Database 視窗中向下捲動,然後按一下「立即試用」。如果您沒有看到「立即試用」選項,請按一下這裡

步驟 2:引擎選項

2.1 — 在引擎類型上,選取 "Amazon Aurora"。

2.2 — 在版本上,選取「與 MySQL 相容的 Amazon Aurora」。

2.3 — 在版本上,選取最新的 MySQL 版本。

2.4 — 在資料庫位置上,選取「全域」。

2.5 — 選擇「生產」範本。

步驟 3:全域資料庫設定

3.1 — 針對全域資料庫識別符,鍵入 "global-database-1"。

步驟 4:主要區域設定

4.1 — 針對資料庫執行個體大小,選取大型執行個體 (以 .large 為結尾)。

4.2 — 針對可用性與耐久性,選擇「不要建立 Aurora 複本」。

請注意,建議在生產環境中使用 Aurora 複本,因為它可讓您擴展讀取,並且可以在與主資料庫相同的區域內自動進行容錯移轉。在本教學中,我們實際並未新增 Aurora 複本,只是為了方便練習而已。

步驟 5:連線

5.1 — 選取您要建立資料庫的 VPC。

請注意,建立之後資料庫即無法遷移至不同的 VPC。

5.2 — 按一下「額外連線組態」。

5.3 — 選取子網路群組的預設值。

5.4 — 在公開存取上,選取「否」。

這代表您必須在同樣的 VPC 中從 EC2 執行個體連線到資料庫。

5.5 — 在 VPC 安全群組上,選取「新建」。如果您剛好具有允許在連接埠 3306 上傳入 TCP 連線的安全群組,則可改為選擇此群組。

5.6 — 在新 VPC 安全群組名稱中,鍵入 "global-database"。

5.7 — 保留資料庫連接埠的預設值。

步驟 6:額外組態

6.1 — 保留資料庫選項、備份、監控、日誌匯出、維護和刪除保護的預設值。

6.2 — 按一下「建立資料庫」。

建立執行個體時,您會看到說明如何取得登入資料的橫幅。這是儲存登入資料的好機會,因為這是檢視此密碼的唯一機會。

6.3 — 按一下「檢視登入資料詳細資訊」。

6.4 — 儲存使用者名稱和密碼。

步驟 7:新增次要區域

7.1 — 選取 "global-database-1"。

7.2 — 按一下「動作 > 新增區域」。

7.3 — 從下拉式功能表中,選取區域。

7.4 — 重複步驟 4.1 至 5.7。

7.5 — 按一下「新增區域」。

資料庫可用後,請繼續執行步驟 8。

步驟 8:測試 Aurora Global Database

8.1 — 按一下主要資料庫。

8.2 — 複製寫入器端點。

開啟兩個終端機視窗,登入至您主要和次要區域中的執行個體,然後使用 mysql 命令列用戶端連接到資料庫。

您現在可以建立資料庫、建立資料表並寫入記錄。您寫入主叢集的所有內容均會複寫到次要叢集中。

8.3 — 連接至主資料庫:

$ mysql -h endpoint -P 3306 -u admin -p

在提示要輸入密碼時,請輸入在步驟 6.6 中儲存的密碼。

8.4 — 建立資料庫並寫入數據。

mysql> CREATE database tutorial;
查詢正常,1 行受影響 (0.01 秒)

此時,您可以使用教學資料庫、建立資料表並新增紀錄。

8.5 — 前往次要區域。

8.6 — 按一下次要資料庫。

8.7 — 複製讀取者端點。

8.8 — 連接至次要資料庫:

$ mysql -h endpoint -P 3306 -u admin -p

在提示要輸入密碼時,請輸入在步驟 6.6 中儲存的密碼。

8.9 — 讀取資料:

mysql> USE tutorial;
資料庫已變更

現在,您可以確認資料庫已複寫至次要資料庫。如果您已建立了資料表,則您可以寫入主要叢集並從次要叢集讀取資料。

步驟 9:容錯移轉至次要區域

雖然預設的 Aurora 叢集可為您提供該區域內的容錯移轉功能,但 Aurora Global Database 允許您將容錯移轉到另一個區域的次要叢集中。這意味著即使整個區域不可用,您的資料庫仍能存留。

對 Aurora Global Database 執行容錯轉移涉及從原始全域資料庫中移除次要叢集 (從而將其轉換回具有完整讀寫功能的區域叢集),然後將其用作新 Aurora Global Database 中的主要叢集。

您可以依照以下指示,手動執行容錯移轉。

9.1 — 停止寫入主要資料庫。

9.2 — 選取次要叢集。

9.3 — 按一下「動作 > 從全域移除」。

9.4 — 按一下「移除並提升」,進行確認。

9.5 — 設定您的應用程式以寫入新提升的叢集。

9.6 — 仍在次要區域中,選取區域叢集。

9.7 — 按一下「動作 > 建立全域資料庫」。

9.8 — 從下拉式功能表中,選取區域。

9.9 — 重複步驟 4.1 至 5.7。

步驟 10:清理

要完成本教學,您將刪除您的 Aurora Global Database。您也可將其保留下來,但是請注意,這將會產生費用。

若要刪除 Aurora Global Database,請前往 RDS 儀表板並遵循這些指示:

10.1 — 在左窗格中選取「資料庫」。

隨即將向您顯示所有 Aurora 資料庫叢集的清單。

10.2 — 選取全域資料庫執行個體。

10.3 — 按一下「動作 > 刪除」。

10.4 — 系統會向您詢問是否要建立最後的備份。通常情況下,這是個不錯的主意,但在此教學中並無必要。選取「否」,然後按一下「刪除」。

10.5 — 選取全域資料庫叢集。

10.6 — 按一下「動作 > 從全域移除」。

10.7 — 按一下「從全域移除」,進行確認。

10.8 — 選取區域資料庫叢集。

10.9 — 按一下「動作 > 刪除」。

10.10 — 系統會向您詢問是否要建立最後的快照。通常情況下,這是個不錯的主意,但在此教學中並無必要。選取「否」,然後按一下「刪除資料庫叢集」。

10.11 — 切換至次要區域並執行步驟 10.1 至 10.9。

10.12 — 選取全域資料庫。

10.13 — 按一下「動作 > 刪除」。

10.14 — 鍵入 "delete me" 並按一下「刪除」,進行確認。

叢集的狀態就會變更為「正在刪除」。

恭喜

您已建立了一個具有跨區域複寫的 Aurora Global Database。您已了解如何將讀取擴展到其他區域,以便能從較低延遲中獲益,並且您已執行容錯移轉至次要區域。

本教學對您有幫助嗎?