AutoScaling彈性伸縮附加與分離RDS例項
阿里雲彈性伸縮服務(AutoScaling)推出新功能:AttachDBInstances和DetachDBInstances。新功能使得您可以自由的對伸縮組附加和移除Rds例項。
本文將為您介紹如何將 Rds 例項附加到和分離出伸縮組。
RDS
RDS是阿里雲提供的一種穩定可靠的線上資料庫服務,支援MySQL、SQL Server、PostgreSQL 和 PPAS引擎,並且提供了容災、備份、恢復、監控、遷移等方面的全套解決方案,徹底解決資料庫運維的煩惱。RDS 與 彈性伸縮相結合時,通過將伸縮組內的例項自動加入到 RDS 例項的白名單,實現組內例項能夠安全訪問 RDS例項。
關於 RDS 例項更詳細的介紹您可以參考 什麼是RDS,訪問控制。
將 RDS 例項附加到伸縮組
將 RDS 例項附加到伸縮組時,根據您指定的 forceAttch 引數值,附加過程有以下兩種行為:
- forceAttach 為true,將 RDS 例項附加到伸縮組時,會把伸縮組中當前擁有的所有例項私網IP都加入到 RDS 例項的IP白名單中。
- forceAttach 為false,將 RDS 例項附加到伸縮組時,不會嘗試將伸縮組中已有例項私網IP加入到 RDS 例項的IP白名單中。
對於上述 RDS 附加過程,如果您將一個已經存在伸縮組中的 RDS 例項再次附加到伸縮組,此時,組內 RDS 例項數量不會改變,僅會嘗試把當前伸縮組內的例項私網IP全部加入其IP白名單中。
您需要注意,將 RDS 例項附加到伸縮組,RDS 例項需要滿足一下限制:
- RDS 例項必須是使用者擁有的未刪除例項。
- RDS 例項必須為 UNLOCK。
- RDS 例項執行狀態必須為 RUNNING。
- RDS default分組的IP白名單總數在完成新增後不能超過1000個。
將 RDS 例項分離出伸縮組
將 RDS 例項從伸縮組中分離時,根據您指定的forceDetach引數,將有以下兩種行為:
- forceDetach 為true,將 RDS 例項從伸縮組移除的同時,將把 RDS 白名單中與伸縮組關聯的例項IP移除。
- forceDetach 為false,將 RDS 例項從伸縮組移除的同時,不會把 RDS 白名單中與伸縮組關聯的例項IP移除。
您可以根據您的實際需要確定 forceDetach 的設定,需要注意的是,您無法對同一個 RDS 例項重複執行移除操作。
最佳實踐
SDK進行Attach/Detach RDS
AutoScaling 提供了 AttachDBInstances,DetachDBInstances 兩個openapi,您可以通過使用 SDK 來進行 RDS 例項附加/移除伸縮組的操作。
此處,以 AutoScaling java SDK 為例,向您介紹瞭如何使用 openapi 完成 RDS 例項附加與移除伸縮組。
在使用sdk之前,首先需要下載相應的依賴,您可以在阿里雲 SDK 中查詢 java SDK ,下載所需依賴。如果您使用maven管理您的專案,您只需要在專案中新增如下依賴資訊:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ess</artifactId>
<version>2.2.1</version>
</dependency>
AttachDBInstances:
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "yourAk", "yourSecret")
IAcsClient client = new DefaultAcsClient(profile);
AttachDBInstancesRequest request = new AttachDBInstancesRequest();
request.setScalingGroupId(scalingGroupId); // 伸縮組id
request.setDBInstances(Arrays.asList(dBInstanceId));//附加的Rds例項列表
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); // 伸縮組id
request.setDBInstances(Arrays.asList(dBInstanceId));//移除的Rds例項列表
request.setForceDetach(ForceDetach);
DetachDBInstancesResponse response = client.getAcsResponse(request);
通過 openapi 的方式進行 RDS 的附加和移除操作,目前支援一次最多操作5個RDS例項。
寫在最後
AttachDBInstances 和 DetachDBInstances 操作,使得 RDS 例項與伸縮組不再強繫結在一起,您可以根據您的需要調整伸縮組內的 RDS 例項,大大增加了您使用上的靈活性與實用性。
相關文章
- AutoScaling 彈性伸縮附加與分離RDS例項
- AutoScaling彈性伸縮附加與分離負載均衡例項負載
- AutoScaling彈性伸縮配置重大升級
- 使用 tke-autoscaling-placeholder 實現秒級彈性伸縮
- RDS for MySQL Serverless公測上線:彈性伸縮,最高可降成本超80%MySqlServer
- Knative Autoscaler 自定義彈性伸縮
- 彈性佈局(伸縮佈局)
- AutoScaling目標追蹤伸縮規則概述
- Kubernetes彈性伸縮全場景解讀(五) - 定時伸縮元件釋出與開源元件
- jQuery實現的表格展開伸縮效果例項jQuery
- Fluid 給資料彈性一雙隱形的翅膀 -- 自定義彈性伸縮UI
- KubeVela + KEDA:為應用帶來“與生俱來”的彈性伸縮能力
- 如何使用 Kubernetes 實現應用程式的彈性伸縮
- Effective HPA:預測未來的彈性伸縮產品
- EMQX Operator 如何快速建立彈性伸縮的 MQTT 叢集MQQT
- Serverless:基於個性化服務畫像的彈性伸縮實踐Server
- 我們總結了彈性伸縮的五個條件與六個教訓
- 如何基於容器網路流量指標進行彈性伸縮指標
- SpringCloud 應用在 Kubernetes 上的最佳實踐 —— 高可用(彈性伸縮)SpringGCCloud
- 阿里云云計算ACP認證重點梳理3—彈性伸縮阿里
- 一個例子體會Kubernetes內容器的高可用性和彈性伸縮
- flex彈性佈局程式碼例項Flex
- 彈性伸縮:高可用架構利器(架構+演算法+思維)架構演算法
- 雲端乾貨|降本必備—彈性伸縮的基本原理
- Node.js的可伸縮性Node.js
- 基於Kubernetes的hpa實現pod例項數量的自動伸縮
- 雲原生的彈性 AI 訓練系列之三:藉助彈性伸縮的 Jupyter Notebook,大幅提高 GPU 利用率AIGPU
- 微信小程式的全域性彈窗以及全域性例項微信小程式
- 透過HPA+CronHPA組合應對業務複雜彈性伸縮場景
- Python 類的屬性與例項屬性Python
- 在騰訊雲容器服務 TKE 中利用 HPA 實現業務的彈性伸縮
- 在ECS上輕鬆搭建RDS的從例項
- CSS3 Flex 彈性佈局例項程式碼詳解CSSS3Flex
- 免運維、彈性伸縮、按需付費...Serverless還有多少驚喜是我不知道的?運維Server
- EF多租戶例項:演變為讀寫分離
- Python類屬性和例項屬性分別是什麼?Python
- 如何將離線計算業務的成本降低65%——彈性容器服務EKS「競價例項」上線
- 大型網站的可伸縮性架構如何設計?網站架構