Using Elastic Beanstalk With Amazon RDS

From Littledamien Wiki
Revision as of 04:37, 1 June 2020 by Video8 (talk | contribs)
Jump to navigation Jump to search

Overview

Notes about configuring a Django project hosted with AWS Elastic Beanstalk to use a stand-alone RDS instance for its database.

Setup

Overview

See Using Elastic Beanstalk with Amazon RDS - AWS Elastic Beanstalk Developer Guide

  1. In the Amazon RDS Management Console, create a new RDS instance. [1]
  2. Modify DB instance's security group to allow inbound traffic.
  3. Add the DB instance's security group to the Elastic Beanstalk environment.
  4. Save RDS connection information in Elastic Beanstalk environment.
    1. Alternatively store the RDS connection string in Amazon S3 (more secure). [2]
  5. Restart the Elastic Beanstalk environment.

Grant RDS access for the Elastic Beanstalk environment

If the environment needs access to an independent RDS instance, it's necessary to add some configuration properties or else eb deploy will generate errors to the effect that the local development db host was not found.

  • AWS EB console
  • EB app > EB environment > Configuration > Instances
    • Instance profile: Add rds-launch-wizard, (The comma separates the new profile from existing profiles.)
  • EB app > EB environment > Configuration > Software Configuration > Environment Properties
    • RDS_DB_NAME
    • RDS_HOSTNAME
    • RDS_PASSWORD
    • RDS_PORT
    • RDS_USERNAME

See Saving and applying Elastic Beanstalk environment configurations

Migration

Database structure updates are managed by eb deploy automatically executing manage.py makemigrations and manage.py migrate.

See also PostgreSQL Backups and Migration

Notes

  1. Launching and Connecting to an External RDS - AWS Elastic Beanstalk Developers Guide
  2. Storing the Connection String in Amazon S3 - AWS Elastic Beanstalk Developers Guide