我对亚马逊RDS有疑问。我想根据需要启动/停止AWS RDS实例。 AWS Console不允许我这样做。
我知道的唯一方法是获取rds实例的快照并将其删除,当我需要它时,然后使用该快照创建一个rds实例。 使用Boto有没有更好的方法来实现同样的目标?
答案 0 :(得分:3)
假设您可以使用boto3 ...
开始: http://boto3.readthedocs.io/en/latest/reference/services/rds.html#RDS.Client.start_db_instance
停止: http://boto3.readthedocs.io/en/latest/reference/services/rds.html#RDS.Client.stop_db_instance
答案 1 :(得分:1)
不,这可能是你能做的最好的事情。 RDS API不支持EC2实例的停止/启动功能。
答案 2 :(得分:0)
是的,现在只需添加Venkata答案就可以使用boto3启动/停止实例了。我创建了一个aws lambda来启动/停止我的rds实例,使用boto3 start_db_instance,stop_db_instance如下:
启动实例: import boto3
def handler(event, context):
rds = boto3.client('rds', region_name='us-east-1')
response = rds.start_db_instance(DBInstanceIdentifier='mydb-instance-name') #it should be rds instance NAME
停止实例:
import boto3
def handler(event, context):
rds = boto3.client('rds', region_name='us-east-1')
response = rds.stop_db_instance(DBInstanceIdentifier='mydb-instance-name') #it should be rds instance NAME
不要忘记,名为DBInstanceIdentifier的参数应该是您在创建时提供的rds实例名称。
要记住的一件重要事情是,你应该为你的lambdas提供一个角色,如果你想启动/停止rds,你应该设置一个至少具有此权限的角色。
答案 3 :(得分:0)
您只能启动或停止单个可用性区域实例的AWS RDS实例。对于您的情况,您将必须检查是否启用了多可用区选项。
如果您的数据库位于“多个可用性”区域中,最好的方法是获取快照并还原它。