博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AutoScaling 弹性伸缩附加与分离RDS实例
阅读量:6823 次
发布时间:2019-06-26

本文共 2582 字,大约阅读时间需要 8 分钟。

阿里云弹性伸缩服务(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管理您的项目,您只需要在项目中添加如下依赖信息:

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实例列表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实例列表request.setForceDetach(ForceDetach);DetachDBInstancesResponse response = client.getAcsResponse(request);

通过 openapi 的方式进行 RDS 的附加和移除操作,目前支持一次最多操作5个RDS实例。

写在最后

AttachDBInstances 和 DetachDBInstances 操作,使得 RDS 实例与伸缩组不再强绑定在一起,您可以根据您的需要调整伸缩组内的 RDS 实例,大大增加了您使用上的灵活性与实用性。

原文链接

本文为云栖社区原创内容,未经允许不得转载

你可能感兴趣的文章
golang通过http端口访问hadoop
查看>>
jar冲突解决方案
查看>>
“996”工作制热议与奋斗者协议
查看>>
我的友情链接
查看>>
MySqL数据库
查看>>
【资料整理】cisco [OSI, IP Address, Network Segment, Subnet Mask]
查看>>
MyBatis使用Generator自动生成代码
查看>>
Azure运维系列 5:国际版与中国版进行数据迁移
查看>>
Hadoop运维记录系列(三)
查看>>
poi的常用方法
查看>>
[error]: invalid PID number "" in "/var/run/nginx.pid"
查看>>
linux中find用法十五例
查看>>
C++编程音视频库ffmpeg的pts时间怎么换算
查看>>
HBase(十一):HBaseAndMapReduce小案例总结
查看>>
iOS申请真机调试证书-图文详解
查看>>
【常规发布】开年大戏! 值得我们关注的 1k+ star 及码云 GVP 项目
查看>>
Mysql 5.6主从同步配置与解决方案
查看>>
超微服务器开机后没有反应解决方法
查看>>
WinAPI: SetWindowPos - 改变窗口的位置与状态
查看>>
Delphi 中的自动释放策略
查看>>