昨天說備份的東西,都丟給RDS處理就好,
今天就從架構面的角度,來看為什麼這個說吧。
RDS的資料儲存,也是用EBS Volume(忘記的話可以再看一次D09)來進行。
與EC2的差異可以想像EC2是以作業系統(或是說主機)來連接EBS,
RDS則是建一個資料庫(DB)來連接EBS。
RDS有提供多可用區域(High Availability,簡稱HA)的功能,
意思是會在同個Region內的不同AZ中,同時建置RDS的資料庫(DB Instance),並讓兩個Instance進行同步備份。
主要操作的資料庫被稱作Primary DB Instance,使用者可對此資料庫進行修改;
作為備援用的資料庫則稱作Standy DB,平常不開放使用者使用,僅有在Primary DB發生問題時,才能使用。
每當使用者對Primary DB進行修改時,備援用的Standy DB也會同步進行相同的資料異動。
而這兩個DB是處於不同的AZ,所以當Primary DB發生異常,
或是有天災人禍造成Primary DB所在的AZ實體機房受損時,
也有一個資料一致的Standy DB可以使用。
(想知道很多專有名詞的內容可以參考官方文件)
聽起來RDS在備份這塊好像很猛,
但資料庫本身,常常不會只有一個使用者在使用,
而會有很多使用者在使用(比如前年口罩大缺貨,大家都要查哪裡還有口罩),就會造成資料庫的負擔,甚至超過可負擔的連線數量,就會導致資料庫崩潰。
為解決這個問題RDS也有提供相對應的解法,就留到明天說明。