Browse the Repo
Browse the Repo
Terraform code and scripts for deploying data-storage resources (e.g. databases, cache) in AWS
This repo contains modules for deploying and managing relational databases such as MySQL, PostgreSQL, Oracle, and Aurora on AWS using Amazon’s Relational Database Service (RDS). It also contains a module for creating network-attached filesystems on AWS using Amazon’s Elastic File System (EFS), and modules for configuring AWS Backup.
Deploy a fully-managed relational database
Supports MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Aurora, and Aurora Serverless
Automatic failover to a standby in another availability zone
Automatic nightly snapshots
Automatic copying of snapshots to other AWS accounts and regions for disaster recovery
Scale to zero with Aurora Serverless
Create a managed NFSv4-compliant file system
Create an configure Backup vaults, plans and selections for central, automated and customizable management of recovery points
|This repo is a part of the Gruntwork Infrastructure as Code Library, a collection of reusable, battle-tested, production ready infrastructure code. If you’ve never used the Infrastructure as Code Library before, make sure to read How to use the Gruntwork Infrastructure as Code Library!|
RDS documentation: Amazon’s docs for RDS that cover core concepts such as the types of databases supported, security, backup & restore, and monitoring.
Designing Data Intensive Applications: the best book we’ve found for understanding data systems, including relational databases, NoSQL, replication, sharding, consistency, and so on.
modules: the main implementation code for this repo, broken down into multiple standalone, orthogonal submodules.
modules/aurora: use this module to deploy all Amazon’s Aurora and Aurora Serverless databases.
modules/efs: use this module to deploy Amazon Elastic File System (EFS), a file system that provides NFSv4-compatible storage that can be used with other AWS services, such as EC2 instances.
modules/backup-vault: use this module to create and configure AWS Backup vaults, notifications, locks.
modules/backup-plan: use this module to create and configure AWS Backup plans, schedules and resource selections.
modules/lambda-create-snapshot: use this module and the other
lambda-xxx-snapshot modules to create custom snapshots of your databases and copy those snapshots to other AWS accounts.
modules/rds: use this module to deploy all non-Amazon databases, including MySQL, PostgreSQL, MariaDB, Oracle, and SQL Server.
modules/redshift: use this module to deploy Amazon Redshift cluster that you can use as a data warehouse.
examples: This folder contains working examples of how to use the submodules.
test: Automated tests for the modules and examples.
If you just want to try this repo out for experimenting and learning, check out the following resources:
examples folder: The
examples folder contains sample code optimized for learning, experimenting,
and testing (but not production usage).
If you want to deploy this repo in production, check out the following resources:
rds module in the Service Catalog for-production examples: Production-ready sample code from the Service Catalog examples.
If you need help with this repo or anything else related to infrastructure or DevOps, Gruntwork offers Commercial Support via Slack, email, and phone/video. If you’re already a Gruntwork customer, hop on Slack and ask away! If not, subscribe now. If you’re not sure, feel free to email us at firstname.lastname@example.org.
Contributions to this repo are very welcome and appreciated! If you find a bug or want to add a new feature or even contribute an entirely new module, we are very happy to accept pull requests, provide feedback, and run your changes through our automated test suite.
Please see Contributing to the Gruntwork Infrastructure as Code Library for instructions.
We're here to talk about our services, answer any questions, give advice, or just to chat.