在雲計算、雲服務等概念層出不窮的今天,放在雲端的數據庫似乎已經不是什麼新鮮事了。在這裡我們將介紹亞馬遜新推出的Amazon RDS,也就是作為雲服務的MySQL數據庫。BKJIA推薦《MySQL數據庫入門與精通教程》
Amazon最近給他們的Amazon Web Services (AWS) 平台增加了一個新的MySQL 數據庫,叫做Amazon 關系數據庫服務(RDS),它能和傳統的MySQL系統一樣工作。在RDS之前,客戶在AWS的數據庫服務上有幾種選擇:
運行在Amazon Machine Image (AMI) 的客戶自提供數據庫服務
Amazon Web服務所擁有的SimpleDB service
SimpleDB 是一個簡單的數據存儲,它缺乏一個完全成熟的關系數據庫管理系統(RDBMS) 所擁有的完善的功能,但是提供了一種可伸縮的鍵值存儲。客戶自提供數據庫服務和傳統的數據中心環境差不太多,由客戶自己的員工負責管理數據庫應用程序,包括配置,性能調優,容量管理,版本升級,打補丁和數據備份等。你可以使用和傳統MySQL數據庫連接的交互工具來以同樣的方式控制它。
Amazon RDS 使得客戶員工減少了很多MySQL的運維任務,有了它,數據庫計算資源的可擴展性和性能監測都無需人為的干涉。 而數據庫軟件通常都由服務提供商來打補丁和備份,並且是由客戶定義的保留時間段來做。可擴展性來自AWS 所謂的“實例類”,總共有五個。你可以從一個普通的虛擬CPU 內核以及1.7G的內存被叫做“小的數據庫實例” )逐步增大到 “超大型的數據庫實例”, 也就是68G內存和8個虛擬CPU內核,而備份存儲被活動狀態的數據庫數據100%占滿後,額外的存儲空間是要收費的。而且數據存在另一個不同的可用區而不是該實例所在的地方。 這個和傳統數據安全模型的異地數據保護的概念是類似的。
這個服務得益於靈活性,AWS定義了一個每周4小時維護窗口。 這個維護窗口可以被用來為應用軟件打補丁和數據備份。客戶不能選擇退出打補丁的過程。但是他們可以指定維護窗口在一周內何時發生。在維護窗口中,數據庫實例會在特定時間段內被離線。Amazon 聲明 “只有很少情況下,打補丁需要超過你的維護窗口的部分時間,即使發生也只是為了安全或者持久性相關的補丁。”
這意味著客戶必須預期和計劃這樣一個每周發生的實例離線事件。 即使服務商表示不太可能用完四個小時的時間,但客戶也會預期最差的情況,每周要有四個小時的實例離線時間。對於能夠接受一個相對短時間的數據庫實例不可用的客戶,按計劃的關閉時間而只有最小可能的影響的方案也許能夠被接受。但有一些客戶沒有這樣選擇的自由。他們必須保證服務24x7可用,即使在每周的維護窗口運行的時候也一樣。在傳統的數據庫部署中數據庫復制技術常常被用來達到高可用性。復制技術能不能也用到RDS中,從而讓客戶能夠為不同的數據庫實例指定不同的維護時機呢? 比如,如下幾種情況可能嗎?
◆2個或更多的實例運行在master-slave 模式?
◆2個實例運行在master-master 模式?
◆2個或更多的實例運行在cluster模式?
現在還沒有很明確的答案。 在RDS 服務細節頁面 的“即將推出的新特性” 一節中,Amazon 預期數據復制可用性的選擇將會是:
提供高可用性 --對於想要超出Amazon RDS 自動備份之外靈活性的那些開發者和商業人士,將不需要對此額外付費。有了高可用性的支持,他們能夠很容易並且在成本有效的情況下在多個可用區之間同步復制數據庫實例,來防止出現單一存儲導致的失敗。
看起來這將會通過多個可用區為代價來來解決可用性問題。而解決可用性的傳統技術如master-slave 和 master-master 模型在這一點上並不能起到作用。