AWS - RDS

AWS提供了2種數據庫,RDS和DynomoDB,前者是傳統的關係型數據庫,目前包括Mysql,PostgrepSQL, Oracle和 MS SQL; 後者是NoSQL; 豆子以MySQL爲例,把AWS RDS的基本功能過一遍。


接下來會演示以下功能:

  1. 如何創建MySQL 實例

  2. 如何通過EC2連接MySql 實例

  3. 如何創建Read Replica

  4. 如何Promote Read Replica,

  5. 如何備份,觀察事件,發送通知

  6. 如何刪除 MySQL 實例



1) 首先來看看如何創建MySQL實例


登陸RDS的管理界面,點擊 Launch a DB instance

wKioL1PV9Q6i3v9mAACRSQU4OPI277.png


選擇MySQL

wKioL1PV9Q-gCGoTAABLTaQp6nw799.png


豆子用的免費賬號,就不用Multiple-AZ的選項了,這個是一個高可用的選項,會在不同的AZ上創建同步的MySQL實例,如果當前的實例或者AZ掛了,會自動Failover 到其他的AZ實例。


屌絲用不起HA,實驗就用單點AZ好了。

wKiom1PV8_iiFqO7AABnvSSCANU022.png

接下來設置數據庫的信息,不要Multip-AZ,實驗也不需要高速度的IOPS,都選NO

wKioL1PV9RTyg_l_AABeGCBSThI979.png


高級設置裏面,需要選擇VPC和Security Group。豆子這裏選擇默認的VPC和安全組,如果有需要的話,用戶可以自定義VPC(可以參見我的NAT instance的博客一文)

wKiom1PV8_3inqOBAAC56AP_SvU111.png



然後點擊Launch DB Instance 就創建成功了。


wKioL1PV9RiSD-8uAABhtHRAJuw432.png


顯示正在創建中,這個大概要幾分鐘的時間

wKioL1PV9RnSRfDWAABYr_Vkcwk698.png


創建了RDS的實例,和EC2的實例一樣,我們還需要配置防火牆(Security Group),打開看看,咦,原來默認的VPC只能在EC2裏面修改設定。

wKiom1PV9AGxCjE8AABy7orglrg710.png


切換到EC2的Security Group,添加一條TCP 3306的策略,允許我的Web Server 組進行訪問

wKioL1PV9R6Q4DHlAABrrfMU1Ik172.png


切換回RDS 界面,發現已經準備就緒了

wKioL1PV9SHgwBiuAADeleFkn18734.png



2) 如何連接訪問RDS實例


和訪問EC2實例類似,RDS也有自己的訪問點 (EndPoint)。


登錄到我的web server,然後輸入以下命令,就可以連接到RDS實例了


wKiom1PV9AjhRoVwAAA4Tfxs07M995.png

查看一下數據庫,沒錯,就是他。

wKioL1PV9SKyAki3AAARAb2Lr9U201.png


做個對比試驗,把前面添加的防火牆策略去掉看看還能不能訪問;

wKiom1PV9AmT28NtAABl0D_rPhQ029.png

去掉之後,就無限死循環的卡在登錄連接上了


wKiom1PV9AqiOKd7AAAP3juJ0_g845.png


而且這個時候的RDS界面也會提示你沒有能夠連入的權限設定

wKioL1PV9SbRJF7yAADAjxzqvrk009.png


3) 創建一個Read Replica


首先需要知道什麼是Read Replica。這個和Multiple AZ的區別是什麼。AWS裏面有2種HA的設置,一個是Mult-AZ,一個是Read Replica。Mult-AZ的作用是Failover,如果當前的實例或者AZ掛了,他會自動轉到其他的AZ的實例上去。Read Replica的作用則主要是分流(Load Balance)。即使是我的單點AZ,也是可以創建Read REplica的。


點擊Create Read Replica



wKiom1PV9A-TmbMXAADh5TTPL8A249.png


創建一個新的Read Replica DB實例

wKiom1PV9BHwDpAnAABsoGtWhnI422.png


顯示狀態,原有的實例會自動創建一個備份,然後通過這個備份創建一個新的Read Replica實例

wKiom1PV9BPQh3oGAABt7Axczxc393.png

創建好之後,可以對比看看他們的區別


wKiom1PV9BmwSDg_AAFgKpMlADY889.png

因爲是自動同步所有的設置,所以從我的web server同樣可以訪問這個Read Replica Instance


wKioL1PV9TSwUNDtAAA6eORqnYs918.png


來看看這個Read Replica Instance能執行哪些操作。


按照AWS的說明,我可以創建3個連續的Read Replica實例,比如B是A的read replica,C又可以是B的read Replica,爲什麼我這裏灰掉了呢?


仔細看看,原來我沒有打開自動備份的緣故。前面說過了,創建Read Replica的時候會自動創建備份快照,然後通過快照來創建的新實例。因此自動備份的選項必須打開。

wKioL1PV9TngWqygAADcauBZ6vU502.png


Modify設定之後,就可以繼續創建 Read Replica了

wKioL1PV9TzS4aKWAADxR9ZV4Ew450.png





4) 如何Promote Read Replica


這個功能主要是用於將一個Read Replica實例提升爲一個獨立的普通的DB實例。一般說來,比如創建index(索引)的時候,因爲是一個很耗時間的過程,AWS推薦在Read Replica上先進行,然後Promote Read Replica作爲主要的訪問數據庫,然後再回頭去在原先的實例上進行操作;另外,這也可以作爲災難恢復的一種備份手段,不過這個就和Mult -AZ的功能重複了,不如直接使用Multip-AZ好了。


點擊 Promote Read Replica

wKioL1PV9T6wTH0TAAA3ZPnipcc787.png


警告信息,AWS建議停止事務處理以保證數據完整性;Promote會導致Read Replica實例重啓,而且該過程是不可逆的

wKiom1PV9CbR9Jj4AABIJCysC8o076.png


提升之後就和普通的沒有區別了

wKioL1PV9UKyjPwSAACMx4IwGE8438.png



5)如何備份DB Instance


首先,自動備份都是推薦打開的。不過自動備份的快照在刪除DB實例的時候會自動刪除,因此有的時候也需要手動備份,這個手動備份的快照是獨立存在的,即使錯誤的刪除了DB實例,仍然可以通過這個來恢復。


手動備份

wKiom1PV9CnADPMSAAAlf-pOU-E563.png


可以在Snapshots的控制板面查看所有的快照,包括自動和手動創建的。



wKiom1PV9CzRSgdyAAC3jPjgcVc203.png


還可以查看Events,可以列出所有的數據庫操作行爲

wKiom1PV9C6TKDDeAAB607v7KIY589.png



我們還可以創建一個SNS的Topic,給管理員發送email。然後在Event Subscriptions裏面綁定這個Topic就可以自動發送事件通知了。


wKioL1PV9UnDXka6AABxQTJYzkY309.png


6) 最後,我們來看看如何刪除DB Instance


點擊Delete


wKiom1PV9DKAI9b2AADavYsX4ug782.png

他會提示是否進行最後一次的手動快照,這樣的話,萬一想恢復這個刪除的實例,也是可以的。

根據自己的需求,選擇之後確定就可以刪除了

wKiom1PW2THTe6kEAAAgDhBiuy8675.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章