AWS更新數(shù)據(jù)庫服務(wù)Amazon RDS,在多可用區(qū)域(Multi-AZ)部署加入新選項(xiàng),提供2個(gè)額外的可讀備用執(zhí)行實(shí)例,提升至2倍速交易提交延遲,并且使自動(dòng)故障轉(zhuǎn)移可在35秒內(nèi)完成。
當(dāng)前Amazon RDS提供兩種方法來提高服務(wù)的可用性和性能,第一種是多可用區(qū)域,第二種則是可讀執(zhí)行實(shí)例。多可用區(qū)域提供高可用性和自動(dòng)故障轉(zhuǎn)移,Amazon RDS會(huì)在第二個(gè)可用區(qū)域中,創(chuàng)建數(shù)據(jù)庫存儲(chǔ)副本,并將資料從主要數(shù)據(jù)庫同步復(fù)制到備用數(shù)據(jù)庫執(zhí)行實(shí)例,以實(shí)現(xiàn)高可用性。由主要數(shù)據(jù)庫執(zhí)行實(shí)例向應(yīng)用程序提供服務(wù),而備用數(shù)據(jù)庫則隨時(shí)做好準(zhǔn)備,在發(fā)生故障時(shí)接管。
可讀副本則是讓應(yīng)用程序可以跨多個(gè)數(shù)據(jù)庫執(zhí)行實(shí)例,擴(kuò)展其讀取操作,數(shù)據(jù)庫引擎將資料異步復(fù)制到可讀副本,而應(yīng)用程序?qū)懭胝埱蟀l(fā)送到主要數(shù)據(jù)庫,讀取請求則可以跨可讀數(shù)據(jù)庫副本進(jìn)行負(fù)載均衡,如果主要節(jié)點(diǎn)發(fā)生故障,AWS讓用戶手動(dòng)將可讀副本升為主要數(shù)據(jù)庫。
AWS解釋,這兩種方法的用途都不同,多可用區(qū)域提供應(yīng)用程序高可用性、持久性和自動(dòng)故障轉(zhuǎn)移,而可讀副本則提供應(yīng)用程序讀取的可擴(kuò)展性。但考慮到用戶的應(yīng)用程序,可能同時(shí)具有高可用性、自動(dòng)故障轉(zhuǎn)移和讀取可擴(kuò)展性的需求,因此AWS新推出具有兩個(gè)可讀備用執(zhí)行實(shí)例的多可用區(qū)域部署選項(xiàng)。
具有兩個(gè)可讀備用執(zhí)行實(shí)例的多可用區(qū)域部署選項(xiàng),結(jié)合自動(dòng)故障轉(zhuǎn)移和可讀副本,該部署選項(xiàng)目前適用MySQL和PostgreSQL數(shù)據(jù)庫,AWS提到,該選項(xiàng)具有一個(gè)主要執(zhí)行實(shí)例,和兩個(gè)可讀備用執(zhí)行實(shí)例的數(shù)據(jù)庫集群,其提供2倍速的交易提交延遲,并且能在35秒內(nèi)完成自動(dòng)故障轉(zhuǎn)移。
當(dāng)用戶激活這個(gè)新的數(shù)據(jù)庫集群部署選項(xiàng)時(shí),Amazon RDS會(huì)在三個(gè)不同的可用區(qū)域,配置主要數(shù)據(jù)庫和另外兩個(gè)可讀副本,并且進(jìn)行監(jiān)控,在主節(jié)點(diǎn)方式故障時(shí),激活故障轉(zhuǎn)移,如此用戶就不需要在高可用性和可擴(kuò)展性間做選擇,多可用區(qū)域數(shù)據(jù)庫集群可以同時(shí)兼顧兩者。
新的部署選項(xiàng)和傳統(tǒng)的多可用區(qū)域部署相比,擁有四個(gè)優(yōu)點(diǎn),除了使用配備NVMe SSD的M6gd和R6gd執(zhí)行實(shí)例,提升寫入操作速度之外,其使用Amazon EBS來存儲(chǔ)資料和交易日志,新的多可用區(qū)域數(shù)據(jù)庫集群執(zhí)行實(shí)例,提供本地存儲(chǔ)來存儲(chǔ)交易日志,而且因?yàn)楸镜卮鎯?chǔ)經(jīng)優(yōu)化,也帶來低延遲和高IOPS的特性,寫入操作會(huì)先寫入到本地端存儲(chǔ)交易日志,之后才會(huì)更新到數(shù)據(jù)庫存儲(chǔ)磁盤上永久存儲(chǔ)。
而新的數(shù)據(jù)庫集群部署的故障轉(zhuǎn)移操作,會(huì)比傳統(tǒng)多可用區(qū)域數(shù)據(jù)庫執(zhí)行實(shí)例更快,新的數(shù)據(jù)庫集群創(chuàng)建的可讀副本,為完整的數(shù)據(jù)庫執(zhí)行實(shí)例,因此在35秒內(nèi)就可以完成故障轉(zhuǎn)移,且在故障轉(zhuǎn)移的情況下,系統(tǒng)將完全自動(dòng)化提升一個(gè)新的主節(jié)點(diǎn),并將舊的主節(jié)點(diǎn)重新配置為新的讀取執(zhí)行實(shí)例。
舊的多可用區(qū)域數(shù)據(jù)庫執(zhí)行實(shí)例會(huì)在存儲(chǔ)層級,復(fù)制所有變更,但是在新的集群中,僅會(huì)復(fù)制交易日志,并且使用仲裁機(jī)制來確認(rèn)至少有一個(gè)備用數(shù)據(jù)庫已經(jīng)確認(rèn)更改,當(dāng)其中一個(gè)第二數(shù)據(jù)庫確認(rèn)交易日志,已經(jīng)寫入到本地端磁盤,數(shù)據(jù)庫交易便會(huì)提交同步操作完成資料同步。
用戶可以搬遷現(xiàn)有RDS數(shù)據(jù)庫到新的多可用區(qū)域數(shù)據(jù)庫集群,借由拍攝資料快照,創(chuàng)建現(xiàn)有數(shù)據(jù)庫執(zhí)行實(shí)例存儲(chǔ)層級的備份,便可以使用快照創(chuàng)建新的數(shù)據(jù)庫集群。目前新的部署選項(xiàng),僅先在美東、美西和歐洲地區(qū)提供。