sample_rdsをスナップショットから復元 - tetsuyaf1100/hello-world GitHub Wiki
#!/bin/bash
restore () {
if [ -z "$1" ]; then
exit
fi
db_new_instance=$1
instance_class=db.t3.small
subnet_group=subnet_group
snapshot=$(aws rds describe-db-snapshots 2>/dev/null | \
jq -rc .DBSnapshots[].DBSnapshotIdentifier | \
grep rds:myrds- | tail -1)
echo ${db_new_instance}
echo ${instance_class}
echo ${subnet_group}
echo ${snapshot}
aws rds restore-db-instance-from-db-snapshot \
--db-instance-identifier ${db_new_instance} \
--db-snapshot-identifier ${snapshot} \
--db-instance-class ${instance_class} \
--db-subnet-group-name ${subnet_group} \
--no-publicly-accessible \
--no-multi-az
}
add_role () {
if [ -z "$1" ]; then
exit
fi
db_new_instance=$1
count=0
while true
do
rds_status=$(aws rds describe-db-instances \
--db-instance-identifier $db_new_instance | \
jq -r .DBInstances[].DBInstanceStatus)
if [ "$rds_status" = "available" ]; then
echo "rds status abailable"
break;
fi
echo -n '.'
sleep 6
((count++))
if [ $count -ge 300 ]; then
exit 1
fi
done
aws rds add-role-to-db-instance \
--db-instance-identifier $db_new_instance \
--role-arn arn:aws:iam::xxxxxxxxxxxx:role/myrds-role \
--feature-name S3_INTEGRATION
}
restore myrds
add_role myrds