From bbf6158742e8caa9a6c30a4989edd64cad65f0e2 Mon Sep 17 00:00:00 2001 From: "docs-sourcer[bot]" <99042413+docs-sourcer[bot]@users.noreply.github.com> Date: Thu, 2 Oct 2025 02:36:05 +0000 Subject: [PATCH] Updated with the [latest changes](https://github.com/gruntwork-io/terraform-aws-data-storage/releases/tag/v0.41.1) from the `terraform-aws-data-storage@v0.41.1` source branch. --- .../aurora/aurora.md | 43 +++++++++---- .../backup-plan/backup-plan.md | 20 +++--- .../backup-vault/backup-vault.md | 16 ++--- .../terraform-aws-data-storage/dms/dms.md | 16 ++--- .../terraform-aws-data-storage/efs/efs.md | 20 +++--- .../lambda-cleanup-snapshots.md | 18 +++--- .../lambda-copy-shared-snapshot.md | 18 +++--- .../lambda-create-snapshot.md | 28 ++++---- .../lambda-share-snapshot.md | 20 +++--- .../org-backup-policy/org-backup-policy.md | 18 +++--- .../rds-proxy/rds-proxy.md | 18 +++--- .../rds-replicas/rds-replicas.md | 16 ++--- .../terraform-aws-data-storage/rds/rds.md | 64 +++++++++++++++---- .../redshift/redshift.md | 16 ++--- 14 files changed, 197 insertions(+), 134 deletions(-) diff --git a/docs/reference/modules/terraform-aws-data-storage/aurora/aurora.md b/docs/reference/modules/terraform-aws-data-storage/aurora/aurora.md index 72239cd70a..fb1834473a 100644 --- a/docs/reference/modules/terraform-aws-data-storage/aurora/aurora.md +++ b/docs/reference/modules/terraform-aws-data-storage/aurora/aurora.md @@ -9,13 +9,13 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # Aurora Module -View Source +View Source -Release Notes +Release Notes This module creates an Amazon Aurora, a MySQL and PostgreSQL compatible relational database built for the cloud. @@ -59,7 +59,7 @@ Cluster](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.h ## How do you configure this module? This module allows you to configure a number of parameters, such as backup windows, maintenance window, port number, -and encryption. For a list of all available variables and their descriptions, see [variables.tf](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/aurora/variables.tf). +and encryption. For a list of all available variables and their descriptions, see [variables.tf](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/aurora/variables.tf). ## How do you create a cross-region read replica cluster? @@ -77,7 +77,7 @@ module "replica" { } ``` -See the example [here](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/examples/aurora-with-cross-region-replica) for more details. +See the example [here](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/examples/aurora-with-cross-region-replica) for more details. ## How do you destroy a cross-region read replica? @@ -137,7 +137,7 @@ see [Limitations of Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/lat module "aurora" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/aurora?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/aurora?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -273,6 +273,12 @@ module "aurora" { # value. custom_tags = {} + # The mode of Database Insights to enable for the DB cluster. Valid options + # are 'standard' or 'advanced'. When setting this to 'advanced' then + # cluster_performance_insights_enabled must be set to true and + # 'cluster_performance_insights_retention_period' set to at least 465 days. + database_insights_mode = null + # A cluster parameter group to associate with the cluster. Parameters in a DB # cluster parameter group apply to every DB instance in a DB cluster. db_cluster_parameter_group_name = null @@ -524,7 +530,7 @@ module "aurora" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/aurora?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/aurora?ref=v0.41.1" } inputs = { @@ -663,6 +669,12 @@ inputs = { # value. custom_tags = {} + # The mode of Database Insights to enable for the DB cluster. Valid options + # are 'standard' or 'advanced'. When setting this to 'advanced' then + # cluster_performance_insights_enabled must be set to true and + # 'cluster_performance_insights_retention_period' set to at least 465 days. + database_insights_mode = null + # A cluster parameter group to associate with the cluster. Parameters in a DB # cluster parameter group apply to every DB instance in a DB cluster. db_cluster_parameter_group_name = null @@ -1175,6 +1187,15 @@ A map of custom tags to apply to the Aurora RDS Instance and the Security Group + + + +The mode of Database Insights to enable for the DB cluster. Valid options are 'standard' or 'advanced'. When setting this to 'advanced' then cluster_performance_insights_enabled must be set to true and 'cluster_performance_insights_retention_period' set to at least 465 days. + + + + + @@ -1685,11 +1706,11 @@ Timeout for DB updating diff --git a/docs/reference/modules/terraform-aws-data-storage/backup-plan/backup-plan.md b/docs/reference/modules/terraform-aws-data-storage/backup-plan/backup-plan.md index a828a912cb..beb2f4b940 100644 --- a/docs/reference/modules/terraform-aws-data-storage/backup-plan/backup-plan.md +++ b/docs/reference/modules/terraform-aws-data-storage/backup-plan/backup-plan.md @@ -9,11 +9,11 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # Backup Plan Module -View Source +View Source Release Notes @@ -22,7 +22,7 @@ This Terraform Module creates the following AWS Backup resources: 1. Backup plans - specifying **how and when** to back things up 2. Resource selections - specifying **which resources** to back up -You associate your plans with a [Backup vault](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/backup-vault). +You associate your plans with a [Backup vault](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/backup-vault). ## What is a Backup Plan? @@ -91,7 +91,7 @@ module "backup_plan" { ## How do you troubleshoot Backup jobs? -See [Troubleshooting AWS Backup](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/core-concepts.md#troubleshooting-aws-backup) in the core-concepts guide. +See [Troubleshooting AWS Backup](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/core-concepts.md#troubleshooting-aws-backup) in the core-concepts guide. ## Sample Usage @@ -106,7 +106,7 @@ See [Troubleshooting AWS Backup](https://github.com/gruntwork-io/terraform-aws-d module "backup_plan" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-plan?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-plan?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -137,7 +137,7 @@ module "backup_plan" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-plan?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-plan?ref=v0.41.1" } inputs = { @@ -244,11 +244,11 @@ The ARN of the IAM service role used by Backup plans diff --git a/docs/reference/modules/terraform-aws-data-storage/backup-vault/backup-vault.md b/docs/reference/modules/terraform-aws-data-storage/backup-vault/backup-vault.md index 8841da7826..a13d88edc6 100644 --- a/docs/reference/modules/terraform-aws-data-storage/backup-vault/backup-vault.md +++ b/docs/reference/modules/terraform-aws-data-storage/backup-vault/backup-vault.md @@ -9,11 +9,11 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # Backup Vault Module -View Source +View Source Release Notes @@ -115,7 +115,7 @@ then you will end up with many potentially large recovery points that you cannot module "backup_vault" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-vault?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-vault?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -159,7 +159,7 @@ module "backup_vault" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-vault?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-vault?ref=v0.41.1" } inputs = { @@ -322,11 +322,11 @@ A map of tags assigned to the vault resources, including those inherited from th diff --git a/docs/reference/modules/terraform-aws-data-storage/dms/dms.md b/docs/reference/modules/terraform-aws-data-storage/dms/dms.md index 1e0bf61df6..382c9f3937 100644 --- a/docs/reference/modules/terraform-aws-data-storage/dms/dms.md +++ b/docs/reference/modules/terraform-aws-data-storage/dms/dms.md @@ -9,11 +9,11 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # DMS Module -View Source +View Source Release Notes @@ -32,7 +32,7 @@ This module creates an Amazon Database Migration Service (DMS) that makes it pos module "dms" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/dms?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/dms?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -276,7 +276,7 @@ module "dms" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/dms?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/dms?ref=v0.41.1" } inputs = { @@ -1082,11 +1082,11 @@ A map of maps containing the replication tasks created and their full output of diff --git a/docs/reference/modules/terraform-aws-data-storage/efs/efs.md b/docs/reference/modules/terraform-aws-data-storage/efs/efs.md index 138bbbfb52..01e859cf7f 100644 --- a/docs/reference/modules/terraform-aws-data-storage/efs/efs.md +++ b/docs/reference/modules/terraform-aws-data-storage/efs/efs.md @@ -9,11 +9,11 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # EFS Module -View Source +View Source Release Notes @@ -45,13 +45,13 @@ This repo is a part of [the Gruntwork Infrastructure as Code Library](https://gr If you just want to try this repo out for experimenting and learning, check out the following resources: -* [examples folder](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/examples): The `examples` folder contains sample code optimized for learning, experimenting, and testing (but not production usage). +* [examples folder](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/examples): The `examples` folder contains sample code optimized for learning, experimenting, and testing (but not production usage). ### Production deployment If you want to deploy this repo in production, check out the following resources: -* [efs module variables](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/efs/variables.tf): 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. +* [efs module variables](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/efs/variables.tf): 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. ## Manage @@ -74,7 +74,7 @@ If you want to deploy this repo in production, check out the following resources module "efs" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/efs?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/efs?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -187,7 +187,7 @@ module "efs" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/efs?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/efs?ref=v0.41.1" } inputs = { @@ -586,11 +586,11 @@ The IDs of the security groups created for the file system. diff --git a/docs/reference/modules/terraform-aws-data-storage/lambda-cleanup-snapshots/lambda-cleanup-snapshots.md b/docs/reference/modules/terraform-aws-data-storage/lambda-cleanup-snapshots/lambda-cleanup-snapshots.md index 8009f04b88..2e3d36e9a3 100644 --- a/docs/reference/modules/terraform-aws-data-storage/lambda-cleanup-snapshots/lambda-cleanup-snapshots.md +++ b/docs/reference/modules/terraform-aws-data-storage/lambda-cleanup-snapshots/lambda-cleanup-snapshots.md @@ -9,11 +9,11 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # Delete Snapshots Lambda Module -View Source +View Source Release Notes @@ -29,7 +29,7 @@ Note that to use this module, you must have access to the Gruntwork [Continuous This module allows you to configure a number of parameters, such as which database to backup, how often to run the backups, what account to share the backups with, and more. For a list of all available variables and their -descriptions, see [variables.tf](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/lambda-cleanup-snapshots/variables.tf). +descriptions, see [variables.tf](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/lambda-cleanup-snapshots/variables.tf). ## Sample Usage @@ -44,7 +44,7 @@ descriptions, see [variables.tf](https://github.com/gruntwork-io/terraform-aws-d module "lambda_cleanup_snapshots" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-cleanup-snapshots?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-cleanup-snapshots?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -114,7 +114,7 @@ module "lambda_cleanup_snapshots" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-cleanup-snapshots?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-cleanup-snapshots?ref=v0.41.1" } inputs = { @@ -295,11 +295,11 @@ Namespace of snapshots that will be cleaned up by this module. If specified then diff --git a/docs/reference/modules/terraform-aws-data-storage/lambda-copy-shared-snapshot/lambda-copy-shared-snapshot.md b/docs/reference/modules/terraform-aws-data-storage/lambda-copy-shared-snapshot/lambda-copy-shared-snapshot.md index 270d229f39..ffb81dcbb6 100644 --- a/docs/reference/modules/terraform-aws-data-storage/lambda-copy-shared-snapshot/lambda-copy-shared-snapshot.md +++ b/docs/reference/modules/terraform-aws-data-storage/lambda-copy-shared-snapshot/lambda-copy-shared-snapshot.md @@ -9,11 +9,11 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # Copy Snapshot Lambda Module -View Source +View Source Release Notes @@ -108,7 +108,7 @@ account 222222222222. To be able to make a copy of that snapshot in account 2222 ## Background info For more info on how to backup RDS snapshots to a separate AWS account, check out the [lambda-create-snapshot module -documentation](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/lambda-create-snapshot). +documentation](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/lambda-create-snapshot). ## Sample Usage @@ -123,7 +123,7 @@ documentation](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v module "lambda_copy_shared_snapshot" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-copy-shared-snapshot?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-copy-shared-snapshot?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -199,7 +199,7 @@ module "lambda_copy_shared_snapshot" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-copy-shared-snapshot?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-copy-shared-snapshot?ref=v0.41.1" } inputs = { @@ -393,11 +393,11 @@ Namespace all Lambda scheduling resources created by this module with this name. diff --git a/docs/reference/modules/terraform-aws-data-storage/lambda-create-snapshot/lambda-create-snapshot.md b/docs/reference/modules/terraform-aws-data-storage/lambda-create-snapshot/lambda-create-snapshot.md index f69f687e04..2e9fba3811 100644 --- a/docs/reference/modules/terraform-aws-data-storage/lambda-create-snapshot/lambda-create-snapshot.md +++ b/docs/reference/modules/terraform-aws-data-storage/lambda-create-snapshot/lambda-create-snapshot.md @@ -9,15 +9,15 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # Database backup -View Source +View Source Release Notes -This module, along with the [lambda-share-snapshot](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/lambda-share-snapshot) and [lambda-copy-shared-snapshot](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/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`). +This module, along with the [lambda-share-snapshot](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/lambda-share-snapshot) and [lambda-copy-shared-snapshot](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/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 architecture](/img/reference/modules/terraform-aws-data-storage/lambda-create-snapshot/data-backup-architecture.png) @@ -29,7 +29,7 @@ This module, along with the [lambda-share-snapshot](https://github.com/gruntwork * Configurable backup schedule (e.g., using cron expressions) -* Clean up old snapshots automatically using the [lambda-cleanup-snapshots](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/lambda-cleanup-snapshots) module. +* Clean up old snapshots automatically using the [lambda-cleanup-snapshots](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/lambda-cleanup-snapshots) module. * Add tags to snapshots by passing in `additional_environment_variables` @@ -41,9 +41,9 @@ This repo is a part of [the Gruntwork Infrastructure as Code Library](https://gr ### Core concepts -* [What is Amazon RDS?](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/rds/core-concepts.md#what-is-amazon-rds) +* [What is Amazon RDS?](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/rds/core-concepts.md#what-is-amazon-rds) -* [How does this differ from RDS automatic snapshots?](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/lambda-create-snapshot/core-concepts.md#how-does-this-differ-from-rds-automatic-snapshots) +* [How does this differ from RDS automatic snapshots?](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/lambda-create-snapshot/core-concepts.md#how-does-this-differ-from-rds-automatic-snapshots) * [RDS documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html): Amazon’s docs for RDS that cover core concepts such as the types of databases supported, security, backup & restore, and monitoring. @@ -55,7 +55,7 @@ This repo is a part of [the Gruntwork Infrastructure as Code Library](https://gr If you just want to try this repo out for experimenting and learning, check out the following resources: -* [examples folder](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/examples): The `examples` folder contains sample code optimized for learning, experimenting, and testing (but not production usage). +* [examples folder](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/examples): The `examples` folder contains sample code optimized for learning, experimenting, and testing (but not production usage). ### Production deployment @@ -67,7 +67,7 @@ If you want to deploy this repo in production, check out the following resources ### Day-to-day operations -* [How to backup RDS snapshots to a separate AWS account](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/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](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/lambda-create-snapshot/core-concepts.md#how-do-you-backup-your-rds-snapshots-to-a-separate-aws-account) ### Major changes @@ -86,7 +86,7 @@ If you want to deploy this repo in production, check out the following resources module "lambda_create_snapshot" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-create-snapshot?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-create-snapshot?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -188,7 +188,7 @@ module "lambda_create_snapshot" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-create-snapshot?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-create-snapshot?ref=v0.41.1" } inputs = { @@ -465,11 +465,11 @@ Namespace all snapshots created by this module's jobs with this suffix. If not s diff --git a/docs/reference/modules/terraform-aws-data-storage/lambda-share-snapshot/lambda-share-snapshot.md b/docs/reference/modules/terraform-aws-data-storage/lambda-share-snapshot/lambda-share-snapshot.md index 1d71cdf2e7..600c6e755d 100644 --- a/docs/reference/modules/terraform-aws-data-storage/lambda-share-snapshot/lambda-share-snapshot.md +++ b/docs/reference/modules/terraform-aws-data-storage/lambda-share-snapshot/lambda-share-snapshot.md @@ -9,23 +9,23 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # Share Snapshot Lambda Module -View Source +View Source Release Notes This module creates an [AWS Lambda](https://aws.amazon.com/lambda/) function that can share snapshots of an [Amazon Relational Database (RDS)](https://aws.amazon.com/rds/) database with another AWS account. Typically, the snapshots -are created by the [lambda-create-snapshot module](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/lambda-create-snapshot), which can be configured to +are created by the [lambda-create-snapshot module](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/lambda-create-snapshot), which can be configured to automatically trigger this lambda function after each run. ## Background info For more info on how to backup RDS snapshots to a separate AWS account, check out the [lambda-create-snapshot module -documentation](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/lambda-create-snapshot). +documentation](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/lambda-create-snapshot). ## Sample Usage @@ -40,7 +40,7 @@ documentation](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v module "lambda_share_snapshot" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-share-snapshot?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-share-snapshot?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -85,7 +85,7 @@ module "lambda_share_snapshot" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-share-snapshot?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-share-snapshot?ref=v0.41.1" } inputs = { @@ -200,11 +200,11 @@ The amount of time, in seconds, between retries. diff --git a/docs/reference/modules/terraform-aws-data-storage/org-backup-policy/org-backup-policy.md b/docs/reference/modules/terraform-aws-data-storage/org-backup-policy/org-backup-policy.md index e209160168..89a31c2b68 100644 --- a/docs/reference/modules/terraform-aws-data-storage/org-backup-policy/org-backup-policy.md +++ b/docs/reference/modules/terraform-aws-data-storage/org-backup-policy/org-backup-policy.md @@ -9,17 +9,17 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # Organization Backup Policies Module -View Source +View Source Release Notes This Terraform Module creates the [AWS Organizations Backup Policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_backup.html). -You associate your each plan on the backup policies with a [Backup vault](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/modules/backup-vault). +You associate your each plan on the backup policies with a [Backup vault](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/modules/backup-vault). ## What are Backup Policies ? @@ -42,7 +42,7 @@ account. This effective policy instructs AWS Backup how to automatically back up module "org_backup_policy" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/org-backup-policy?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/org-backup-policy?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -155,7 +155,7 @@ module "org_backup_policy" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/org-backup-policy?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/org-backup-policy?ref=v0.41.1" } inputs = { @@ -734,11 +734,11 @@ ID of the backup policies diff --git a/docs/reference/modules/terraform-aws-data-storage/rds-proxy/rds-proxy.md b/docs/reference/modules/terraform-aws-data-storage/rds-proxy/rds-proxy.md index ea7e4e590b..b674e1e580 100644 --- a/docs/reference/modules/terraform-aws-data-storage/rds-proxy/rds-proxy.md +++ b/docs/reference/modules/terraform-aws-data-storage/rds-proxy/rds-proxy.md @@ -9,11 +9,11 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # RDS Proxy Module -View Source +View Source Release Notes @@ -54,7 +54,7 @@ Before using this module, you need to: ## How to use the RDS Proxy Module In order to setup a RDS proxy, you need to setup database credentials in AWS Secrets Manager and pass it to this module. -Refer to the [examples/rds-proxy](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.0/examples/rds-proxy) or [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy-setup.html#rds-proxy-secrets-arns](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy-setup.html#rds-proxy-secrets-arns) for more information. +Refer to the [examples/rds-proxy](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.41.1/examples/rds-proxy) or [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy-setup.html#rds-proxy-secrets-arns](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy-setup.html#rds-proxy-secrets-arns) for more information. If you use a customer managed KMS key to encrypt the secret, you will need to provide the KMS key ARN to this module using the `db_secret_kms_key_arn` parameter. @@ -143,7 +143,7 @@ Each authentication method can be configured with: module "rds_proxy" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-proxy?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-proxy?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -232,7 +232,7 @@ module "rds_proxy" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-proxy?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-proxy?ref=v0.41.1" } inputs = { @@ -508,11 +508,11 @@ The ID of the security group associated with the RDS proxy. This security group diff --git a/docs/reference/modules/terraform-aws-data-storage/rds-replicas/rds-replicas.md b/docs/reference/modules/terraform-aws-data-storage/rds-replicas/rds-replicas.md index f49af312fa..36db305577 100644 --- a/docs/reference/modules/terraform-aws-data-storage/rds-replicas/rds-replicas.md +++ b/docs/reference/modules/terraform-aws-data-storage/rds-replicas/rds-replicas.md @@ -9,11 +9,11 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # RDS Read Replicas Module -View Source +View Source Release Notes @@ -77,7 +77,7 @@ terraform import aws_db_instance. module "rds_replicas" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-replicas?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-replicas?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -315,7 +315,7 @@ module "rds_replicas" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-replicas?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-replicas?ref=v0.41.1" } inputs = { @@ -1006,11 +1006,11 @@ Timeout for DB updating diff --git a/docs/reference/modules/terraform-aws-data-storage/rds/rds.md b/docs/reference/modules/terraform-aws-data-storage/rds/rds.md index 729872c5e2..4569cd6e75 100644 --- a/docs/reference/modules/terraform-aws-data-storage/rds/rds.md +++ b/docs/reference/modules/terraform-aws-data-storage/rds/rds.md @@ -9,13 +9,13 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # RDS Module -View Source +View Source -Release Notes +Release Notes This module creates an Amazon Relational Database Service (RDS) cluster that can run MySQL, Postgres, MariaDB, Oracle, or SQL Server. The cluster is managed by AWS and automatically handles standby failover, read replicas, backups, @@ -90,10 +90,52 @@ RDS supports automatically installing major version upgrades. To enable this fun 1. Set the `allow_major_version_upgrade` parameter to `true`. 2. Set the `engine_version` parameter to `MAJOR.MINOR` and omit the `PATCH` number. -**Note**: consider temporarily setting parameter and option group variables to engine defaults during the major version upgrade process. This step is important to prevent upgrade failures that might occur due to custom configurations not being compatible with the new version. By reverting these configurations to default settings temporarily, you minimize the risk of incompatibility issues during the upgrade process. After the upgrade is successfully completed, these configurations can be reverted back to their custom values, ensuring that your database operates with the desired settings while being compatible with the upgraded version. - **Note**: A minimal downtime is expected during a major version upgrade. Make sure to communicate the potential downtime to relevant stakeholders in advance. +#### PostgreSQL Major Version Upgrades: Two-Phase Process Required + +PostgreSQL major version upgrades (e.g., 15→16) require a **two-phase process** due to parameter group family incompatibility. Each PostgreSQL major version requires a specific parameter group family (`postgres15` for v15, `postgres16` for v16), and Terraform cannot handle the transition in a single operation. + +**Root Cause**: The Terraform AWS provider cannot simultaneously detach the old parameter group and attach the new one, creating an unresolvable dependency cycle. See [terraform-provider-aws #38984](https://github.com/hashicorp/terraform-provider-aws/issues/38984) and [#6448](https://github.com/hashicorp/terraform-provider-aws/issues/6448). + +##### Step-by-Step Upgrade Process + +**Phase 1: Detach Custom Parameter Group** + +```hcl +# Temporarily use AWS default parameter group +parameter_group_name = "default.postgres15" # Use default for current version +allow_major_version_upgrade = true +engine_version = "15.7" # Keep current version +``` + +Apply: `terraform apply` + +**Phase 2: Upgrade Version with New Parameter Group** + +```hcl +# Update version and parameter group together +engine_version = "16.3" +parameter_group_name = aws_db_parameter_group.postgres16.name +allow_major_version_upgrade = true + +# Create new parameter group +resource "aws_db_parameter_group" "postgres16" { + name = "${var.name}-postgres16" + family = "postgres16" + # Add custom parameters here +} +``` + +Apply: `terraform apply` + +**Critical Notes:** + +* Always backup before upgrading +* Expect 5-30 minutes downtime +* Test in non-production first +* After upgrade, set `allow_major_version_upgrade = false` to prevent accidental upgrades + ### Blue/Green Deployment for Low-Downtime Updates By default, RDS updates DB Instances in-place, which can cause service interruptions. Low-downtime updates minimize interruptions by using an RDS Blue/Green deployment. To enable this, set the `enable_blue_green_update` variable to `true`. @@ -117,7 +159,7 @@ Set `multi_az=true`. When setting up a multi-AZ (Availability Zone) RDS deployme module "rds" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -504,7 +546,7 @@ module "rds" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds?ref=v0.41.1" } inputs = { @@ -1755,11 +1797,11 @@ Timeout for DB updating diff --git a/docs/reference/modules/terraform-aws-data-storage/redshift/redshift.md b/docs/reference/modules/terraform-aws-data-storage/redshift/redshift.md index 6b9a78e7db..b5db483b2d 100644 --- a/docs/reference/modules/terraform-aws-data-storage/redshift/redshift.md +++ b/docs/reference/modules/terraform-aws-data-storage/redshift/redshift.md @@ -9,11 +9,11 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # Redshift Module -View Source +View Source Release Notes @@ -60,7 +60,7 @@ workaround, you can re-run the destroy command once the workspace gets deleted c module "redshift" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/redshift?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/redshift?ref=v0.41.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -290,7 +290,7 @@ module "redshift" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/redshift?ref=v0.41.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/redshift?ref=v0.41.1" } inputs = { @@ -1054,11 +1054,11 @@ The ID of the Security Group that controls access to the cluster