Adding an Amazon RDS DB Instance to Your Ruby Application Environment
You can use an Amazon Relational Database Service (Amazon RDS) DB instance to store data gathered and modified by your application. The database can be attached to your environment and managed by Elastic Beanstalk, or created and managed externally.
If you are using Amazon RDS for the first time, add a DB instance to a test environment with the Elastic Beanstalk Management Console and verify that your application can connect to it.
To connect to a database, add the adapter to your application and configure a connection with the environment properties provided by Elastic Beanstalk. The configuration and connection code vary depending on the database engine and framework that you use.
For production environments, create a DB instance outside of your Elastic Beanstalk environment to decouple your environment resources from your database resources. Using an external DB instance lets you connect to the same database from multiple environments and perform blue-green deployments. For instructions, see Using Elastic Beanstalk with Amazon RDS.
Adding a DB Instance to Your Environment
To add a DB instance to your environment
Open the Elastic Beanstalk console.
Navigate to the management page for your environment.
Under Data Tier, choose Create a new RDS database.
Choose a DB engine, enter a user name and password, and then choose Apply.
Adding a DB instance takes about 10 minutes. When the environment update is complete, the DB instance's hostname and other connection information are available to your application through the following environment properties:
RDS_HOSTNAME – The hostname of the DB instance.
Amazon RDS console label – Endpoint combines hostname and port.
RDS_PORT – The port on which the DB instance accepts connections. The default value varies between DB engines.
Amazon RDS console label – Port
RDS_DB_NAME – The database name,
Amazon RDS console label – DB Name
RDS_USERNAME – The user name that you configured for your database.
Amazon RDS console label – Username
RDS_PASSWORD – The password that you configured for your database.
For more information about configuring an internal DB instance, see Configuring Databases with Elastic Beanstalk.
Downloading an Adapter
Add the database adapter to your project's gem file.
Example Gemfile – Rails with MySQL
source 'https://rubygems.org' gem 'puma' gem 'rails', '4.1.8'
Common Adapter Gems for Ruby
SQL Server –
Connecting to a Database
Elastic Beanstalk provides connection information for attached DB instances in environment properties.
ENV[' to read the properties and
configure a database connection.
Example config/database.yml – Ruby on Rails Database Configuration (MySQL)
production: adapter: mysql2 encoding: utf8 database: <%= ENV['RDS_DB_NAME'] %> username: <%= ENV['RDS_USERNAME'] %> password: <%= ENV['RDS_PASSWORD'] %> host: <%= ENV['RDS_HOSTNAME'] %> port: <%= ENV['RDS_PORT'] %>