在雲端運算、雲端服務等概念層出不窮的今天,放在雲端的資料庫似乎已經不是什麼新鮮事了。在這裡我們將介紹亞馬遜新推出的Amazon RDS,也就是作為雲端服務的MySQL資料庫。 51CTO推薦《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 模型在這一點上並不能發揮作用。