在經(jīng)歷了一個beta階段,并且見證了客戶將超過1,000個on-premises數(shù)據(jù)庫遷移到云端之后,AWS正式發(fā)布了他們的數(shù)據(jù)庫遷移服務(wù)(Database Migration Service)。這個按需使用的云服務(wù)支持實時的遷移場景,借助無模式的轉(zhuǎn)換工具,在遷移過程中,用戶可以使用該服務(wù)切換數(shù)據(jù)庫平臺。
Amazon在去年秋天他們的年度re:Invent會議上第一次透露該服務(wù),并且在一個AWS region中為客戶提供了功能有限的預(yù)覽功能。現(xiàn)在,數(shù)據(jù)庫遷移服務(wù)(DMS)面向所有的客戶開放,可以在AWS全球八個region上使用。在一篇宣布該服務(wù)可用的博客文章中,AWS的首席布道師Jeff Barr描述了這個管理型的服務(wù)是如何運行的。
AWS數(shù)據(jù)庫遷移服務(wù)需要在AWS上搭建并管理一個副本實例(replication instance)。這個實例從源數(shù)據(jù)庫中獲取數(shù)據(jù),并將其加載到目標(biāo)數(shù)據(jù)庫之中,它可以在一次性的遷移之后,進(jìn)行持續(xù)的復(fù)制,從而最小化遷移過程的停機(jī)時間。在這個過程中,DMS會處理與遷移相關(guān)的復(fù)雜細(xì)節(jié),包括從一個數(shù)據(jù)庫平臺到另外一個數(shù)據(jù)庫平臺的數(shù)據(jù)類型轉(zhuǎn)換(例如從Oracle到Aurora)。這個服務(wù)同時會監(jiān)控副本以及實例的健康狀況,如果出錯的話,會給出提示,如果必要的話,還會自動地提供替換實例。
盡管DMS端點始終要位于AWS中——運行在EC2虛擬機(jī)上或位于關(guān)系型數(shù)據(jù)庫服務(wù)(Relational Database Service)中——但是其他的端點可以位于任意可訪問到的主機(jī)上。副本實例位于端點之間,處理數(shù)據(jù)的安全傳輸。DMS可以用來實現(xiàn)一次性的遷移,也可以實現(xiàn)數(shù)據(jù)庫后續(xù)的復(fù)制。在配置遷移任務(wù)的時候,用戶可以選擇“完全加載已有的數(shù)據(jù),完全加載后續(xù)的數(shù)據(jù)變更或者僅復(fù)制后續(xù)的數(shù)據(jù)變更”。DMS所支持的關(guān)系型數(shù)據(jù)庫范圍廣泛,支持相似的數(shù)據(jù)庫平臺之間的遷移,也支持從一個數(shù)據(jù)庫平臺遷移至另一個數(shù)據(jù)庫平臺。
AWS數(shù)據(jù)庫遷移服務(wù)可以用于Oracle、SQL Server PostgreSQL、Amazon Aurora、MySQL或MariaDB的遷移。DMS支持同種類型之間的遷移,如Oracle到Oracle,也支持不同數(shù)據(jù)庫平臺之間的遷移,如Oracle到Amazon Aurora或SQL Server到MySQL之間的遷移。AWS數(shù)據(jù)庫遷移服務(wù)能夠?qū)n-premises數(shù)據(jù)庫遷移至Amazon RDS或Amazon EC2中,將運行在EC2上的數(shù)據(jù)庫遷移至RDS,或者進(jìn)行反向的遷移,也能將某個RDS數(shù)據(jù)庫遷移至另外一個RDS數(shù)據(jù)庫。
不管使用哪種源或目標(biāo)數(shù)據(jù)庫引擎,要讓DMS正常運行起來,用戶不需要在本地安裝驅(qū)動或軟件。關(guān)于用戶遷移數(shù)據(jù)庫以及將數(shù)據(jù)庫引擎替換為更為開放的方案方面, Amazon指出在這個比例上會有一些驚喜的發(fā)現(xiàn)。
“在AWS數(shù)據(jù)遷移服務(wù)的預(yù)覽版本期間,上百家客戶已經(jīng)將成千的on-premises數(shù)據(jù)庫轉(zhuǎn)移到了Amazon Aurora、其他Amazon RDS引擎或運行在Amazon EC2的數(shù)據(jù)庫之中”,AWS關(guān)系型數(shù)據(jù)庫服務(wù)(Relational Database Service)的副總裁Hal Berenson這樣說道,“客戶不斷地告訴我們,他們想要將on-premises數(shù)據(jù)庫遷移到AWS上,并且遷移為更加開放的數(shù)據(jù)庫引擎方案,不過對AWS數(shù)據(jù)庫遷移服務(wù)的反響還是超出了我們的預(yù)期。在預(yù)研版本期間,三分之一的數(shù)據(jù)庫遷移都使用到了AWS的數(shù)據(jù)遷移服務(wù),他們不僅將數(shù)據(jù)庫轉(zhuǎn)移到AWS Cloud中,還在這個過程中切換了數(shù)據(jù)庫引擎。”
有些客戶會選擇遷移至不同的、非商業(yè)的數(shù)據(jù)庫平臺,這些客戶被告知可以使用AWS模式轉(zhuǎn)換工具(Schema Conversion Tool),這個工具會將源模式和存儲過程轉(zhuǎn)換為合適的目標(biāo)格式。具體來講,它會得到Microsoft SQL Server或Oracle的源模式,然后將其轉(zhuǎn)換為一種格式,這種格式能夠運行在基于PostgreSQL、Aurora或MySQL的Amazon RDS實例中。這個免費的轉(zhuǎn)換工具可以作為客戶端軟件運行在Windows、OS X或Linux桌面上。
Amazon將DMS定位為用戶能夠承受得起的數(shù)據(jù)遷移方案。遷移軟件本身是沒有成本的,客戶只需要支付副本實例的費用。這些副本實例“會包括足夠的存儲空間,用于交換空間(swap space)、副本日志和數(shù)據(jù)緩存,大多數(shù)的副本和進(jìn)站的數(shù)據(jù)傳輸(inbound data transfer)是免費的”。在托管副本實例時,有兩種可用的EC2實例類型:T2和C4。T2提供了有限的性能和超頻的CPU使用。在開發(fā)和測試的遷移或者執(zhí)行階段性的遷移任務(wù)時,Amazon推薦使用該方案。C4用于高性能和低延遲的場景,建議用在大型的數(shù)據(jù)庫上。T2實例帶有50GB的網(wǎng)絡(luò)附加存儲(network attached storage),C4實例包含了100GB的網(wǎng)絡(luò)附加存儲。對于額外的存儲,它的成本是每GB每月0.115美元(針對美國用戶)。對于每個賬戶,AWS支持所有副本實例的存儲最高達(dá)6TB。盡管進(jìn)站數(shù)據(jù)傳輸是免費的,并且相同AWS Availability Zone之內(nèi),數(shù)據(jù)庫之間的傳輸也沒有成本,但是在Availability Zones、AWS regions之間,或?qū)?shù)據(jù)傳輸?shù)江h(huán)境之外的話,就會按照每GB來計算傳輸費用了。
DMS用戶可以遷移源數(shù)據(jù)的所有表,也可以遷移這些表的一個子集。我們可以料想到,針對 Oracle(源數(shù)據(jù)庫、目標(biāo)數(shù)據(jù)庫)、SQL Server(源數(shù)據(jù)庫, 目標(biāo)數(shù)據(jù)庫), PostgreSQL(源數(shù)據(jù)庫)以及MySQL(源數(shù)據(jù)庫, 目標(biāo)數(shù)據(jù)庫)這些數(shù)據(jù)庫的遷移分別支持哪些特性都會有相關(guān)的說明。比較有意思的是,對于DMS來說,加密的數(shù)據(jù)源也不存在什么問題。
AWS數(shù)據(jù)庫遷移服務(wù)會在SQL接口層連接到你的數(shù)據(jù)庫端點上。如果你使用了Oracle或SQL Server的透明數(shù)據(jù)加密(Transparent Data Encryption)特性的話,AWS數(shù)據(jù)遷移服務(wù)會從源數(shù)據(jù)庫中抽取出加密的數(shù)據(jù),然后將其復(fù)制到目標(biāo)數(shù)據(jù)庫中。對于存儲級別的加密來講,同樣如此。只要AWS數(shù)據(jù)遷移服務(wù)具有到源數(shù)據(jù)庫的正確憑證,它就能夠連接到源數(shù)據(jù)庫并將數(shù)據(jù)(按照加密的形式)傳送至目標(biāo)庫。
很多公司正在致力于將資產(chǎn)轉(zhuǎn)移到公有云,但是對私有云的投資也在不斷增長。在采用公有云的過程中,數(shù)據(jù)遷移的成本和復(fù)雜性可能會是一個掣肘的因素,所以像AWS這樣的提供商會持續(xù)致力于簡化該活動的服務(wù)。
查看英文原文:AWS Launches Relational Database Migration Service