如何使用Boto启动停止AWS RDS实例?

如何使用Boto启动停止AWS RDS实例?,第1张

我对亚马逊RDS有疑问。我想根据需要启动/停止AWS RDS实例。 AWS Console不允许我这样做。

我知道的唯一方法是获取rds实例的快照并将其删除,当我需要它时,然后使用该快照创建一个rds实例。 使用Boto有没有更好的方法来实现同样的目标?

最佳答案:

4 个答案:

答案 0 :(得分:3)

他们最近添加了支持:https://aws.amazon.com/about-aws/whats-new/2017/06/amazon-rds-supports-stopping-and-starting-of-database-instances/

假设您可以使用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实例。对于您的情况,您将必须检查是否启用了多可用区选项。

如果您的数据库位于“多个可用性”区域中,最好的方法是获取快照并还原它。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复