阿里云彈性伸縮服務(wù)(AutoScaling)推出新功能:AttachDBInstances和DetachDBInstances。新功能使得您可以自由的對(duì)伸縮組附加和移除Rds實(shí)例。
本文將為您介紹如何將 Rds 實(shí)例附加到和分離出伸縮組。
RDS
RDS是阿里云提供的一種穩(wěn)定可靠的在線數(shù)據(jù)庫(kù)服務(wù),支持MySQL、SQL Server、PostgreSQL 和 PPAS引擎,并且提供了容災(zāi)、備份、恢復(fù)、監(jiān)控、遷移等方面的全套解決方案,徹底解決數(shù)據(jù)庫(kù)運(yùn)維的煩惱。RDS 與 彈性伸縮相結(jié)合時(shí),通過(guò)將伸縮組內(nèi)的實(shí)例自動(dòng)加入到 RDS 實(shí)例的白名單,實(shí)現(xiàn)組內(nèi)實(shí)例能夠安全訪問(wèn) RDS實(shí)例。
關(guān)于 RDS 實(shí)例更詳細(xì)的介紹您可以參考?什么是RDS,訪問(wèn)控制。
將 RDS 實(shí)例附加到伸縮組
將 RDS 實(shí)例附加到伸縮組時(shí),根據(jù)您指定的 forceAttch 參數(shù)值,附加過(guò)程有以下兩種行為:
forceAttach 為true,將 RDS 實(shí)例附加到伸縮組時(shí),會(huì)把伸縮組中當(dāng)前擁有的所有實(shí)例私網(wǎng)IP都加入到 RDS 實(shí)例的IP白名單中。
forceAttach 為false,將 RDS 實(shí)例附加到伸縮組時(shí),不會(huì)嘗試將伸縮組中已有實(shí)例私網(wǎng)IP加入到 RDS 實(shí)例的IP白名單中。
對(duì)于上述 RDS 附加過(guò)程,如果您將一個(gè)已經(jīng)存在伸縮組中的 RDS 實(shí)例再次附加到伸縮組,此時(shí),組內(nèi) RDS 實(shí)例數(shù)量不會(huì)改變,僅會(huì)嘗試把當(dāng)前伸縮組內(nèi)的實(shí)例私網(wǎng)IP全部加入其IP白名單中。
您需要注意,將 RDS 實(shí)例附加到伸縮組,RDS 實(shí)例需要滿足一下限制:
RDS 實(shí)例必須是用戶擁有的未刪除實(shí)例。
RDS 實(shí)例必須為?UNLOCK。
RDS 實(shí)例運(yùn)行狀態(tài)必須為?RUNNING。
RDS default分組的IP白名單總數(shù)在完成添加后不能超過(guò)1000個(gè)。
將 RDS 實(shí)例分離出伸縮組
將 RDS 實(shí)例從伸縮組中分離時(shí),根據(jù)您指定的forceDetach參數(shù),將有以下兩種行為:
forceDetach 為true,將 RDS 實(shí)例從伸縮組移除的同時(shí),將把 RDS 白名單中與伸縮組關(guān)聯(lián)的實(shí)例IP移除。
forceDetach 為false,將 RDS 實(shí)例從伸縮組移除的同時(shí),不會(huì)把 RDS 白名單中與伸縮組關(guān)聯(lián)的實(shí)例IP移除。
您可以根據(jù)您的實(shí)際需要確定 forceDetach 的設(shè)置,需要注意的是,您無(wú)法對(duì)同一個(gè) RDS 實(shí)例重復(fù)執(zhí)行移除操作。
最佳實(shí)踐
SDK進(jìn)行Attach/Detach RDS
AutoScaling 提供了 AttachDBInstances,DetachDBInstances 兩個(gè)openapi,您可以通過(guò)使用 SDK 來(lái)進(jìn)行 RDS 實(shí)例附加/移除伸縮組的操作。
此處,以 AutoScaling java SDK 為例,向您介紹了如何使用 openapi 完成 RDS 實(shí)例附加與移除伸縮組。
在使用sdk之前,首先需要下載相應(yīng)的依賴,您可以在阿里云?SDK?中查找?java SDK?,下載所需依賴。如果您使用maven管理您的項(xiàng)目,您只需要在項(xiàng)目中添加如下依賴信息:
?????????????????????? ????????com.aliyun ????????????aliyun-java-sdk-core ????????????4.0.2 ???????????????????? com.aliyun ????????????aliyun-java-sdk-ess ????????????2.2.1 ????????
AttachDBInstances:
IClientProfile?profile?=?DefaultProfile.getProfile("cn-hangzhou",?"yourAk",?"yourSecret")
IAcsClient?client?=?new?DefaultAcsClient(profile);
AttachDBInstancesRequest?request?=?new?AttachDBInstancesRequest();
request.setScalingGroupId(scalingGroupId);?//?伸縮組
idrequest.setDBInstances(Arrays.asList(dBInstanceId));//附加的Rds實(shí)例列表
request.setForceAttach(ForceAttach);
AttachDBInstancesResponse?response?=?client.getAcsResponse(request);DetachDBInstances:
IClientProfile?profile?=?DefaultProfile.getProfile("cn-hangzhou",?"yourAk",?"yourSecret")
IAcsClient?client?=?new?DefaultAcsClient(profile);
DetachDBInstancesRequest?request?=?new?DetachDBInstancesRequest();
request.setScalingGroupId(scalingGroupId);?//?伸縮組
idrequest.setDBInstances(Arrays.asList(dBInstanceId));//移除的Rds實(shí)例列表
request.setForceDetach(ForceDetach);
DetachDBInstancesResponse?response?=?client.getAcsResponse(request);通過(guò) openapi 的方式進(jìn)行 RDS 的附加和移除操作,目前支持一次最多操作5個(gè)RDS實(shí)例。
寫(xiě)在最后
AttachDBInstances 和 DetachDBInstances 操作,使得 RDS 實(shí)例與伸縮組不再?gòu)?qiáng)綁定在一起,您可以根據(jù)您的需要調(diào)整伸縮組內(nèi)的 RDS 實(shí)例,大大增加了您使用上的靈活性與實(shí)用性。
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載
電子發(fā)燒友App






















































































評(píng)論