Create an Amazon Elastic File System (EFS) file system that provides NFSv4-compatible storage that can be used with other AWS services, such as EC2 instances.
This module creates an Amazon Elastic File System (EFS) file system that provides NFSv4-compatible storage that can be used
with other AWS services, such as EC2 instances.
EFS is also supported in Kubernetes via the EFS CSI driver.
Among other features, it supports ReadWriteMany and ReadOnlyMany access modes in Kubernetes, allowing a volume to be attached
to multiple pods (even across AZs) for failover/redundancy purposes. It also supports encryption-in-transit
for an additional layer of security.
If you want to deploy this repo in production, check out the following resources:
efs module variables: Configuration variables available for the EFS module. At minimum, you should
configure the allow_connections_from_cidr_blocks and allow_connections_from_security_groups values to only allow access
from your private VPC(s). You may also want to enable storage_encrypted to encrypt data at-rest.
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":"25876ddee5c3e405ab467c87ff6a0d36b773391e"},{"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":"8d961461f09584ccd42432b5d56d64db43da1a6e"}]},{"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":"23068872ca60d7f40ae10c05ea8e5915d04056dc"},{"name":"CODEOWNERS","path":"CODEOWNERS","sha":"821a961d9a4c9b551211b85f2e4978171a5b1ac3"},{"name":"LICENSE.txt","path":"LICENSE.txt","sha":"f4e3d9bd4717a044ed31ad847a300eee74371a78"},{"name":"README.adoc","path":"README.adoc","sha":"8f73ee5b8a94653472b3f86c0332757e683191a1"},{"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":"e9f2c25730df4a914f8cacc493ff988ad39f3391"},{"name":"main.tf","path":"examples/aurora-global-cluster/main.tf","sha":"53446af9df90cbdc507a7ffbf31e48c7a46bd101"},{"name":"outputs.tf","path":"examples/aurora-global-cluster/outputs.tf","sha":"ad1a6164878d086b7aba2e2d6dcece92b57db2e6"},{"name":"variables.tf","path":"examples/aurora-global-cluster/variables.tf","sha":"57a4493ec46c7f0d1cf113a0765906c5fc7d2265"}]},{"name":"aurora-serverless","children":[{"name":"README.md","path":"examples/aurora-serverless/README.md","sha":"98662b8765774b68a963e71f48a167f0281c24ef"},{"name":"main.tf","path":"examples/aurora-serverless/main.tf","sha":"0c5b191a15c615868769fde539962ff491fb4826"},{"name":"outputs.tf","path":"examples/aurora-serverless/outputs.tf","sha":"7da44a91e9ac6e14a5c7c144c60c5ad0ceb5ce1b"},{"name":"variables.tf","path":"examples/aurora-serverless/variables.tf","sha":"121ec7d62c6ac37994d5e21c07edcba83cb42cce"}]},{"name":"aurora-with-cross-region-replica","children":[{"name":"README.md","path":"examples/aurora-with-cross-region-replica/README.md","sha":"ea3fbab79d4537541becf92d30a2e620daf8a308"},{"name":"main.tf","path":"examples/aurora-with-cross-region-replica/main.tf","sha":"b2568481dbec32deabf26b03e6b28b3bde69fa7e"},{"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":"a9326e5c167be4666653c2553265195171be30ed"}]},{"name":"aurora","children":[{"name":"README.md","path":"examples/aurora/README.md","sha":"3ffae862906cf9daf61599e6ad694b45ac8946c4"},{"name":"main.tf","path":"examples/aurora/main.tf","sha":"e9a175a43b3c2471a83b73bef82be1bc3abd5807"},{"name":"outputs.tf","path":"examples/aurora/outputs.tf","sha":"142569b7d9772c741ee28846de617f5a4b7f0d84"},{"name":"variables.tf","path":"examples/aurora/variables.tf","sha":"767be4c3468fb461c5bd7cd05a7b41164367697a"}]},{"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":"1e412640d057652c6027cd84f9b688a1b9a21d84"},{"name":"variables.tf","path":"examples/default-vault-plan-and-selection/variables.tf","sha":"b41526930c798d19c4dd3d744a3ffcce4538535d"}]},{"name":"efs","children":[{"name":"README.md","path":"examples/efs/README.md","sha":"d7c254b633663051e6a56e7b05092cd09fdf06b2"},{"name":"main.tf","path":"examples/efs/main.tf","sha":"dfb8727f43f209a3198231f111d08c19cd3e6ac7"},{"name":"outputs.tf","path":"examples/efs/outputs.tf","sha":"b5a6400d4a67e1e6f6773c513acaa8784ceda46b"},{"name":"variables.tf","path":"examples/efs/variables.tf","sha":"3c49e13f2e303786c32ca45a0408a270b4a43bae"}]},{"name":"lambda-rds-snapshot-multiple-schedules","children":[{"name":"README.md","path":"examples/lambda-rds-snapshot-multiple-schedules/README.md","sha":"77a88fa879f0ac2eae47319bb35a6b25126975d2"},{"name":"main.tf","path":"examples/lambda-rds-snapshot-multiple-schedules/main.tf","sha":"9b4ff2be5c86c46001289ce5dc4d26ed5af58b15"},{"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":"9e24c56c01d3d8b4dd220ca1b7bde62b3aa9272a"},{"name":"main.tf","path":"examples/lambda-rds-snapshot/main.tf","sha":"1ddffee0dd20f337a9c375da603ac817706c0b04"},{"name":"outputs.tf","path":"examples/lambda-rds-snapshot/outputs.tf","sha":"375c8bb979dd4133c3675d9e6263e1138c448973"},{"name":"variables.tf","path":"examples/lambda-rds-snapshot/variables.tf","sha":"b777711ea9860aa43f766a5e5edf8b817e994885"}]},{"name":"rds-mariadb","children":[{"name":"README.md","path":"examples/rds-mariadb/README.md","sha":"f283eaf0f935ca3ea4becf713208cd33acb214da"},{"name":"main.tf","path":"examples/rds-mariadb/main.tf","sha":"efa39f9bf8938124ef5c6c4f714ee23a7fdd0bc8"},{"name":"outputs.tf","path":"examples/rds-mariadb/outputs.tf","sha":"bd45b0035943021763d0365da3fe0d1e9f9b16b9"},{"name":"variables.tf","path":"examples/rds-mariadb/variables.tf","sha":"f44c101e55767db60dde0a98b32288ac044cea8c"}]},{"name":"rds-mysql-with-cross-region-replica","children":[{"name":"README.md","path":"examples/rds-mysql-with-cross-region-replica/README.md","sha":"038ec07d0a108e9b6a574449c7199bf77e56aebf"},{"name":"main.tf","path":"examples/rds-mysql-with-cross-region-replica/main.tf","sha":"129daff245077852956d99f2a3eac6c9f1b68a61"},{"name":"outputs.tf","path":"examples/rds-mysql-with-cross-region-replica/outputs.tf","sha":"2d79e34b6bc52c934a62e40e38e3cdcace5196a0"},{"name":"variables.tf","path":"examples/rds-mysql-with-cross-region-replica/variables.tf","sha":"1e57fa98c4dbe869584cdcabd7a5a3c2e9cb13a7"}]},{"name":"rds-mysql","children":[{"name":"README.md","path":"examples/rds-mysql/README.md","sha":"35cc3616e954dcbe71cc1895856acaf48b2d01d6"},{"name":"main.tf","path":"examples/rds-mysql/main.tf","sha":"01f510b6f899c7a4fe8bd65b172d204d715f49b9"},{"name":"outputs.tf","path":"examples/rds-mysql/outputs.tf","sha":"e2ae2afdbcc0d27baa5d50be333f9d0a717e1a33"},{"name":"variables.tf","path":"examples/rds-mysql/variables.tf","sha":"4a3548b25a1ef8aef5a3954038aa62854a16d540"}]},{"name":"rds-oracle","children":[{"name":"README.md","path":"examples/rds-oracle/README.md","sha":"f6e30f8651a55c00c4bc8954e26747206257184c"},{"name":"main.tf","path":"examples/rds-oracle/main.tf","sha":"903e5efe0ba2f3374ba3ed70f959e9c390ae3178"},{"name":"outputs.tf","path":"examples/rds-oracle/outputs.tf","sha":"9d7db39017a241ce80936c5658f6185d2bfd0e3e"},{"name":"variables.tf","path":"examples/rds-oracle/variables.tf","sha":"ce72c219fdfb6818b4ab3f81293fae9006c4021a"}]},{"name":"rds-postgres","children":[{"name":"README.md","path":"examples/rds-postgres/README.md","sha":"cb6bac1c7d45eca775e9c1095ad7a6f3a718a7fb"},{"name":"main.tf","path":"examples/rds-postgres/main.tf","sha":"8d3d03da9d7803de6d22ed578445d69a95076a13"},{"name":"outputs.tf","path":"examples/rds-postgres/outputs.tf","sha":"5371c2284c0ea3d4de5790077ba45d9d445c2965"},{"name":"variables.tf","path":"examples/rds-postgres/variables.tf","sha":"419bcd969dc2993f365f4403adaf10f9681f6031"}]},{"name":"rds-sqlserver","children":[{"name":"README.md","path":"examples/rds-sqlserver/README.md","sha":"747d59f4bea76727dbc533578bb0a785b90a6a3f"},{"name":"main.tf","path":"examples/rds-sqlserver/main.tf","sha":"8eba625a5b3f3ee25eb1e416d2cec54414ae7bc6"},{"name":"outputs.tf","path":"examples/rds-sqlserver/outputs.tf","sha":"a1726fd73528af38b436c053128f24a17da740c3"},{"name":"variables.tf","path":"examples/rds-sqlserver/variables.tf","sha":"d5d575f8672595a94340621adac52280101924fb"}]},{"name":"rds-with-replicas","children":[{"name":"README.md","path":"examples/rds-with-replicas/README.md","sha":"e1f7e7f834c4260ec8c5b836474ca7934965826f"},{"name":"main.tf","path":"examples/rds-with-replicas/main.tf","sha":"8f93b970c97dfb332e6c5eeb59050f889586842a"},{"name":"outputs.tf","path":"examples/rds-with-replicas/outputs.tf","sha":"991d5436a635194fec1ad1476eb7be6616032c7a"},{"name":"variables.tf","path":"examples/rds-with-replicas/variables.tf","sha":"708a5aaed525a4d6668607e9948f61329c17e29f"}]},{"name":"redshift","children":[{"name":"README.md","path":"examples/redshift/README.md","sha":"56b2a89cf6ee0ac8dd785d0496f758fa6251f00d"},{"name":"main.tf","path":"examples/redshift/main.tf","sha":"e5d2a60d75dec65ea8b3dfe30fdf0e081f532a12"},{"name":"outputs.tf","path":"examples/redshift/outputs.tf","sha":"779c37290dc1c986bfd8d629cc9b2ba1d98c68aa"},{"name":"variables.tf","path":"examples/redshift/variables.tf","sha":"e89ac7c94a3aa6fd900dc5a31a17923c84091fab"}]},{"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":"cf8fa5277588ba392aad028d6d9c41e7adffe002"},{"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":"aa411a330556da72e241b28611bd61f8e2d9e79f"},{"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":"afc643feb33c59a100a059a391449a2c010359f1"},{"name":"main.tf","path":"examples/vault-plan-and-selection/main.tf","sha":"c96da877bf9592d08db4fdb33b8f820fe519ac0b"},{"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":"9d0c888cf1052fa4019e648b2c8449a335a03227"},{"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":"852b09a3ceb52edbb250066da8d51b89d5232509"},{"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":"README-Aurora-Serverless.adoc","path":"modules/aurora/README-Aurora-Serverless.adoc","sha":"c534c3ee37f24be7ee98bb79b229ffa3e53dee42"},{"name":"README-Aurora.adoc","path":"modules/aurora/README-Aurora.adoc","sha":"ef0cebfe8da05c06e823d0eb99c81949cc8ed7a1"},{"name":"README.adoc","path":"modules/aurora/README.adoc","sha":"4f6041bdf90cd848bc85ab737964b0e50d0ba89d"},{"name":"core-concepts.md","path":"modules/aurora/core-concepts.md","sha":"2f9326da75f970bb3a6452f907032d6f24c5505c"},{"name":"main.tf","path":"modules/aurora/main.tf","sha":"727b6419e35da571fec0f2a8ccdeb9046a3388a9"},{"name":"outputs.tf","path":"modules/aurora/outputs.tf","sha":"7d26a713a297ec98e8c14a65e8a10f357dd0fe5a"},{"name":"variables.tf","path":"modules/aurora/variables.tf","sha":"208049483f2958bb2a1a5ac510b38f87d93c6ada"}]},{"name":"backup-plan","children":[{"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":"750453a2991d7797b312d55ff871a37550d16f1a"},{"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":"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":"1e02a730cbc1530bda84c02e502e61a15e73ab28"},{"name":"outputs.tf","path":"modules/backup-vault/outputs.tf","sha":"6f9126dc37e7ffabb067ecc02fd9614d32be8c03"},{"name":"variables.tf","path":"modules/backup-vault/variables.tf","sha":"6a56e36789739736ebbcfc3a6a1e38aa53cddad3"}]},{"name":"efs","children":[{"name":"README.adoc","path":"modules/efs/README.adoc","sha":"1b13e1f238d444728b6b81a67e4b38c78d33a1ba","toggled":true},{"name":"main.tf","path":"modules/efs/main.tf","sha":"7ea3100b14e86d98fcfd0a555c830593b3d9140c"},{"name":"outputs.tf","path":"modules/efs/outputs.tf","sha":"b505b3d3c4ade32e06286ebea60be1a5f67ce77a"},{"name":"variables.tf","path":"modules/efs/variables.tf","sha":"b5a0571a2ff59a95f3510b7658d23330ce4721dd"}],"toggled":true},{"name":"lambda-cleanup-snapshots","children":[{"name":"README.md","path":"modules/lambda-cleanup-snapshots/README.md","sha":"f3a630bf25ce804716a4bf4e509a7888cf2570c4"},{"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":"f5b6e5139c2a1233f160549d1a80cd4cb441b3bf"},{"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":"README.md","path":"modules/lambda-copy-shared-snapshot/README.md","sha":"1f592e4de130eb5deb9bd1b2732bb5747f82d1fe"},{"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":"a56df9f21af5efce1fd1d0ced766d8e1f42f27b7"},{"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":"README.adoc","path":"modules/lambda-create-snapshot/README.adoc","sha":"65545b60413c56b2d94f6ad58e02218b03912265"},{"name":"core-concepts.md","path":"modules/lambda-create-snapshot/core-concepts.md","sha":"46c9c56f3d622c66244be9ab76bd3e2da0a2e7d2"},{"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":"a190df373024a479db9cf75d6fdab9db9e2a9ee9"},{"name":"outputs.tf","path":"modules/lambda-create-snapshot/outputs.tf","sha":"a0f5ffafa8ef11d00b72f1858b81e182ab2471dd"},{"name":"variables.tf","path":"modules/lambda-create-snapshot/variables.tf","sha":"f18942d85d2e7c5dc4c629b1503a1c32a52e4b56"}]},{"name":"lambda-share-snapshot","children":[{"name":"README.md","path":"modules/lambda-share-snapshot/README.md","sha":"f00a0ab9745632e85d5f4c8e7a9389e1a8608b6b"},{"name":"main.tf","path":"modules/lambda-share-snapshot/main.tf","sha":"af7b47f54b32a31351586a5f9afa831d48df014e"},{"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":"rds","children":[{"name":"README-MariaDb.adoc","path":"modules/rds/README-MariaDb.adoc","sha":"6640c93e80d7d23895b793cb7ba129fbdf3e9543"},{"name":"README-MySQL.adoc","path":"modules/rds/README-MySQL.adoc","sha":"d4df8174814bf39578b0f179434b2b2df4aa9a88"},{"name":"README-Oracle.adoc","path":"modules/rds/README-Oracle.adoc","sha":"aba5045edd1dcf5b71f05cff200f46f24b50cb31"},{"name":"README-PostgreSQL.adoc","path":"modules/rds/README-PostgreSQL.adoc","sha":"fd651656eac32f36e5bb54cde9ed14893434880c"},{"name":"README-SqlServer.adoc","path":"modules/rds/README-SqlServer.adoc","sha":"68ffef63494114f48e67ccc2db95e4af2ba05302"},{"name":"README.adoc","path":"modules/rds/README.adoc","sha":"7302f29f714decd04fe5005ff35765bde2b0eefa"},{"name":"core-concepts.md","path":"modules/rds/core-concepts.md","sha":"4746ffc4e601826c215bbcf636af45d95631f5b8"},{"name":"main.tf","path":"modules/rds/main.tf","sha":"7bdccc12c49d652d358fb1fbea0106851b910ce0"},{"name":"outputs.tf","path":"modules/rds/outputs.tf","sha":"9d073f913ac9b972681753c6831d93bb133f830f"},{"name":"variables.tf","path":"modules/rds/variables.tf","sha":"6c6ebd29fd69ff6efa39204ea259ddeaa9a4673e"}]},{"name":"redshift","children":[{"name":"README.adoc","path":"modules/redshift/README.adoc","sha":"d2e3c310c5fbe264cb1b8b48b2dc9710f8a60127"},{"name":"main.tf","path":"modules/redshift/main.tf","sha":"2fdb38c9919cf7b2e23b85b91923063d7ba87f39"},{"name":"outputs.tf","path":"modules/redshift/outputs.tf","sha":"a58d5730738046153b5f73edee78cee1a0e76fd9"},{"name":"variables.tf","path":"modules/redshift/variables.tf","sha":"d8755da4bc74dcafe78014d8d8216a11117e6767"}]}],"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":"031cdc06d155eff31f9c5648a1c92ee5fb816ea0"},{"name":"backup_test_helpers.go","path":"test/backup_test_helpers.go","sha":"51bdc48c508abbae30da4079e7a4e58318afa268"},{"name":"db_util.go","path":"test/db_util.go","sha":"8caa917a2446fa22a60d6374d6a1673ecbec57fb"},{"name":"example_aurora_global_test.go","path":"test/example_aurora_global_test.go","sha":"216af0cd3a6dd953f6f336f2af90472bb60b16a5"},{"name":"example_aurora_test.go","path":"test/example_aurora_test.go","sha":"1f2db7203d555ae798b463a36f0e83db00ec35ef"},{"name":"example_aurora_with_cross_region_replica_test.go","path":"test/example_aurora_with_cross_region_replica_test.go","sha":"7a3e98a3257290ccef1968f40205014f738eb15e"},{"name":"example_backup_default_vault_and_plan_test.go","path":"test/example_backup_default_vault_and_plan_test.go","sha":"f6515478de142db5982821083e112f798af39055"},{"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":"88a035ae086ffb5ac932ea5abc48cf1d90524fc4"},{"name":"example_backup_vault_with_custom_policy_test.go","path":"test/example_backup_vault_with_custom_policy_test.go","sha":"0e14c415fa450af057482f0465b657b07dc193ea"},{"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":"b76dfc2c5ea7526e699afa2052971e456e5c5085"},{"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":"c55b754e12f4286eb1cb9ecf5a5d91c7568415e2"},{"name":"example_rds_mariadb_test.go","path":"test/example_rds_mariadb_test.go","sha":"ed3b47f64165eabf14b8ad6e145d876a1897768e"},{"name":"example_rds_mysql_test.go","path":"test/example_rds_mysql_test.go","sha":"f10102050b2531191cb14a332f312759d2317c2f"},{"name":"example_rds_mysql_with_cross_region_replica_test.go","path":"test/example_rds_mysql_with_cross_region_replica_test.go","sha":"eadb2aac648af60edc2544207867a95d9a6c4bdc"},{"name":"example_rds_oracle_test.go","path":"test/example_rds_oracle_test.go","sha":"4bca56b224524b937fc2490742e065a09d9cc739"},{"name":"example_rds_postgres_test.go","path":"test/example_rds_postgres_test.go","sha":"3b1eebd36d7e1b7373c029165192318dc14fde43"},{"name":"example_rds_sqlserver_test.go","path":"test/example_rds_sqlserver_test.go","sha":"0af26a3d7e3c4ebf6d1b33d86388a7c19ec78ae2"},{"name":"example_rds_with_replicas_test.go","path":"test/example_rds_with_replicas_test.go","sha":"a22847494054070c2a500ce39a86aeb084e5d4ec"},{"name":"example_redshift_test.go","path":"test/example_redshift_test.go","sha":"616087f8f54f096f4265dc5402b220b723e692e3"},{"name":"go.mod","path":"test/go.mod","sha":"ddc0a0210f37f0c0ce779343ac9999020c1101f2"},{"name":"go.sum","path":"test/go.sum","sha":"5c560ae9a3c809ed89754e6588d0c22b980fe69c"},{"name":"upgrades","children":[{"name":"constants.go","path":"test/upgrades/constants.go","sha":"bf6b0ba6bd1f9294dd1b631036b430fa9723f38a"},{"name":"upgrade_module_aurora_test.go","path":"test/upgrades/upgrade_module_aurora_test.go","sha":"7612320286656fa0169d981925fa92fd3a2c9f0b"},{"name":"upgrade_module_rds_mysql_with_cross_region_replica_test.go","path":"test/upgrades/upgrade_module_rds_mysql_with_cross_region_replica_test.go","sha":"7f16345bf5a916db9bab268575a88413644b41bc"}]},{"name":"util.go","path":"test/util.go","sha":"8259d2350b51bfddb183e5ac6a4957c24a66d0e7"},{"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 creates an Amazon Elastic File System (EFS) file system that provides NFSv4-compatible storage that can be used\nwith other AWS services, such as EC2 instances.</p>\n</div>\n<div class=\"paragraph\">\n<p>EFS is also supported in Kubernetes via the <a href=\"https://github.com/kubernetes-sigs/aws-efs-csi-driver\" target=\"_blank\">EFS CSI driver</a>.\nAmong other features, it supports <code>ReadWriteMany</code> and <code>ReadOnlyMany</code> access modes in Kubernetes, allowing a volume to be attached\nto multiple pods (even across AZs) for failover/redundancy purposes. It also supports <a href=\"https://github.com/kubernetes-sigs/aws-efs-csi-driver#encryption-in-transit\" target=\"_blank\">encryption-in-transit</a>\nfor an additional layer of security.</p>\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</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>Create a managed NFSv4-compliant file system</p>\n</li>\n<li>\n<p>Supports encryption-at-rest and encryption-in-transit</p>\n</li>\n<li>\n<p>Automatic failover to another availability zone</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=\"https://docs.aws.amazon.com/efs/latest/ug/index.html\" target=\"_blank\">EFS documentation</a>: Amazon’s docs for EFS that\ncover core concepts such as performance modes, throughput modes, mounting file systems, etc.</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.32/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/v0.32/module-data-storage/modules/efs/variables.tf\">efs module variables</a>: Configuration variables available for the EFS module. At minimum, you should\nconfigure the <code>allow_connections_from_cidr_blocks</code> and <code>allow_connections_from_security_groups</code> values to only allow access\nfrom your private VPC(s). You may also want to enable <code>storage_encrypted</code> to encrypt data at-rest.</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=\"https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html\" target=\"_blank\">How to mount an EFS file system</a></p>\n</li>\n<li>\n<p><a href=\"https://docs.aws.amazon.com/efs/latest/ug/efs-backup-solutions.html\" target=\"_blank\">How to configure backups</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.32/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.24.2","serviceDescriptor":{"serviceName":"EFS","serviceRepoName":"module-data-storage","serviceRepoOrg":"gruntwork-io","serviceMainReadmePath":"modules/efs/README.adoc","cloudProviders":["aws"],"description":"Create an Amazon Elastic File System (EFS) file system that provides NFSv4-compatible storage that can be used with other AWS services, such as EC2 instances.","imageUrl":"efs.png","licenseType":"subscriber","technologies":["Terraform"],"compliance":[],"tags":[""]},"serviceCategoryName":"Database","fileName":"README.adoc","filePath":"/modules/efs","title":"Repo Browser: EFS","description":"Browse the repos in the Gruntwork Infrastructure as Code Library."}