This module, along with the lambda-share-snapshot and
lambda-copy-shared-snapshot modules, can be used to backup your RDS database
to another AWS account (e.g., for disaster recovery) on a configurable schedule. Under the hood, each module runs a
Lambda function that instructs your database to take a snapshot (this module), share the snapshot with another account
(the lambda-share-snapshot module), and make a copy of the snapshot (lambda-copy-shared-snapshot).
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.
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 support@gruntwork.io.
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.
{"treedata":{"name":"root","toggled":true,"children":[{"name":".circleci","children":[{"name":"config.yml","path":".circleci/config.yml","sha":"3021128194f4b6729c5774201e291a7a4ff57110"},{"name":"post-upgrade-test-results.sh","path":".circleci/post-upgrade-test-results.sh","sha":"a4867e8fbdc334b7a90259568ee41ea577fbe764"},{"name":"set-upgrade-test-vars.sh","path":".circleci/set-upgrade-test-vars.sh","sha":"04ccab865d51c1169f7ae4648c38a3d98a9889ab"}]},{"name":".github","children":[{"name":"ISSUE_TEMPLATE","children":[{"name":"bug_report.md","path":".github/ISSUE_TEMPLATE/bug_report.md","sha":"d2e87e27c601e423865ed660ec697082470ca60f"},{"name":"feature_request.md","path":".github/ISSUE_TEMPLATE/feature_request.md","sha":"023a33099be2336476930c96e17ff1ba5dc55348"}]},{"name":"pull_request_template.md","path":".github/pull_request_template.md","sha":"6b100e40e323b5b07f40ed30616277c51c9f4b9e"}]},{"name":".gitignore","path":".gitignore","sha":"b647d70b39746f8ebc58bdb81766f30296fa1297"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","sha":"d7a7dd3d641e0c3fabb4ab45a0976c0fa0b93fc0"},{"name":"CODEOWNERS","path":"CODEOWNERS","sha":"8bb8d5fb2b9820e3c86d6680ba717bb889255ab7"},{"name":"LICENSE.txt","path":"LICENSE.txt","sha":"b64f3d12153e88d892a7471c2c0254db4a072e34"},{"name":"README.adoc","path":"README.adoc","sha":"1737652cf1b9c4bee32f790eb2bcb28e8f221123"},{"name":"_docs","children":[{"name":"aurora-serverless.png","path":"_docs/aurora-serverless.png","sha":"5a53145be56705c76f7f7aa6a25aa0ddee78e4a3"},{"name":"aurora.png","path":"_docs/aurora.png","sha":"fc218831bfa34097a56f1b0e47fe05521bdb4a8a"},{"name":"backup-architecture.png","path":"_docs/backup-architecture.png","sha":"61b138cd6ad58c7a37fa1b37fef43c44a371a97c"},{"name":"data-backup-architecture.png","path":"_docs/data-backup-architecture.png","sha":"fcc7ce8753e28c19af87ea5cea96e6ded648d429"},{"name":"data-backup.png","path":"_docs/data-backup.png","sha":"116b10f231073f8c52255ca98e48cc228c48a2c3"},{"name":"mariadb.png","path":"_docs/mariadb.png","sha":"d540d3d3ff8797c4a4c3a62c65e7d3f63621568f"},{"name":"mysql.png","path":"_docs/mysql.png","sha":"73b55bd0d517dcba53c878712544abf96be3a66e"},{"name":"oracle.png","path":"_docs/oracle.png","sha":"b5f1ca801f5af4a30f1b812eea17cec516c1fe6c"},{"name":"postgresql.png","path":"_docs/postgresql.png","sha":"fd9c7ec282aef38a5813e8542d92227b96bd5be8"},{"name":"rds-architecture.png","path":"_docs/rds-architecture.png","sha":"8f2b1b5b4015a5777032c6aa64627ceee24330fc"},{"name":"redshift-architecture.png","path":"_docs/redshift-architecture.png","sha":"0ebffc1b1fbecdb0335a09c6bf7fe7c5f073d16e"},{"name":"redshift-icon.png","path":"_docs/redshift-icon.png","sha":"add0f05edb29726e62c784edf428eef60aed4d5f"},{"name":"sqlserver.png","path":"_docs/sqlserver.png","sha":"a800d188398262593f4f89f27c8f3ce2ce1e76a4"}]},{"name":"examples","children":[{"name":"aurora-global-cluster","children":[{"name":"README.md","path":"examples/aurora-global-cluster/README.md","sha":"5dcc5d206605d4e4a55bd1eed3137d589e1e025c"},{"name":"main.tf","path":"examples/aurora-global-cluster/main.tf","sha":"1ff9e9f72c42354d14e5afc167ce8a1e118b8bb6"},{"name":"outputs.tf","path":"examples/aurora-global-cluster/outputs.tf","sha":"ad1a6164878d086b7aba2e2d6dcece92b57db2e6"},{"name":"variables.tf","path":"examples/aurora-global-cluster/variables.tf","sha":"cbcd024d653ff7c04d1984209dd3114799d21b9a"}]},{"name":"aurora-managed-password","children":[{"name":"README.md","path":"examples/aurora-managed-password/README.md","sha":"73e4467497f792bfed61ffad3b0620fddabf6f18"},{"name":"main.tf","path":"examples/aurora-managed-password/main.tf","sha":"71d6954ab5ed568b23887224f833c964ca4a9ca5"},{"name":"outputs.tf","path":"examples/aurora-managed-password/outputs.tf","sha":"bfd599b111da577b696ef038c80466290644b890"},{"name":"variables.tf","path":"examples/aurora-managed-password/variables.tf","sha":"e0b6ba39f7d9b5c655da018564b3071d266722b1"}]},{"name":"aurora-serverless-v2","children":[{"name":"README.md","path":"examples/aurora-serverless-v2/README.md","sha":"dfe32720e88f7f30a54ef676b00806caabb8bf6d"},{"name":"main.tf","path":"examples/aurora-serverless-v2/main.tf","sha":"a7363978137c870d6b7642a76264db547a9e9c9c"},{"name":"outputs.tf","path":"examples/aurora-serverless-v2/outputs.tf","sha":"6a1d215eb6ada03646e810f7ef68802fad057bad"},{"name":"variables.tf","path":"examples/aurora-serverless-v2/variables.tf","sha":"88ef2e9f1c7bfcc77de324e1c426e6003d20f7a0"}]},{"name":"aurora-serverless","children":[{"name":"README.md","path":"examples/aurora-serverless/README.md","sha":"24a714baec84945056b7d3280952c446f5bd4506"},{"name":"main.tf","path":"examples/aurora-serverless/main.tf","sha":"661fddbd50f9c0fddb5e12cc0c2b1b606a13cba6"},{"name":"outputs.tf","path":"examples/aurora-serverless/outputs.tf","sha":"7da44a91e9ac6e14a5c7c144c60c5ad0ceb5ce1b"},{"name":"variables.tf","path":"examples/aurora-serverless/variables.tf","sha":"dfc3278b1b6dadc9a223bd22c21aca590ad025c0"}]},{"name":"aurora-with-cross-region-replica","children":[{"name":"README.md","path":"examples/aurora-with-cross-region-replica/README.md","sha":"fc875ed3aae9bdfb2eb361e6d6ea11d10373f22a"},{"name":"main.tf","path":"examples/aurora-with-cross-region-replica/main.tf","sha":"a0e10371e24432ae033c732b42404aff5b9651c1"},{"name":"outputs.tf","path":"examples/aurora-with-cross-region-replica/outputs.tf","sha":"58a3862180d107c3d0501ec9b289b08ed09af3a8"},{"name":"variables.tf","path":"examples/aurora-with-cross-region-replica/variables.tf","sha":"a398fd9c476c4fdf761c89cccc10cc5241576365"}]},{"name":"aurora","children":[{"name":"README.md","path":"examples/aurora/README.md","sha":"2074c75377de7708369a003aa74ba9cd78fcf56f"},{"name":"main.tf","path":"examples/aurora/main.tf","sha":"c02839ae8053039a9691ed00d72d1c3e0fa5fc48"},{"name":"outputs.tf","path":"examples/aurora/outputs.tf","sha":"14ed19ce89fa6a6fd9037ed745ee9f43a47ca92e"},{"name":"variables.tf","path":"examples/aurora/variables.tf","sha":"0653be491dbe2132fb18fd0828c68167b340d237"}]},{"name":"default-vault-plan-and-selection","children":[{"name":"README.md","path":"examples/default-vault-plan-and-selection/README.md","sha":"654dff28a302481e32e4a9985afd6fced0d55d7e"},{"name":"main.tf","path":"examples/default-vault-plan-and-selection/main.tf","sha":"1171e2dff7612c2620ce481b5d3880a42adcb662"},{"name":"variables.tf","path":"examples/default-vault-plan-and-selection/variables.tf","sha":"b41526930c798d19c4dd3d744a3ffcce4538535d"}]},{"name":"dms-aurora","children":[{"name":"README.md","path":"examples/dms-aurora/README.md","sha":"469673f6ff48881e6f30b88ac45b29918850f10d"},{"name":"main.tf","path":"examples/dms-aurora/main.tf","sha":"347c35dbb8a12b92440744a41335d670a9121b26"},{"name":"table_mappings.json","path":"examples/dms-aurora/table_mappings.json","sha":"88de06ceaafd455575e588a16d63e6a905e3de5d"},{"name":"variables.tf","path":"examples/dms-aurora/variables.tf","sha":"a480c00ce098f1a7658776fdc61fb829c0f1aca9"}]},{"name":"dms-mysql","children":[{"name":"README.md","path":"examples/dms-mysql/README.md","sha":"42056c990402a1b0ffcf0c2c332b16ddccc95606"},{"name":"main.tf","path":"examples/dms-mysql/main.tf","sha":"7e756fb7336e2520aaa2c7b33682b3f2d54c21fd"},{"name":"table_mappings.json","path":"examples/dms-mysql/table_mappings.json","sha":"88de06ceaafd455575e588a16d63e6a905e3de5d"},{"name":"variables.tf","path":"examples/dms-mysql/variables.tf","sha":"a89a88a7f20eb0d565444868c8d23fdb401e2dee"}]},{"name":"efs","children":[{"name":"README.md","path":"examples/efs/README.md","sha":"a0fb53395cdf99f122cea46e8174b2684fb0a363"},{"name":"main.tf","path":"examples/efs/main.tf","sha":"5685a799c4c3e1d5f84d3442a872eb0e8a023262"},{"name":"outputs.tf","path":"examples/efs/outputs.tf","sha":"d724c2d6aadba89c8de9f07ca9a9696d32322c49"},{"name":"variables.tf","path":"examples/efs/variables.tf","sha":"7638182eab5037aff894b0b123beeb7033eac121"}]},{"name":"lambda-rds-snapshot-copy-shared-snapshot","children":[{"name":"README.md","path":"examples/lambda-rds-snapshot-copy-shared-snapshot/README.md","sha":"961e281f1fba921d5c3da95cc711375f42b8f227"},{"name":"main.tf","path":"examples/lambda-rds-snapshot-copy-shared-snapshot/main.tf","sha":"453af468d6e2a1030d335f806935d324f7aec874"},{"name":"outputs.tf","path":"examples/lambda-rds-snapshot-copy-shared-snapshot/outputs.tf","sha":"df649a61494bf66d985517f1ef620833619400e3"},{"name":"variables.tf","path":"examples/lambda-rds-snapshot-copy-shared-snapshot/variables.tf","sha":"886d7ba54db417aa553a40a64b3fe7494039a761"}]},{"name":"lambda-rds-snapshot-multiple-schedules","children":[{"name":"README.md","path":"examples/lambda-rds-snapshot-multiple-schedules/README.md","sha":"63be84a5d148b9de4c27a20c533177bcccc55f5d"},{"name":"main.tf","path":"examples/lambda-rds-snapshot-multiple-schedules/main.tf","sha":"b14f1000c97b4577f7d9d8530f5b0a86e877bfa9"},{"name":"outputs.tf","path":"examples/lambda-rds-snapshot-multiple-schedules/outputs.tf","sha":"7a8f966782c659d1568f35684197f232939ea9ec"},{"name":"variables.tf","path":"examples/lambda-rds-snapshot-multiple-schedules/variables.tf","sha":"f6ae16692c02a1ae6ed95d58e16bd3e02b98f703"}]},{"name":"lambda-rds-snapshot","children":[{"name":"README.md","path":"examples/lambda-rds-snapshot/README.md","sha":"74f8c4e97a22520769224a914da858687a3a7cee"},{"name":"main.tf","path":"examples/lambda-rds-snapshot/main.tf","sha":"26243435d430f43179488ad501c4643f66f1badd"},{"name":"outputs.tf","path":"examples/lambda-rds-snapshot/outputs.tf","sha":"443e3ba61050e5c35d29e2ee267775b273139dbf"},{"name":"variables.tf","path":"examples/lambda-rds-snapshot/variables.tf","sha":"b777711ea9860aa43f766a5e5edf8b817e994885"}]},{"name":"org-backup-policy","children":[{"name":"README.md","path":"examples/org-backup-policy/README.md","sha":"1f31b02e065c4acfe405b7b8189736d80b8b75f5"},{"name":"main.tf","path":"examples/org-backup-policy/main.tf","sha":"e157055032f13eade448b8433bb7789f85f4bb24"},{"name":"output.tf","path":"examples/org-backup-policy/output.tf","sha":"c5da6967aeec94a01603795a030cb1d37594ddf1"},{"name":"variables.tf","path":"examples/org-backup-policy/variables.tf","sha":"fafd394313117c41c7a9f7ca8d8b329753895849"}]},{"name":"rds-bastion-host","children":[{"name":"README.md","path":"examples/rds-bastion-host/README.md","sha":"b578a092a3d357832bfb696400048bf58aac1c6a"},{"name":"main.tf","path":"examples/rds-bastion-host/main.tf","sha":"2ac56ba510d484a9fa7fb9de1d0a8035e3f36767"},{"name":"mysql-cli-install.sh","path":"examples/rds-bastion-host/mysql-cli-install.sh","sha":"b8761648380fb4e2411604cda72ec27119247d4c"},{"name":"outputs.tf","path":"examples/rds-bastion-host/outputs.tf","sha":"ed63b2572f3813bd183dc5c48d21ce606ac6392e"},{"name":"variables.tf","path":"examples/rds-bastion-host/variables.tf","sha":"36546c11360061ab040267c03b8dde9f6f44b6bb"}]},{"name":"rds-custom-sqlserver","children":[{"name":"README.md","path":"examples/rds-custom-sqlserver/README.md","sha":"d9ebd0d40040035966776d8af5f1f7d424100b61"},{"name":"main.tf","path":"examples/rds-custom-sqlserver/main.tf","sha":"2e7930ff4ac46eea5dd0e15635424cfe5ef9a4b7"},{"name":"outputs.tf","path":"examples/rds-custom-sqlserver/outputs.tf","sha":"b7b881ebaeb91ca590d964b6acdaf3282fb49bce"},{"name":"variables.tf","path":"examples/rds-custom-sqlserver/variables.tf","sha":"9ff2a0507f714d75048cac8ab0d8513c18023961"}]},{"name":"rds-managed-password","children":[{"name":"README.md","path":"examples/rds-managed-password/README.md","sha":"528b187e88957a9c23c0e56627b08146359de968"},{"name":"main.tf","path":"examples/rds-managed-password/main.tf","sha":"65a9e5b9f5730c01b2b28ab6f699195e4fabfe7d"},{"name":"outputs.tf","path":"examples/rds-managed-password/outputs.tf","sha":"f4db34a971ad78b28f83666bf30985d698059e97"},{"name":"variables.tf","path":"examples/rds-managed-password/variables.tf","sha":"d827b3cbad10deb5269493405aea9aeaca2719ed"}]},{"name":"rds-mariadb","children":[{"name":"README.md","path":"examples/rds-mariadb/README.md","sha":"049bd92e67b2b6405ef9bc5c0d9926ca207e7dbb"},{"name":"main.tf","path":"examples/rds-mariadb/main.tf","sha":"ebca6c8929d7d191493f6a4a3341805d8de4c492"},{"name":"outputs.tf","path":"examples/rds-mariadb/outputs.tf","sha":"d373f3c1f773a1e8d579c3294488e2c7ccfed805"},{"name":"variables.tf","path":"examples/rds-mariadb/variables.tf","sha":"c796e857cbeafc00398cb8d0955f93f14d46642f"}]},{"name":"rds-mysql-with-cross-region-replica-same-kms","children":[{"name":"README.md","path":"examples/rds-mysql-with-cross-region-replica-same-kms/README.md","sha":"c6266352746188a690d3a3c34b8d1876c9ff8ee3"},{"name":"main.tf","path":"examples/rds-mysql-with-cross-region-replica-same-kms/main.tf","sha":"66b16ef2ba122ff0ba9b4d74c87b04d1c055de64"},{"name":"outputs.tf","path":"examples/rds-mysql-with-cross-region-replica-same-kms/outputs.tf","sha":"acbae00ee749a1539ea50f529f14657226fa3cc2"},{"name":"variables.tf","path":"examples/rds-mysql-with-cross-region-replica-same-kms/variables.tf","sha":"48ef2cd460112df8170e81b0742801844bd6e609"}]},{"name":"rds-mysql-with-cross-region-replica","children":[{"name":"README.md","path":"examples/rds-mysql-with-cross-region-replica/README.md","sha":"3df99ed94f0560ca426dec107f3c80e599d90b9d"},{"name":"main.tf","path":"examples/rds-mysql-with-cross-region-replica/main.tf","sha":"a8155b3f3c29a1752327b4396a5acf808286b909"},{"name":"outputs.tf","path":"examples/rds-mysql-with-cross-region-replica/outputs.tf","sha":"acbae00ee749a1539ea50f529f14657226fa3cc2"},{"name":"variables.tf","path":"examples/rds-mysql-with-cross-region-replica/variables.tf","sha":"47c4278ee322a345e0739d63c9928e2a5432281e"}]},{"name":"rds-mysql","children":[{"name":"README.md","path":"examples/rds-mysql/README.md","sha":"1c79d544ac1711ba0edc3ef1435ae14ed9584e4c"},{"name":"main.tf","path":"examples/rds-mysql/main.tf","sha":"820987837d0e3b16aca29fb1f7d60e349d5e6fd0"},{"name":"outputs.tf","path":"examples/rds-mysql/outputs.tf","sha":"f4db34a971ad78b28f83666bf30985d698059e97"},{"name":"variables.tf","path":"examples/rds-mysql/variables.tf","sha":"63fa3d3f06fd0ff9c9dfc456cddbeb0d0f9b7b12"}]},{"name":"rds-oracle","children":[{"name":"README.md","path":"examples/rds-oracle/README.md","sha":"2e2645f9078a7a13f74081d03f9bcc20b77d9f46"},{"name":"main.tf","path":"examples/rds-oracle/main.tf","sha":"1289b9303cdb150e206ccfe59bc2d129a55eab75"},{"name":"outputs.tf","path":"examples/rds-oracle/outputs.tf","sha":"c0f452528a4ac04d9f3fb842fb20a2c56fa698ab"},{"name":"variables.tf","path":"examples/rds-oracle/variables.tf","sha":"b06aef75cee60f170153fc31fadeaf2f3352cf7e"}]},{"name":"rds-postgres","children":[{"name":"README.md","path":"examples/rds-postgres/README.md","sha":"15af33be939aee1629228ab8cad166c799f85068"},{"name":"main.tf","path":"examples/rds-postgres/main.tf","sha":"8f85049a80d9943d87a1938840d4893de0be498f"},{"name":"outputs.tf","path":"examples/rds-postgres/outputs.tf","sha":"905ba674ef6e4944bcdc21e6e789ac63f0cdc8ed"},{"name":"variables.tf","path":"examples/rds-postgres/variables.tf","sha":"2856ec6348ea0ef58b06446ffbd84733b8ea8200"}]},{"name":"rds-proxy-aurora","children":[{"name":"README.md","path":"examples/rds-proxy-aurora/README.md","sha":"3f4470186278880034d0aa16a4988d659adb80f7"},{"name":"main.tf","path":"examples/rds-proxy-aurora/main.tf","sha":"980d0b6deb8ce232b84204cf5071a593b19caf7b"},{"name":"outputs.tf","path":"examples/rds-proxy-aurora/outputs.tf","sha":"d51c890006cbe203921ef9b85b8ca78d18d9874d"},{"name":"variables.tf","path":"examples/rds-proxy-aurora/variables.tf","sha":"06ef8ff8674e8b7b58b1bff26a904ecdfec38d4d"}]},{"name":"rds-proxy","children":[{"name":"README.md","path":"examples/rds-proxy/README.md","sha":"fb74051fa749cad1ffeee72a0a06ea83d6a61097"},{"name":"main.tf","path":"examples/rds-proxy/main.tf","sha":"c0d06f6bbe6ab44c02493d6d7556ec204a1bb855"},{"name":"outputs.tf","path":"examples/rds-proxy/outputs.tf","sha":"2ed4f4e43f43f1bf7e46dd37dd7a2dd76bb72af2"},{"name":"variables.tf","path":"examples/rds-proxy/variables.tf","sha":"fd6ffcebc005752de70f17a42b3db31909f0b8f0"}]},{"name":"rds-sqlserver","children":[{"name":"README.md","path":"examples/rds-sqlserver/README.md","sha":"3b2919cc48b03ad5ec113e25767d431f202026f9"},{"name":"main.tf","path":"examples/rds-sqlserver/main.tf","sha":"28e225dfe3683f267d8dd97488e3a880138f3c01"},{"name":"outputs.tf","path":"examples/rds-sqlserver/outputs.tf","sha":"070fea4677bad6fb5be0200a05360da70d171c2f"},{"name":"variables.tf","path":"examples/rds-sqlserver/variables.tf","sha":"2f4984b85bca5bc469defd60040859aa5be0436d"}]},{"name":"rds-with-replicas-blue-green","children":[{"name":"README.md","path":"examples/rds-with-replicas-blue-green/README.md","sha":"9c507d16b0c6cc84108e1c52f935f8106bd2ffca"},{"name":"main.tf","path":"examples/rds-with-replicas-blue-green/main.tf","sha":"da992d12673fcc3bc62be97a2eee46d57b030c17"},{"name":"outputs.tf","path":"examples/rds-with-replicas-blue-green/outputs.tf","sha":"991d5436a635194fec1ad1476eb7be6616032c7a"},{"name":"variables.tf","path":"examples/rds-with-replicas-blue-green/variables.tf","sha":"b65b8722ec4f3201e121c1240627ab31f98c7535"}]},{"name":"rds-with-replicas","children":[{"name":"README.md","path":"examples/rds-with-replicas/README.md","sha":"b92f42c362ed4d25c0144378b7acaa0600e30a12"},{"name":"main.tf","path":"examples/rds-with-replicas/main.tf","sha":"f773d0a7a9ee2eba0bbf3440e16097219e09014f"},{"name":"outputs.tf","path":"examples/rds-with-replicas/outputs.tf","sha":"991d5436a635194fec1ad1476eb7be6616032c7a"},{"name":"variables.tf","path":"examples/rds-with-replicas/variables.tf","sha":"f0fdd433b715a2d6258d0451695702722b516ea2"}]},{"name":"redshift-serverless","children":[{"name":"README.md","path":"examples/redshift-serverless/README.md","sha":"743e0fec9c6d6109a74ac024d5eb84be2ee671e3"},{"name":"main.tf","path":"examples/redshift-serverless/main.tf","sha":"f2da10ff94d07114fb9d83733ba5445442aeb9a2"},{"name":"outputs.tf","path":"examples/redshift-serverless/outputs.tf","sha":"fc94fb51c8c1a060c4fdf0f446f0954fca641a78"},{"name":"variables.tf","path":"examples/redshift-serverless/variables.tf","sha":"b23c3381dda8c52c9443a1978d26670ae22b8dee"}]},{"name":"redshift-with-snapshot","children":[{"name":"README.md","path":"examples/redshift-with-snapshot/README.md","sha":"2de1c02f397d63da47656a029b8177d4432a63b1"},{"name":"main.tf","path":"examples/redshift-with-snapshot/main.tf","sha":"ae0680d7e3f5b7827ca5ae6148ac0cffec2c6385"},{"name":"outputs.tf","path":"examples/redshift-with-snapshot/outputs.tf","sha":"779c37290dc1c986bfd8d629cc9b2ba1d98c68aa"},{"name":"variables.tf","path":"examples/redshift-with-snapshot/variables.tf","sha":"696be901d509a3f9a27e22b37e1157b2a9a25ecc"}]},{"name":"redshift","children":[{"name":"README.md","path":"examples/redshift/README.md","sha":"d10ff00e5c64f98d5600f88f1cf8e5c9d5dfdb21"},{"name":"main.tf","path":"examples/redshift/main.tf","sha":"6419e402c158603f63f86b6ef71baec041424e9e"},{"name":"outputs.tf","path":"examples/redshift/outputs.tf","sha":"779c37290dc1c986bfd8d629cc9b2ba1d98c68aa"},{"name":"variables.tf","path":"examples/redshift/variables.tf","sha":"523ff2e8dc7d5ee09c63733729f4044c01d0ea40"}]},{"name":"vault-locks","children":[{"name":"README.md","path":"examples/vault-locks/README.md","sha":"7a49496e40c5bc5c8d2f1cacc23573e2d50ccc94"},{"name":"main.tf","path":"examples/vault-locks/main.tf","sha":"460b542931c83dd784847360e2911e913ed5cd5f"},{"name":"outputs.tf","path":"examples/vault-locks/outputs.tf","sha":"dd9af28381868df768797dad02f01224c08bc0a1"},{"name":"variables.tf","path":"examples/vault-locks/variables.tf","sha":"c10e2df32d32c72fcd591b75bb9cc4d1ae7a0eb0"}]},{"name":"vault-notifications","children":[{"name":"README.md","path":"examples/vault-notifications/README.md","sha":"0cb4cfa60f1f9da100d2e9c3320deb1bae4ace6f"},{"name":"main.tf","path":"examples/vault-notifications/main.tf","sha":"901d87fa0519ec675637c110c276a6bc20849d74"},{"name":"outputs.tf","path":"examples/vault-notifications/outputs.tf","sha":"dd9af28381868df768797dad02f01224c08bc0a1"},{"name":"variables.tf","path":"examples/vault-notifications/variables.tf","sha":"c10e2df32d32c72fcd591b75bb9cc4d1ae7a0eb0"}]},{"name":"vault-plan-and-selection","children":[{"name":"README.md","path":"examples/vault-plan-and-selection/README.md","sha":"fe4c265fd82bc2159aa713b31eb7eefe9c43803b"},{"name":"main.tf","path":"examples/vault-plan-and-selection/main.tf","sha":"3cdf336506de7b7ac120e5681ca06ab1e385f44d"},{"name":"outputs.tf","path":"examples/vault-plan-and-selection/outputs.tf","sha":"dd9af28381868df768797dad02f01224c08bc0a1"},{"name":"variables.tf","path":"examples/vault-plan-and-selection/variables.tf","sha":"c10e2df32d32c72fcd591b75bb9cc4d1ae7a0eb0"}]},{"name":"vault-recovery-points","children":[{"name":"README.md","path":"examples/vault-recovery-points/README.md","sha":"175e9a8c304f9e04a0735289c0c9abfaa4c1a595"},{"name":"main.tf","path":"examples/vault-recovery-points/main.tf","sha":"9d6b5940435626205ecb6a8040b41bded7b9e1ec"},{"name":"outputs.tf","path":"examples/vault-recovery-points/outputs.tf","sha":"b39a216ef2dfa3a71a2aca8d34a78843d459a4bd"},{"name":"variables.tf","path":"examples/vault-recovery-points/variables.tf","sha":"c10e2df32d32c72fcd591b75bb9cc4d1ae7a0eb0"}]},{"name":"vault-with-custom-policy","children":[{"name":"README.md","path":"examples/vault-with-custom-policy/README.md","sha":"4d18ebcfb7c7f6e9f1f80c39569f731bcca376b9"},{"name":"main.tf","path":"examples/vault-with-custom-policy/main.tf","sha":"19d135a8421b4ea2be08d231be10b242caf99b0b"},{"name":"outputs.tf","path":"examples/vault-with-custom-policy/outputs.tf","sha":"dd9af28381868df768797dad02f01224c08bc0a1"},{"name":"variables.tf","path":"examples/vault-with-custom-policy/variables.tf","sha":"6c5bab480dd2fd4cb575f0387cc70038660255d1"}]}]},{"name":"modules","children":[{"name":"aurora","children":[{"name":"CHANGELOG.md","path":"modules/aurora/CHANGELOG.md","sha":"edb61e795e7a06a86ef050003b1ec5e15bbe1573"},{"name":"README.md","path":"modules/aurora/README.md","sha":"f6f7d1ea0827f47f218d76d28e29c7a166c3b92d"},{"name":"main.tf","path":"modules/aurora/main.tf","sha":"854a49221564522e009f44aaa5c0c1f06d031572"},{"name":"outputs.tf","path":"modules/aurora/outputs.tf","sha":"2d724c91a9ee9f2b6ee5651fc480290c85cfa361"},{"name":"variables.tf","path":"modules/aurora/variables.tf","sha":"497bf42a0a5202a28d8445ce2831ffb1729c95fa"}]},{"name":"backup-plan","children":[{"name":"CHANGELOG.md","path":"modules/backup-plan/CHANGELOG.md","sha":"6621cc172ff50a2d87c9329cbedd005e14c4e8b6"},{"name":"README.md","path":"modules/backup-plan/README.md","sha":"bbfdb5f91ff5c469e755ba5dacac21b80e01c175"},{"name":"core-concepts.md","path":"modules/backup-plan/core-concepts.md","sha":"f72addac44723e0037bdb5d4f4c4f253454fa0dc"},{"name":"main.tf","path":"modules/backup-plan/main.tf","sha":"36d20738686cd61757c566d263b5520af009f63e"},{"name":"outputs.tf","path":"modules/backup-plan/outputs.tf","sha":"7baaa43ded4ab3597ce120c202611ca7d1379a0b"},{"name":"variables.tf","path":"modules/backup-plan/variables.tf","sha":"a5bb4d9e5177649f5c041c2ba9cb88925176e713"}]},{"name":"backup-vault","children":[{"name":"CHANGELOG.md","path":"modules/backup-vault/CHANGELOG.md","sha":"02932598418284ac50b8beee7fa517df9e021e98"},{"name":"README.md","path":"modules/backup-vault/README.md","sha":"9b4fb120d06fb5008825052f9263cd85814bc9ab"},{"name":"core-concepts.md","path":"modules/backup-vault/core-concepts.md","sha":"f72addac44723e0037bdb5d4f4c4f253454fa0dc"},{"name":"main.tf","path":"modules/backup-vault/main.tf","sha":"828b33250746df591e30000bb697def282e3a8b0"},{"name":"outputs.tf","path":"modules/backup-vault/outputs.tf","sha":"6f9126dc37e7ffabb067ecc02fd9614d32be8c03"},{"name":"variables.tf","path":"modules/backup-vault/variables.tf","sha":"140ac8320c4ab12128d5adcc9d5b4828414d191d"}]},{"name":"dms","children":[{"name":"README.md","path":"modules/dms/README.md","sha":"b213baaedcb916f390949d9d2badd92aad52aeaa"},{"name":"main.tf","path":"modules/dms/main.tf","sha":"033317f3f3be6fec94300c7ba3b6838f1b09faf6"},{"name":"outputs.tf","path":"modules/dms/outputs.tf","sha":"a0d468f8430daa383d2305435a34996e01dc7dad"},{"name":"variables.tf","path":"modules/dms/variables.tf","sha":"bb7521eebbc1c8bebcdb5f65bc288dfcc2704efd"},{"name":"versions.tf","path":"modules/dms/versions.tf","sha":"59d850549cb5376155b0e1a6180cdeae5a82c4dc"}]},{"name":"efs","children":[{"name":"CHANGELOG.md","path":"modules/efs/CHANGELOG.md","sha":"d7e35c2c120bc59a25aa2eb76463592a3e266dfd"},{"name":"README.adoc","path":"modules/efs/README.adoc","sha":"1b13e1f238d444728b6b81a67e4b38c78d33a1ba"},{"name":"main.tf","path":"modules/efs/main.tf","sha":"e4d5f5f0f27530a6c4c3c649ac7977c6f111311e"},{"name":"outputs.tf","path":"modules/efs/outputs.tf","sha":"b505b3d3c4ade32e06286ebea60be1a5f67ce77a"},{"name":"variables.tf","path":"modules/efs/variables.tf","sha":"e1dd6763f8bdef641838044990c21f20f1982e7f"}]},{"name":"lambda-cleanup-snapshots","children":[{"name":"CHANGELOG.md","path":"modules/lambda-cleanup-snapshots/CHANGELOG.md","sha":"e8f52ab10e0d2b87a0af852b7854e26bd7090cb2"},{"name":"README.md","path":"modules/lambda-cleanup-snapshots/README.md","sha":"0117ca051d45f2b9f1e21263b7d44b4814b16b76"},{"name":"cleanup-rds-snapshots","children":[{"name":"index.py","path":"modules/lambda-cleanup-snapshots/cleanup-rds-snapshots/index.py","sha":"9e651d2d57310054e21d891aec481d02c9d79489"}]},{"name":"main.tf","path":"modules/lambda-cleanup-snapshots/main.tf","sha":"af7373439d1b407bcdd2ce1afeeda4870329ea6a"},{"name":"outputs.tf","path":"modules/lambda-cleanup-snapshots/outputs.tf","sha":"a99c0265d859dd0c87a6eba62aaf2b013e224873"},{"name":"variables.tf","path":"modules/lambda-cleanup-snapshots/variables.tf","sha":"6a8d68f55cf51d75ec84caed75ebcb2ea25a5dab"}]},{"name":"lambda-copy-shared-snapshot","children":[{"name":"CHANGELOG.md","path":"modules/lambda-copy-shared-snapshot/CHANGELOG.md","sha":"c945d0ac200367c96e05b3b8e896430ed9c1bd42"},{"name":"README.md","path":"modules/lambda-copy-shared-snapshot/README.md","sha":"6fc6ed6b551a35d7f0cb49667c1087eeea22a9b9"},{"name":"copy-shared-rds-snapshot","children":[{"name":"index.py","path":"modules/lambda-copy-shared-snapshot/copy-shared-rds-snapshot/index.py","sha":"6b1a0331ee9ffc57c95e0923a4b1db46dec0b2c5"}]},{"name":"main.tf","path":"modules/lambda-copy-shared-snapshot/main.tf","sha":"52812a41bb78f44794167e75c9354fc0ca1eda74"},{"name":"outputs.tf","path":"modules/lambda-copy-shared-snapshot/outputs.tf","sha":"f4833d96fa6d47190b9d2c3af243142aefc59d59"},{"name":"variables.tf","path":"modules/lambda-copy-shared-snapshot/variables.tf","sha":"d2256cb15149dbbcfc3593312e532e1a3323b22d"}]},{"name":"lambda-create-snapshot","children":[{"name":"CHANGELOG.md","path":"modules/lambda-create-snapshot/CHANGELOG.md","sha":"f5fc10292bd8fc57a57106c6dfd449aea484077c"},{"name":"README.adoc","path":"modules/lambda-create-snapshot/README.adoc","sha":"88e7a3ccbb2e2bcdede5916267d02eaf3608a538","toggled":true},{"name":"core-concepts.md","path":"modules/lambda-create-snapshot/core-concepts.md","sha":"61bd0892c5597716e19cc5ed7d7a2b5533cbe1a4"},{"name":"create-rds-snapshot","children":[{"name":"index.py","path":"modules/lambda-create-snapshot/create-rds-snapshot/index.py","sha":"16bc7d1b67dcee20577808cdbf39b1938972c5cb"}]},{"name":"main.tf","path":"modules/lambda-create-snapshot/main.tf","sha":"df2e0d503c6d4de0765af266a590b6decc38b819"},{"name":"outputs.tf","path":"modules/lambda-create-snapshot/outputs.tf","sha":"a0f5ffafa8ef11d00b72f1858b81e182ab2471dd"},{"name":"variables.tf","path":"modules/lambda-create-snapshot/variables.tf","sha":"f18942d85d2e7c5dc4c629b1503a1c32a52e4b56"}],"toggled":true},{"name":"lambda-share-snapshot","children":[{"name":"CHANGELOG.md","path":"modules/lambda-share-snapshot/CHANGELOG.md","sha":"19c11b32649f128566b5656c3e21fbb921fc5ee1"},{"name":"README.md","path":"modules/lambda-share-snapshot/README.md","sha":"9006e578e4c850804ddccdc2de9fbc733fb46e29"},{"name":"main.tf","path":"modules/lambda-share-snapshot/main.tf","sha":"1ab11e6a494bedde5813f644d1d49cfa11c6452f"},{"name":"outputs.tf","path":"modules/lambda-share-snapshot/outputs.tf","sha":"c0d2854f967a6c963662c660d6ae96d8cabe471a"},{"name":"share-rds-snapshot","children":[{"name":"index.py","path":"modules/lambda-share-snapshot/share-rds-snapshot/index.py","sha":"b4e784ff72172d1f3e84f0f97a48fdf60405ed27"}]},{"name":"variables.tf","path":"modules/lambda-share-snapshot/variables.tf","sha":"683571dbf98c2fb4f8077e7adadcb4df4241b9b4"}]},{"name":"org-backup-policy","children":[{"name":"README.md","path":"modules/org-backup-policy/README.md","sha":"ee90c86efd8ca36b8d36f8be53487ed0a25f0db7"},{"name":"main.tf","path":"modules/org-backup-policy/main.tf","sha":"7b3686e6975ba60d666ddc008c85a063bacffae3"},{"name":"outputs.tf","path":"modules/org-backup-policy/outputs.tf","sha":"07ca16cd6749511c0065527f84697eb6c4cc85ab"},{"name":"variables.tf","path":"modules/org-backup-policy/variables.tf","sha":"eee36a167476c5a826d8627e5648ca354f542a68"}]},{"name":"rds-proxy","children":[{"name":"README.md","path":"modules/rds-proxy/README.md","sha":"1dbac46a93efff289be003097290842fab06e22a"},{"name":"main.tf","path":"modules/rds-proxy/main.tf","sha":"c0907170a41572ca74235c31943e4227683c3d75"},{"name":"outputs.tf","path":"modules/rds-proxy/outputs.tf","sha":"9c14328f5b45bac433b58262a3e4311e651c3fec"},{"name":"variables.tf","path":"modules/rds-proxy/variables.tf","sha":"ef2fe59004d79366692522b74bd7c090213e1c13"}]},{"name":"rds-replicas","children":[{"name":"README.md","path":"modules/rds-replicas/README.md","sha":"29800af570eedf9c0240f01342a5fdd1ac706fef"},{"name":"main.tf","path":"modules/rds-replicas/main.tf","sha":"ea8bc89bb2f41a1dbae1ae803192a3192b2d31b8"},{"name":"outputs.tf","path":"modules/rds-replicas/outputs.tf","sha":"30703bf2512308c29289a912ef93f51b7887e299"},{"name":"variables.tf","path":"modules/rds-replicas/variables.tf","sha":"149c3b2c548b7a152525e45e4474bd525626d38b"}]},{"name":"rds","children":[{"name":"CHANGELOG.md","path":"modules/rds/CHANGELOG.md","sha":"2b56736f5478e2056d04aad4a9e520d757f1405a"},{"name":"README.md","path":"modules/rds/README.md","sha":"301b394d7fa908e7d24a1a2ed84018b06fafd86f"},{"name":"main.tf","path":"modules/rds/main.tf","sha":"1c66665d02064cd71c350b1896ca4651aa17aa74"},{"name":"outputs.tf","path":"modules/rds/outputs.tf","sha":"3cf359f44b2fc3d968a457f7057f77b70a9a1b91"},{"name":"variables.tf","path":"modules/rds/variables.tf","sha":"358e05e4213a8b1a0bc607f7ee68c9082898c54c"}]},{"name":"redshift","children":[{"name":"CHANGELOG.md","path":"modules/redshift/CHANGELOG.md","sha":"474edd1fabb97de31f22e241624232a52033f136"},{"name":"README.md","path":"modules/redshift/README.md","sha":"1e402c83e07b25944d163443df5ecb61a4061f2f"},{"name":"main.tf","path":"modules/redshift/main.tf","sha":"f8b1c7c93a96c0853dd31c6593ea471a83072078"},{"name":"outputs.tf","path":"modules/redshift/outputs.tf","sha":"8503fdcfb8e92f535148b9be6ffe3567be38e170"},{"name":"variables.tf","path":"modules/redshift/variables.tf","sha":"68f1c355799f4ab4080234214199c9cec7c8c78e"}]}],"toggled":true},{"name":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","path":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","sha":"ae586c0fe830819580e1009d41a9074f16e65bed"},{"name":"test","children":[{"name":"README.md","path":"test/README.md","sha":"49b99a6e7e9dcad288036b6bf8bd6ed8c3e0e112"},{"name":"backup_test_helpers.go","path":"test/backup_test_helpers.go","sha":"51bdc48c508abbae30da4079e7a4e58318afa268"},{"name":"db_util.go","path":"test/db_util.go","sha":"9f9c382889abd05400afea8a4c958005d9f3a75a"},{"name":"example_aurora_global_test.go","path":"test/example_aurora_global_test.go","sha":"32c4bee2f902cf790ed332e45fde5eff4339f5fd"},{"name":"example_aurora_test.go","path":"test/example_aurora_test.go","sha":"d4a789a352557c190ce07748971e9a46f60cdf4b"},{"name":"example_aurora_with_cross_region_replica_test.go","path":"test/example_aurora_with_cross_region_replica_test.go","sha":"9f995742232fdb0e8d9db851e2461148e5004d42"},{"name":"example_backup_default_vault_and_plan_test.go","path":"test/example_backup_default_vault_and_plan_test.go","sha":"9087e372b53c9dff14c03b5334dae7237e77ed69"},{"name":"example_backup_recovery_point_test.go","path":"test/example_backup_recovery_point_test.go","sha":"944035130d5cc776f5a2c6846684fc286fef62ab"},{"name":"example_backup_vault_and_plan_test.go","path":"test/example_backup_vault_and_plan_test.go","sha":"95a7d67ebd962cc7ac85e5fce1e2a119373a48b3"},{"name":"example_backup_vault_notifications_test.go","path":"test/example_backup_vault_notifications_test.go","sha":"742b1a01da35a48cacf0dcc448428d811c520e62"},{"name":"example_backup_vault_with_custom_policy_test.go","path":"test/example_backup_vault_with_custom_policy_test.go","sha":"6568822143bc0b99c0dcfc1af50fae8bfdbd9a56"},{"name":"example_efs_test.go","path":"test/example_efs_test.go","sha":"c721f5e694ccddefb9debf245cd6bbca0e36b2a7"},{"name":"example_lambda_rds_snapshot_create_resources_test.go","path":"test/example_lambda_rds_snapshot_create_resources_test.go","sha":"ae9fc4040c6547f384da0cb67c68d2acd610ddee"},{"name":"example_lambda_rds_snapshot_multiple_schedules_test.go","path":"test/example_lambda_rds_snapshot_multiple_schedules_test.go","sha":"0962d6149bdcf92151f1257fbb96217f1e8d0d60"},{"name":"example_lambda_rds_snapshot_test.go","path":"test/example_lambda_rds_snapshot_test.go","sha":"8df8dcaf23bc4d48c2fabc8f804d10632fc708f4"},{"name":"example_org_backup_policy_test.go","path":"test/example_org_backup_policy_test.go","sha":"bd5951eac786d4366fc36832b095b76b17071046"},{"name":"example_rds_mariadb_test.go","path":"test/example_rds_mariadb_test.go","sha":"fe7ceb37e9245079fc542d56fcfc3b8312d6defc"},{"name":"example_rds_mysql_test.go","path":"test/example_rds_mysql_test.go","sha":"8d46be89dbc9f4d1dab9d5cf3d4bc822997873b1"},{"name":"example_rds_mysql_with_cross_region_replica_test.go","path":"test/example_rds_mysql_with_cross_region_replica_test.go","sha":"f914f685246de865c6d8439d903786393b87c282"},{"name":"example_rds_oracle_test.go","path":"test/example_rds_oracle_test.go","sha":"84d7eb02ac49c18909fb1e0384c0ee9f8ef6453d"},{"name":"example_rds_postgres_test.go","path":"test/example_rds_postgres_test.go","sha":"08e26166f9ec48e2f0a1d1acf8069005e0855e8e"},{"name":"example_rds_proxy_security_group_networking_test.go","path":"test/example_rds_proxy_security_group_networking_test.go","sha":"23c08a128f989906cc82defc2f1274b3fb3fb8bc"},{"name":"example_rds_proxy_test.go","path":"test/example_rds_proxy_test.go","sha":"48aa4ce58bf0b52accbd2a9958f0d0d8afdb9f14"},{"name":"example_rds_sqlserver_test.go","path":"test/example_rds_sqlserver_test.go","sha":"6e7b6c9df8e866c7e25c3ce452294e5019dfa3db"},{"name":"example_rds_with_replicas_test.go","path":"test/example_rds_with_replicas_test.go","sha":"a0f7435363a4198eb7f3e40fcdf6a7868e1cea25"},{"name":"example_redshift_test.go","path":"test/example_redshift_test.go","sha":"616087f8f54f096f4265dc5402b220b723e692e3"},{"name":"go.mod","path":"test/go.mod","sha":"70378bea74f6ac475d8ab698178a0765c99b282b"},{"name":"go.sum","path":"test/go.sum","sha":"65a66a77ee69d99ea9ca1a641b7247aefa6c02d9"},{"name":"rds_connection.go","path":"test/rds_connection.go","sha":"9e7991134dc67b4799bdf1996bfbf6567d7e325b"},{"name":"rds_proxy_connection.go","path":"test/rds_proxy_connection.go","sha":"eca8ca7e3c0efa5db466b2d76a5ee4f67fe3e04f"},{"name":"scripts","children":[{"name":"create-db-parameter-group","children":[{"name":"README.md","path":"test/scripts/create-db-parameter-group/README.md","sha":"bb0a1f85afa2c971ab4c9bcb68d498fdf9da8708"},{"name":"dbclusterparametergroup.go","path":"test/scripts/create-db-parameter-group/dbclusterparametergroup.go","sha":"1e0d02031710c57a91f5112f79e32f0790694916"},{"name":"dbparametergroup.go","path":"test/scripts/create-db-parameter-group/dbparametergroup.go","sha":"ea1afd946dfdf72d0f27e4e3aa5a3655e5050bdb"},{"name":"main.go","path":"test/scripts/create-db-parameter-group/main.go","sha":"f2d470500ff05b6d47c8bce3cbc06af2285c9e89"}]},{"name":"create-db-subnet-group","children":[{"name":"README.md","path":"test/scripts/create-db-subnet-group/README.md","sha":"36e0704c7ebe047196fc47ac0457fe1bcc9443b3"},{"name":"dbsubnetgroup.go","path":"test/scripts/create-db-subnet-group/dbsubnetgroup.go","sha":"df6550c8eab73f4cf75a582ed2e4b2fddacb4a5c"},{"name":"main.go","path":"test/scripts/create-db-subnet-group/main.go","sha":"4456ac3a46601faedb47d523645ebb478767b7ae"}]}]},{"name":"upgrades","children":[{"name":"upgrade_test.go","path":"test/upgrades/upgrade_test.go","sha":"6db1e947ac470e48dbc5f137454d7a470cd7a68e"}]},{"name":"util.go","path":"test/util.go","sha":"10791215b62782aca1e500f11ccf1f931ccf7342"},{"name":"validation","children":[{"name":"validate_all_modules_and_examples_test.go","path":"test/validation/validate_all_modules_and_examples_test.go","sha":"74c928d0cbc2914e5cd708277bd857cb2375b660"}]}]}]},"detailsContent":"<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p><span class=\"image\"><a class=\"image\" href=\"https://gruntwork.io/?ref=repo_aws_data_storage\" target=\"_blank\"><img src=\"https://img.shields.io/badge/maintained%20by-gruntwork.io-%235849a6.svg\" alt=\"maintained%20by gruntwork.io %235849a6\" class=\"preview__body--diagram\"></a></span>\n<span class=\"image\"><img src=\"https://img.shields.io/badge/tf-%3E%3D1.1.0-blue.svg\" alt=\"Terraform version\" class=\"preview__body--diagram\"></span></p>\n</div>\n<div class=\"paragraph\">\n<p>This module, along with the <a href=\"/repos/v0.30.0/module-data-storage/modules/lambda-share-snapshot\">lambda-share-snapshot</a> and\n<a href=\"/repos/v0.30.0/module-data-storage/modules/lambda-copy-shared-snapshot\">lambda-copy-shared-snapshot</a> modules, can be used to backup your RDS database\nto another AWS account (e.g., for disaster recovery) on a configurable schedule. Under the hood, each module runs a\nLambda function that instructs your database to take a snapshot (this module), share the snapshot with another account\n(the <code>lambda-share-snapshot</code> module), and make a copy of the snapshot (<code>lambda-copy-shared-snapshot</code>).</p>\n</div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"/repos/images/v0.30.0/module-data-storage/_docs/data-backup-architecture.png?raw=true\" alt=\"RDS architecture\" class=\"preview__body--diagram\">\n</div>\n</div>\n<div id=\"toc\" class=\"toc\">\n<div id=\"toctitle\" class=\"title\"></div>\n<ul class=\"sectlevel1\">\n<li><a href=\"#_features\">Features</a></li>\n<li><a href=\"#_learn\">Learn</a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_core_concepts\">Core concepts</a></li>\n</ul>\n</li>\n<li><a href=\"#_deploy\">Deploy</a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_non_production_deployment_quick_start_for_learning\">Non-production deployment (quick start for learning)</a></li>\n<li><a href=\"#_production_deployment\">Production deployment</a></li>\n</ul>\n</li>\n<li><a href=\"#_manage\">Manage</a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_day_to_day_operations\">Day-to-day operations</a></li>\n<li><a href=\"#_major_changes\">Major changes</a></li>\n</ul>\n</li>\n<li><a href=\"#_support\">Support</a></li>\n<li><a href=\"#_contributions\">Contributions</a></li>\n<li><a href=\"#_license\">License</a></li>\n</ul>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_features\"><a class=\"anchor\" href=\"#_features\"></a><a class=\"link\" href=\"#_features\">Features</a></h2>\n<div class=\"sectionbody\">\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Standalone functions for taking snapshots, sharing snapshots, and copying snapshots that can be combined in many\ndifferent ways</p>\n</li>\n<li>\n<p>You can combine them to copy snapshots across AWS accounts and regions</p>\n</li>\n<li>\n<p>Configurable backup schedule (e.g., using cron expressions)</p>\n</li>\n<li>\n<p>Clean up old snapshots automatically using the <a href=\"/repos/v0.30.0/module-data-storage/modules/lambda-cleanup-snapshots\">lambda-cleanup-snapshots</a>\nmodule.</p>\n</li>\n</ul>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_learn\"><a class=\"anchor\" href=\"#_learn\"></a><a class=\"link\" href=\"#_learn\">Learn</a></h2>\n<div class=\"sectionbody\">\n<div class=\"admonitionblock note\">\n<table>\n<tr>\n<td class=\"icon\">\n<div class=\"title\">Note</div>\n</td>\n<td class=\"content\">\nThis repo is a part of <a href=\"https://gruntwork.io/infrastructure-as-code-library/\" target=\"_blank\">the Gruntwork Infrastructure as Code\nLibrary</a>, a collection of reusable, battle-tested, production ready infrastructure code. If you’ve never used the\nInfrastructure as Code Library before, make sure to read\n<a href=\"https://gruntwork.io/guides/foundations/how-to-use-gruntwork-infrastructure-as-code-library/\" target=\"_blank\">How to use the Gruntwork Infrastructure as Code Library</a>!\n</td>\n</tr>\n</table>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_core_concepts\"><a class=\"anchor\" href=\"#_core_concepts\"></a><a class=\"link\" href=\"#_core_concepts\">Core concepts</a></h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/v0.30.0/module-data-storage/modules/rds/core-concepts.md#what-is-amazon-rds\">What is Amazon RDS?</a></p>\n</li>\n<li>\n<p><a href=\"/repos/v0.30.0/module-data-storage/modules/lambda-create-snapshot/core-concepts.md#how-does-this-differ-from-rds-automatic-snapshots\">How does this differ from RDS automatic snapshots?</a></p>\n</li>\n<li>\n<p><a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html\" target=\"_blank\">RDS documentation</a>: Amazon’s docs for RDS that\ncover core concepts such as the types of databases supported, security, backup & restore, and monitoring.</p>\n</li>\n<li>\n<p><em><a href=\"https://dataintensive.net\" target=\"_blank\">Designing Data Intensive Applications</a></em>: the best book we’ve found for understanding data\nsystems, including relational databases, NoSQL, replication, sharding, consistency, and so on.</p>\n</li>\n</ul>\n</div>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_deploy\"><a class=\"anchor\" href=\"#_deploy\"></a><a class=\"link\" href=\"#_deploy\">Deploy</a></h2>\n<div class=\"sectionbody\">\n<div class=\"sect2\">\n<h3 id=\"_non_production_deployment_quick_start_for_learning\"><a class=\"anchor\" href=\"#_non_production_deployment_quick_start_for_learning\"></a><a class=\"link\" href=\"#_non_production_deployment_quick_start_for_learning\">Non-production deployment (quick start for learning)</a></h3>\n<div class=\"paragraph\">\n<p>If you just want to try this repo out for experimenting and learning, check out the following resources:</p>\n</div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/v0.30.0/module-data-storage/examples\">examples folder</a>: The <code>examples</code> folder contains sample code optimized for learning, experimenting,\nand testing (but not production usage).</p>\n</li>\n</ul>\n</div>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_production_deployment\"><a class=\"anchor\" href=\"#_production_deployment\"></a><a class=\"link\" href=\"#_production_deployment\">Production deployment</a></h3>\n<div class=\"paragraph\">\n<p>If you want to deploy this repo in production, check out the following resources:</p>\n</div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/infrastructure-modules-multi-account-acme/data-stores/rds\">rds module in the Acme example Reference Architecture</a>: Production-ready sample code from the Acme Reference Architecture examples.</p>\n</li>\n</ul>\n</div>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_manage\"><a class=\"anchor\" href=\"#_manage\"></a><a class=\"link\" href=\"#_manage\">Manage</a></h2>\n<div class=\"sectionbody\">\n<div class=\"sect2\">\n<h3 id=\"_day_to_day_operations\"><a class=\"anchor\" href=\"#_day_to_day_operations\"></a><a class=\"link\" href=\"#_day_to_day_operations\">Day-to-day operations</a></h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/v0.30.0/module-data-storage/modules/lambda-create-snapshot/core-concepts.md#how-do-you-backup-your-rds-snapshots-to-a-separate-aws-account\">How to backup RDS snapshots to a separate AWS account</a></p>\n</li>\n</ul>\n</div>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_major_changes\"><a class=\"anchor\" href=\"#_major_changes\"></a><a class=\"link\" href=\"#_major_changes\">Major changes</a></h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html\" target=\"_blank\">Restoring from a DB snapshot</a></p>\n</li>\n</ul>\n</div>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_support\"><a class=\"anchor\" href=\"#_support\"></a><a class=\"link\" href=\"#_support\">Support</a></h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>If you need help with this repo or anything else related to infrastructure or DevOps, Gruntwork offers <a href=\"https://gruntwork.io/support/\" target=\"_blank\">Commercial Support</a> via Slack, email, and phone/video. If you’re already a Gruntwork customer, hop on Slack and ask away! If not, <a href=\"https://www.gruntwork.io/pricing/\" target=\"_blank\">subscribe now</a>. If you’re not sure, feel free to email us at <a href=\"mailto:support@gruntwork.io\" target=\"_blank\">support@gruntwork.io</a>.</p>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_contributions\"><a class=\"anchor\" href=\"#_contributions\"></a><a class=\"link\" href=\"#_contributions\">Contributions</a></h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>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.</p>\n</div>\n<div class=\"paragraph\">\n<p>Please see <a href=\"https://gruntwork.io/guides/foundations/how-to-use-gruntwork-infrastructure-as-code-library/#contributing-to-the-gruntwork-infrastructure-as-code-library\" target=\"_blank\">Contributing to the Gruntwork Infrastructure as Code Library</a> for instructions.</p>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_license\"><a class=\"anchor\" href=\"#_license\"></a><a class=\"link\" href=\"#_license\">License</a></h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Please see <a href=\"/repos/v0.30.0/module-data-storage/LICENSE.txt\">LICENSE.txt</a> for details on how the code in this repo is licensed.</p>\n</div>\n</div>\n</div>","repoName":"module-data-storage","repoRef":"v0.34","serviceDescriptor":{"serviceName":"Database backup","serviceRepoName":"module-data-storage","serviceRepoOrg":"gruntwork-io","serviceMainReadmePath":"/modules/lambda-create-snapshot/README.adoc","cloudProviders":["aws"],"description":"Snapshot your RDS databases and copy the snapshots to other AWS accounts on a scheduled basis for disaster recovery.","imageUrl":"grunt.png","licenseType":"subscriber","technologies":["Terraform","JavaScript","Lambda"],"compliance":[],"tags":[""]},"serviceCategoryName":"Backup & recovery","fileName":"README.adoc","filePath":"/modules/lambda-create-snapshot/README.adoc","title":"Repo Browser: Database backup","description":"Browse the repos in the Gruntwork Infrastructure as Code Library."}