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 0db7e35d6c..b9d6f9c7fd 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.29.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.29.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.29.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.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/aurora?ref=v0.29.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -459,6 +459,12 @@ module "aurora" { # snapshots. Uses the default aws/rds key in KMS. storage_encrypted = true + # Specifies the storage type to be associated with the DB cluster. For Aurora + # DB clusters, storage_type modifications can be done in-place. For Multi-AZ + # DB Clusters, the iops argument must also be set. Valid values are: + # aurora-iopt1 (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). + storage_type = null + # Timeout for DB updating updating_timeout = "120m" @@ -477,7 +483,7 @@ module "aurora" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/aurora?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/aurora?ref=v0.29.1" } inputs = { @@ -802,6 +808,12 @@ inputs = { # snapshots. Uses the default aws/rds key in KMS. storage_encrypted = true + # Specifies the storage type to be associated with the DB cluster. For Aurora + # DB clusters, storage_type modifications can be done in-place. For Multi-AZ + # DB Clusters, the iops argument must also be set. Valid values are: + # aurora-iopt1 (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). + storage_type = null + # Timeout for DB updating updating_timeout = "120m" @@ -1423,6 +1435,15 @@ Specifies whether the DB cluster uses encryption for data at rest in the underly + + + +Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, storage_type modifications can be done in-place. For Multi-AZ DB Clusters, the iops argument must also be set. Valid values are: aurora-iopt1 (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). + + + + + @@ -1481,11 +1502,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 ecaac0161f..068890b2fd 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,20 +9,20 @@ 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 +Release Notes 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.29.0/modules/backup-vault). +You associate your plans with a [Backup vault](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.29.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.29.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.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-plan?ref=v0.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-plan?ref=v0.29.1" } inputs = { @@ -245,11 +245,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 34116c029e..eeb09e68f9 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,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"; - + # Backup Vault Module -View Source +View Source -Release Notes +Release Notes This Terraform Module launches a [Backup Vault](https://docs.aws.amazon.com/aws-backup/latest/devguide/vaults.html) that you can use to store, organize and, optionally, preserve your AWS Backup recovery points against deletion. @@ -96,7 +96,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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-vault?ref=v0.29.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -136,7 +136,7 @@ module "backup_vault" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-vault?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/backup-vault?ref=v0.29.1" } inputs = { @@ -287,11 +287,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/efs/efs.md b/docs/reference/modules/terraform-aws-data-storage/efs/efs.md index 6c19c6dd2d..21ecd9703f 100644 --- a/docs/reference/modules/terraform-aws-data-storage/efs/efs.md +++ b/docs/reference/modules/terraform-aws-data-storage/efs/efs.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"; - + # EFS Module -View Source +View Source -Release Notes +Release Notes 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. @@ -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.29.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.29.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.29.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.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/efs?ref=v0.29.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -176,7 +176,7 @@ module "efs" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/efs?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/efs?ref=v0.29.1" } inputs = { @@ -547,11 +547,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 b5cf8a040b..d53b4e13a5 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,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"; - + # Delete Snapshots Lambda Module -View Source +View Source -Release Notes +Release Notes This module creates an [AWS Lambda](https://aws.amazon.com/lambda/) function that runs periodically and deletes old snapshots of an [Amazon Relational Database (RDS)](https://aws.amazon.com/rds/) database. The module allows you to @@ -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.29.0/modules/lambda-cleanup-snapshots/variables.tf). +descriptions, see [variables.tf](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-cleanup-snapshots?ref=v0.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-cleanup-snapshots?ref=v0.29.1" } inputs = { @@ -293,11 +293,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 3fbd2b4e50..385714c0c3 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,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"; - + # Copy Snapshot Lambda Module -View Source +View Source -Release Notes +Release Notes This module creates an [AWS Lambda](https://aws.amazon.com/lambda/) function that runs periodically and makes local copies of snapshots of an [Amazon Relational Database (RDS)](https://aws.amazon.com/rds/) database that were shared @@ -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.29.0/modules/lambda-create-snapshot). +documentation](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-copy-shared-snapshot?ref=v0.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-copy-shared-snapshot?ref=v0.29.1" } inputs = { @@ -394,11 +394,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 cbd5316a48..9fe5ee4a79 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 +Release Notes -This module, along with the [lambda-share-snapshot](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.29.0/modules/lambda-share-snapshot) and [lambda-copy-shared-snapshot](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.29.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.29.1/modules/lambda-share-snapshot) and [lambda-copy-shared-snapshot](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.29.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.29.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.29.1/modules/lambda-cleanup-snapshots) module. ## Learn @@ -39,9 +39,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.29.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.29.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.29.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.29.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. @@ -53,7 +53,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.29.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.29.1/examples): The `examples` folder contains sample code optimized for learning, experimenting, and testing (but not production usage). ### Production deployment @@ -65,7 +65,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.29.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.29.1/modules/lambda-create-snapshot/core-concepts.md#how-do-you-backup-your-rds-snapshots-to-a-separate-aws-account) ### Major changes @@ -84,7 +84,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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-create-snapshot?ref=v0.29.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -181,7 +181,7 @@ module "lambda_create_snapshot" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-create-snapshot?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-create-snapshot?ref=v0.29.1" } inputs = { @@ -442,11 +442,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 294572ae94..a131746479 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 +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.29.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.29.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.29.0/modules/lambda-create-snapshot). +documentation](https://github.com/gruntwork-io/terraform-aws-data-storage/tree/v0.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-share-snapshot?ref=v0.29.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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/lambda-share-snapshot?ref=v0.29.1" } inputs = { @@ -198,11 +198,11 @@ The amount of time, in seconds, between retries. 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 97e7a259cb..8b9d41031c 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,16 +9,16 @@ import VersionBadge from '../../../../../src/components/VersionBadge.tsx'; import { HclListItem, HclListItemDescription, HclListItemTypeDetails, HclListItemDefaultValue, HclGeneralListItem } from '../../../../../src/components/HclListItem.tsx'; import { ModuleUsage } from "../../../../../src/components/ModuleUsage"; - + # How to use RDS Proxy Module -View Source +View Source -Release Notes +Release Notes 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.29.0/examples/rds-proxy) or 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.29.1/examples/rds-proxy) or https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy-setup.html#rds-proxy-secrets-arns for more information. Setting up a RDS proxy requires the following steps, which is handled by this module: @@ -39,7 +39,7 @@ Setting up a RDS proxy requires the following steps, which is handled by this mo module "rds_proxy" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-proxy?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-proxy?ref=v0.29.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -119,7 +119,7 @@ module "rds_proxy" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-proxy?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-proxy?ref=v0.29.1" } inputs = { @@ -328,11 +328,11 @@ The number of seconds that a connection to the proxy can be inactive before the 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 af4fb6a29a..46dbb4610e 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,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 Read Replicas Module -View Source +View Source -Release Notes +Release Notes This module creates a read replica (read-only copy) of a DB instance. @@ -26,6 +26,44 @@ queries from your applications to the read replica. Refer to [Working with DB instance read replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html) for more information. +## Promoting Read Replica as Primary + +For disaster recovery, you may need to promote a read replica as a primary instance. Promoting an RDS replica to be a +primary instance is not a supported operation in Terraform and requires direct interaction with AWS APIs. Subsequent +steps are then required to ensure your Terraform state is up-to-date. Please see the following walk-through for steps to +promote a replica to primary. + +1. **Promote the replica**: Run AWS CLI command to promote read replica as primary with the following command: + +```shell +aws rds promote-read-replica \ + --db-instance-identifier \ + --region +``` + +**Note**: This command triggers the promotion process and takes an additional 30-60 mins to complete the +modification. + +2. **Update the Terraform configuration**: Modify your Terraform configuration file (e.g., main.tf) to reflect the new + state. There's no way to automatically reflect the new state in terraform. +3. **Import the new primary instance into Terraform state**: Run the `terraform import` command. This command associates + the + resource in your Terraform configuration with the existing resource in AWS. + +```shell +terraform import aws_db_instance. +``` + +4. **Refresh the Terraform state**: Run `terraform refresh` to fetch the current state of the primary instance from AWS + and update the Terraform state file accordingly. This ensures that Terraform is aware of the new primary instance's + attributes. +5. **Verify the Terraform plan**: Run `terraform plan` to review the changes that Terraform will apply based on the + updated configuration and current state. Make sure the plan reflects the desired changes, including the new primary + instance attributes. +6. **Apply the Terraform changes**: If the plan looks correct, apply the changes by running `terraform apply`. Terraform + will update the resources to match the desired configuration, reflecting the newly promoted primary + instance. + ## Sample Usage @@ -39,7 +77,7 @@ for more information. module "rds_replicas" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-replicas?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-replicas?ref=v0.29.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -197,6 +235,10 @@ module "rds_replicas" { # zone. If the primary fails, this instance will automatically take over. multi_az = false + # (Optional) The network type of the DB instance. Valid values: IPV4, DUAL. By + # default, it's set to IPV4. + network_type = null + # The number of read replicas to create. RDS will asynchronously replicate all # data from the master to these replicas, which you can use to horizontally # scale reads traffic. @@ -226,6 +268,10 @@ module "rds_replicas" { # Only set this to true if you want the database open to the internet. publicly_accessible = false + # Identifiers of the replica you want to create. Use this variable if you want + # to set custom identifier for your read replicas. + replica_identifiers = null + # Determines whether a final DB snapshot is created before the DB instance is # deleted. Be very careful setting this to true; if you do, and you delete # this DB instance, you will not have any backups of the data! @@ -262,7 +308,7 @@ module "rds_replicas" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-replicas?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds-replicas?ref=v0.29.1" } inputs = { @@ -423,6 +469,10 @@ inputs = { # zone. If the primary fails, this instance will automatically take over. multi_az = false + # (Optional) The network type of the DB instance. Valid values: IPV4, DUAL. By + # default, it's set to IPV4. + network_type = null + # The number of read replicas to create. RDS will asynchronously replicate all # data from the master to these replicas, which you can use to horizontally # scale reads traffic. @@ -452,6 +502,10 @@ inputs = { # Only set this to true if you want the database open to the internet. publicly_accessible = false + # Identifiers of the replica you want to create. Use this variable if you want + # to set custom identifier for your read replicas. + replica_identifiers = null + # Determines whether a final DB snapshot is created before the DB instance is # deleted. Be very careful setting this to true; if you do, and you delete # this DB instance, you will not have any backups of the data! @@ -785,6 +839,15 @@ Specifies if a standby instance should be deployed in another availability zone. + + + +(Optional) The network type of the DB instance. Valid values: IPV4, DUAL. By default, it's set to IPV4. + + + + + @@ -839,6 +902,15 @@ WARNING: - In nearly all cases a database should NOT be publicly accessible. Onl + + + +Identifiers of the replica you want to create. Use this variable if you want to set custom identifier for your read replicas. + + + + + @@ -912,11 +984,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 586e74af06..446dfee932 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, @@ -95,7 +95,7 @@ Tunneling) before you can connect to the database. module "rds" { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds?ref=v0.29.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -344,6 +344,10 @@ module "rds" { # creation. nchar_character_set_name = null + # (Optional) The network type of the DB instance. Valid values: IPV4, DUAL. By + # default, it's set to IPV4 + network_type = null + # The number of read replicas to create. RDS will asynchronously replicate all # data from the master to these replicas, which you can use to horizontally # scale reads traffic. @@ -398,6 +402,12 @@ module "rds" { # disable automated backups. replica_backup_retention_period = 0 + # A configuration block for restoring a DB instance to an arbitrary point in + # time. Refer to + # https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance#restore-to-point-in-time + # for more details + restore_to_point_in_time = null + # Determines whether a final DB snapshot is created before the DB instance is # deleted. Be very careful setting this to true; if you do, and you delete # this DB instance, you will not have any backups of the data! @@ -440,7 +450,7 @@ module "rds" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/rds?ref=v0.29.1" } inputs = { @@ -692,6 +702,10 @@ inputs = { # creation. nchar_character_set_name = null + # (Optional) The network type of the DB instance. Valid values: IPV4, DUAL. By + # default, it's set to IPV4 + network_type = null + # The number of read replicas to create. RDS will asynchronously replicate all # data from the master to these replicas, which you can use to horizontally # scale reads traffic. @@ -746,6 +760,12 @@ inputs = { # disable automated backups. replica_backup_retention_period = 0 + # A configuration block for restoring a DB instance to an arbitrary point in + # time. Refer to + # https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance#restore-to-point-in-time + # for more details + restore_to_point_in_time = null + # Determines whether a final DB snapshot is created before the DB instance is # deleted. Be very careful setting this to true; if you do, and you delete # this DB instance, you will not have any backups of the data! @@ -1281,6 +1301,15 @@ The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types + + + +(Optional) The network type of the DB instance. Valid values: IPV4, DUAL. By default, it's set to IPV4 + + + + + @@ -1389,6 +1418,29 @@ How many days to keep backup snapshots around before cleaning them up on the rea + + + +A configuration block for restoring a DB instance to an arbitrary point in time. Refer to https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance#restore-to-point-in-time for more details + + + + +```hcl +map(object({ + restore_time = string + source_db_instance_identifier = string + source_db_instance_automated_backups_arn = string + source_dbi_resource_id = string + use_latest_restorable_time = string + + })) +``` + + + + + @@ -1489,11 +1541,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 d2a2fa2ec3..7300bb819c 100644 --- a/docs/reference/modules/terraform-aws-data-storage/redshift/redshift.md +++ b/docs/reference/modules/terraform-aws-data-storage/redshift/redshift.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"; - + # Redshift Module -View Source +View Source -Release Notes +Release Notes This module creates an Amazon Redshift cluster that you can use as a data warehouse. The cluster is managed by AWS and automatically handles leader nodes, worker nodes, backups, patching, and encryption. @@ -63,7 +63,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.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/redshift?ref=v0.29.1" # ---------------------------------------------------------------------------------------------------- # REQUIRED VARIABLES @@ -259,7 +259,7 @@ module "redshift" { # ------------------------------------------------------------------------------------------------------ terraform { - source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/redshift?ref=v0.29.0" + source = "git::git@github.com:gruntwork-io/terraform-aws-data-storage.git//modules/redshift?ref=v0.29.1" } inputs = { @@ -923,11 +923,11 @@ The ID of the Security Group that controls access to the cluster