亚马逊RDS - 只在需要时在线? [英] Amazon RDS - Online only when needed?

查看:260
本文介绍了亚马逊RDS - 只在需要时在线?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个关于亚马逊RDS的问题。我只需要在线数据库,每天约2个小时,但我有一个相当庞大的数据库处理大约1GB。

我有两个主要问题:

  1. 我可以自动通过脚本的在线和离线把我的RDS数据库省钱?

  2. 当我把一个RDS下线,停止了工作时间计数器运行和计费我,当我把它重新联机将它仍然具有相同的内容(也就是将我的所有数据呆在那里,还是会必须是一个空白块?)。如果是这样,有没有解决这个办法,而不是备份到S3,每一次重新导入?

解决方案

下面是一个脚本,将停止/启动/重新启动的RDS实例

 #!/斌/庆典

#使用./startStop.sh lhdevices启动

实例=$ 1
ACTION =$ 2



#出口瓦尔运行RDS CLI
出口JAVA_HOME = / USR;
出口AWS_RDS_HOME = /家庭/ MySQL的/ RDSCli-1.15.001;
出口PATH = $ PATH:/home/mysql/RDSCli-1.15.001/bin;
出口EC2_REGION =美国东1;
出口AWS_CREDENTIAL_FILE = /家庭/ MySQL的/ RDSCli-1.15.001 / keysLightaria.txt;

如果[$#-ne 2]
然后
回声用法:$ {0的MySQL实例名称} {行动开始,停止或重启}
回声 
1号出口
科幻


已回答-s nocasematch

如果[$ ACTION =='开始']
然后
回声这将$行动MySQL实例
RDS-恢复-DB-实例从-DB-快照lhdevices
--db快照标识符的dbstart --availability区美东 -  1A
--db实例级db.m1.small

回声睡觉的时候实例被创建
睡眠10米
回声醒来......

RDS-修改-DB实例lhdevices --db-安全组kfarrell

回声睡觉的时候实例修改为安全组名
睡眠5米
回声醒来......

ELIF [$ ACTION =='一站式']
然后
回声这将$行动MySQL实例

是| RDS-删除-DB-快照的dbstart

回声睡觉的时候删除旧的快照
睡眠10米

#RDS创建-DB-快照lhdevices --db快照标识符的dbstart

#回声睡觉的同时创造新的快照
#睡眠10米
#回声醒来......

#RDS-删除-DB实例lhdevices --force --skip-最终快照
RDS-删除-DB实例lhdevices --force --final-DB-快照标识符的dbstart

回声睡觉的时候实例被删除
睡眠10米
回声醒来......

ELIF [$ ACTION =='重启']
然后
回声这将$行动MySQL实例
RDS-重启-DB实例lhdevices;

回声睡觉的时候实例重新启动
睡眠5米
回声醒来......

其他

回声不承认的命令:$ ACTION
回声用法:$ {0的MySQL实例名称} {行动开始,停止或重启}

科幻
已回答-u nocasematch
 

I had a question about Amazon RDS. I only need the database online for about 2 hours a day but I am dealing with quite a large database at around 1gb.

I have two main questions:

  1. Can I automate bringing my RDS database online and offline via scripts to save money?

  2. When I put a RDS offline to stop the "work hours" counter running and billing me, when I bring it back online will it still have the same content (i.e will all my data stay there, or will it have to be a blank DB?). If so, is there any way around this rather than backing up to S3 and reimporting it every time?

解决方案

Here's a script that will stop/start/reboot an RDS instance

#!/bin/bash

# usage ./startStop.sh lhdevices start

INSTANCE="$1"
ACTION="$2"



# export vars to run RDS CLI
export JAVA_HOME=/usr;
export AWS_RDS_HOME=/home/mysql/RDSCli-1.15.001;
export PATH=$PATH:/home/mysql/RDSCli-1.15.001/bin;
export EC2_REGION=us-east-1;
export AWS_CREDENTIAL_FILE=/home/mysql/RDSCli-1.15.001/keysLightaria.txt;

if [ $# -ne 2 ]
then
echo "Usage: $0 {MySQL-Instance Name} {Action either start, stop or reboot}"
echo ""
exit 1
fi


shopt -s nocasematch

if [[ $ACTION == 'start' ]]
then
echo "This will $ACTION a MySQL Instance"  
rds-restore-db-instance-from-db-snapshot lhdevices 
--db-snapshot-identifier        dbStart --availability-zone us-east-1a     
--db-instance-class db.m1.small 

echo "Sleeping while instance is created"
sleep 10m
echo "waking..."

rds-modify-db-instance lhdevices --db-security-groups kfarrell

echo "Sleeping while instance is modified for security group name"
sleep 5m
echo "waking..."

elif [[ $ACTION == 'stop' ]]
then
echo "This will $ACTION a MySQL Instance" 

yes | rds-delete-db-snapshot dbStart

echo "Sleeping while deleting old snapshot "
sleep 10m

#rds-create-db-snapshot lhdevices --db-snapshot-identifier dbStart

# echo "Sleeping while creating new snapshot "
# sleep 10m
# echo "waking...."

#rds-delete-db-instance lhdevices --force --skip-final-snapshot 
rds-delete-db-instance lhdevices --force --final-db-snapshot-identifier dbStart

echo "Sleeping while instance is deleted"
sleep 10m
echo "waking...."

elif [[ $ACTION == 'reboot' ]]
then
echo "This will $ACTION a MySQL Instance" 
rds-reboot-db-instance lhdevices ;

echo "Sleeping while Instance is rebooted"
sleep 5m
echo "waking...."

else

echo "Did not recognize command: $ACTION"
echo "Usage: $0 {MySQL-Instance Name} {Action either start, stop or reboot}"

fi
shopt -u nocasematch

这篇关于亚马逊RDS - 只在需要时在线?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆