AWS RDS Tool

Simple tool to create AWS RDS db instances consistently with pre-configured settings. The pre-configured settings are stored in files in the profiles folder of the current directory.

For example, say you have:

  • profiles/default.yml: default settings, when no profile is specified.
  • profiles/mydb.yml: mydb settings.

Usage

aws-rds create mydb --profile mydb --db-name mydbname
  • mydb will be the RDS database identifier show on the AWS console
  • mydbname is the database name that contains the tables

In a nutshell, the profile parameters are passed to the ruby aws-sdk AWS::RDS::Client#create_db_instance method. So you can specify any parameter you wish that is available in the aws-sdk. To check out what a profile looks like view the example default

config

You can configure common global settings. The required settings are listed below. Example:

config/development.yml

vpc_id: vpc-123 # falls back to this vpc if not specified in the profile
db_subnet_group_name: private-subnet-group-name # fallback db_subnet_group_name whe not set

Security Group Creation

The tool automatically creates a security group and associates it with the newly created db. Normally the default security group is associated with the db. A new security group allows you to control access to the database in finely tune manner without affecting the default security group.

Convention

By convention, the security-group name is the same as the db identifier. So if the db identifier matches the commands the be simplified. Examples:

aws-rds create mydb --profile myprofile --security-group-name mydb
aws-rds create mydb --profile myprofile # same as above

More Help

aws-rds create help
aws-rds help # general help

Examples are in the example folder. You will have to update settings.

Installation

gem install aws-rds

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am "Add some feature")
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request