Подтвердить что ты не робот

Amazon RDS - онлайн только при необходимости?

У меня возник вопрос о Amazon RDS. Мне нужна база данных онлайн всего около двух часов в день, но я имею дело с довольно большой базой данных со скоростью около 1 ГБ.

У меня есть два основных вопроса:

  • Могу ли я автоматизировать доставку моей базы данных RDS в режиме онлайн и офлайн через скрипты, чтобы сэкономить деньги?

  • Когда я помещал автономный RDS, чтобы остановить счетчик рабочих часов и выставил мне счет, когда я верну его в онлайн, он будет по-прежнему иметь один и тот же контент (т.е. все мои данные останутся там, или он будет должен быть пустой БД?). Если это так, есть ли какой-либо путь вокруг этого, а не резервное копирование на S3 и реимпорт его каждый раз?

4b9b3361

Ответ 1

Здесь script, который остановит/начнет/перезагрузит экземпляр RDS

#!/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

Ответ 2

Если вы хотите сделать это программно,

Вы также можете сделать все это с помощью веб-консоли AWS, если вы хотите сделать это вручную.

Ответ 3

Вы можете запускать экземпляры EC2 * с использованием сценариев оболочки, поэтому я предполагаю, что вы также можете использовать RDS. (см. http://docs.aws.amazon.com/AmazonRDS....html)

Но, в отличие от EC2 *, вы не можете "остановить" экземпляр RDS без "уничтожения" его. Вам необходимо создать моментальный снимок базы данных при завершении работы с базой данных. Вы будете использовать этот снимок БД при повторном запуске базы данных.

* EC2: Эластичные вычисления, аренда виртуального сервера или сервера.

Ответ 4

Недавно Amazon обновила свой CLI, чтобы включить способ запуска и остановки экземпляров RDS. stop-db-instance и start-db-instance detail шаги, необходимые для выполнения этих операций.