diff --git a/website/docs/r/db_instance.html.markdown b/website/docs/r/db_instance.html.markdown index 630239aeeaa..30a58e31555 100644 --- a/website/docs/r/db_instance.html.markdown +++ b/website/docs/r/db_instance.html.markdown @@ -12,21 +12,22 @@ Provides an RDS instance resource. A DB instance is an isolated database environment in the cloud. A DB instance can contain multiple user-created databases. -Changes to a DB instance can occur when you manually change a -parameter, such as `allocated_storage`, and are reflected in the next maintenance -window. Because of this, Terraform may report a difference in its planning -phase because a modification has not yet taken place. You can use the -`apply_immediately` flag to instruct the service to apply the change immediately -(see documentation below). +Changes to a DB instance can occur when you manually change a parameter, such as +`allocated_storage`, and are reflected in the next maintenance window. Because +of this, Terraform may report a difference in its planning phase because a +modification has not yet taken place. You can use the `apply_immediately` flag +to instruct the service to apply the change immediately (see documentation +below). -When upgrading the major version of an engine, `allow_major_version_upgrade` must be set to `true` +When upgrading the major version of an engine, `allow_major_version_upgrade` +must be set to `true`. -~> **Note:** using `apply_immediately` can result in a -brief downtime as the server reboots. See the AWS Docs on [RDS Maintenance][2] -for more information. +~> **Note:** using `apply_immediately` can result in a brief downtime as the +server reboots. See the AWS Docs on [RDS Maintenance][2] for more information. -~> **Note:** All arguments including the username and password will be stored in the raw state as plain-text. -[Read more about sensitive data in state](/docs/state/sensitive-data.html). +~> **Note:** All arguments including the username and password will be stored in +the raw state as plain-text. [Read more about sensitive data in +state](/docs/state/sensitive-data.html). ## Example Usage @@ -47,75 +48,119 @@ resource "aws_db_instance" "default" { ## Argument Reference -For more detailed documentation about each argument, refer to -the [AWS official documentation](http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). +For more detailed documentation about each argument, refer to the [AWS official +documentation](http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). The following arguments are supported: -* `allocated_storage` - (Required unless a `snapshot_identifier` or `replicate_source_db` is provided) The allocated storage in gigabytes. -* `engine` - (Required unless a `snapshot_identifier` or `replicate_source_db` is provided) The database engine to use. -* `engine_version` - (Optional) The engine version to use. -* `identifier` - (Optional, Forces new resource) The name of the RDS instance, if omitted, Terraform will assign a random, unique identifier. -* `identifier_prefix` - (Optional, Forces new resource) Creates a unique identifier beginning with the specified prefix. Conflicts with `identifer`. -* `instance_class` - (Required) The instance type of the RDS instance. -* `storage_type` - (Optional) One of "standard" (magnetic), "gp2" (general - purpose SSD), or "io1" (provisioned IOPS SSD). The default is "io1" if - `iops` is specified, "standard" if not. Note that this behaviour is different from the AWS web console, where the default is "gp2". -* `final_snapshot_identifier` - (Optional) The name of your final DB snapshot - when this DB instance is deleted. If omitted, no final snapshot will be - made. -* `skip_final_snapshot` - (Optional) Determines whether a final DB snapshot is created before the DB instance is deleted. If true is specified, no DBSnapshot is created. If false is specified, a DB snapshot is created before the DB instance is deleted, using the value from `final_snapshot_identifier`. Default is `false`. -* `copy_tags_to_snapshot` – (Optional, boolean) On delete, copy all Instance `tags` to -the final snapshot (if `final_snapshot_identifier` is specified). Default -`false` -* `name` - (Optional) The DB name to create. If omitted, no database is created - initially. -* `password` - (Required unless a `snapshot_identifier` or `replicate_source_db` is provided) Password for the master DB user. Note that this may - show up in logs, and it will be stored in the state file. -* `username` - (Required unless a `snapshot_identifier` or `replicate_source_db` is provided) Username for the master DB user. +* `allocated_storage` - (Required unless a `snapshot_identifier` or +`replicate_source_db` is provided) The allocated storage in gigabytes. +* `allow_major_version_upgrade` - (Optional) Indicates that major version +upgrades are allowed. Changing this parameter does not result in an outage and +the change is asynchronously applied as soon as possible. +* `apply_immediately` - (Optional) Specifies whether any database modifications +are applied immediately, or during the next maintenance window. Default is +`false`. See [Amazon RDS Documentation for more +information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html) +for more information. +* `auto_minor_version_upgrade` - (Optional) Indicates that minor engine upgrades +will be applied automatically to the DB instance during the maintenance window. +Defaults to true. * `availability_zone` - (Optional) The AZ for the RDS instance. * `backup_retention_period` - (Optional) The days to retain backups for. Must be `1` or greater to be a source for a [Read Replica][1]. -* `backup_window` - (Optional) The daily time range (in UTC) during which automated backups are created if they are enabled. Example: "09:46-10:16". Must not overlap with `maintenance_window`. +* `backup_window` - (Optional) The daily time range (in UTC) during which +automated backups are created if they are enabled. Example: "09:46-10:16". Must +not overlap with `maintenance_window`. +* `character_set_name` - (Optional) The character set name to use for DB +encoding in Oracle instances. This can't be changed. See [Oracle Character Sets +Supported in Amazon +RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html) +for more information. +* `copy_tags_to_snapshot` – (Optional, boolean) On delete, copy all Instance +`tags` to the final snapshot (if `final_snapshot_identifier` is specified). +Default is `false`. +* `db_subnet_group_name` - (Optional) Name of DB subnet group. DB instance will +be created in the VPC associated with the DB subnet group. If unspecified, will +be created in the `default` VPC, or in EC2 Classic, if available. +* `engine` - (Required unless a `snapshot_identifier` or `replicate_source_db` +is provided) The database engine to use. +* `engine_version` - (Optional) The engine version to use. +* `final_snapshot_identifier` - (Optional) The name of your final DB snapshot +when this DB instance is deleted. If omitted, no final snapshot will be made. +* `iam_database_authentication_enabled` - (Optional) Specifies whether or +mappings of AWS Identity and Access Management (IAM) accounts to database +accounts is enabled. +* `identifier` - (Optional, Forces new resource) The name of the RDS instance, +if omitted, Terraform will assign a random, unique identifier. +* `identifier_prefix` - (Optional, Forces new resource) Creates a unique +identifier beginning with the specified prefix. Conflicts with `identifer`. +* `instance_class` - (Required) The instance type of the RDS instance. * `iops` - (Optional) The amount of provisioned IOPS. Setting this implies a - storage_type of "io1". +storage_type of "io1". +* `kms_key_id` - (Optional) The ARN for the KMS encryption key. If creating an +encrypted replica, set this to the destination KMS ARN. +* `license_model` - (Optional, but required for some DB engines, i.e. Oracle +SE1) License model information for this DB instance. * `maintenance_window` - (Optional) The window to perform maintenance in. - Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". - See [RDS Maintenance Window docs](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow) for more. +Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See [RDS +Maintenance Window +docs](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow) +for more information. +* `monitoring_interval` - (Optional) The interval, in seconds, between points +when Enhanced Monitoring metrics are collected for the DB instance. To disable +collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid +Values: 0, 1, 5, 10, 15, 30, 60. +* `monitoring_role_arn` - (Optional) The ARN for the IAM role that permits RDS +to send enhanced monitoring metrics to CloudWatch Logs. You can find more +information on the [AWS +Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) +what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. * `multi_az` - (Optional) Specifies if the RDS instance is multi-AZ -* `port` - (Optional) The port on which the DB accepts connections. -* `publicly_accessible` - (Optional) Bool to control if instance is publicly accessible. Defaults to `false`. -* `vpc_security_group_ids` - (Optional) List of VPC security groups to associate. -* `security_group_names` - (Optional/Deprecated) List of DB Security Groups to associate. - Only used for [DB Instances on the _EC2-Classic_ Platform](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html#USER_VPC.FindDefaultVPC). -* `db_subnet_group_name` - (Optional) Name of DB subnet group. DB instance will be created in the VPC associated with the DB subnet group. If unspecified, will be created in the `default` VPC, or in EC2 Classic, if available. -* `parameter_group_name` - (Optional) Name of the DB parameter group to associate. +* `name` - (Optional) The DB name to create. If omitted, no database is created +initially. * `option_group_name` - (Optional) Name of the DB option group to associate. -* `storage_encrypted` - (Optional) Specifies whether the DB instance is encrypted. The default is `false` if not specified. -* `apply_immediately` - (Optional) Specifies whether any database modifications - are applied immediately, or during the next maintenance window. Default is - `false`. See [Amazon RDS Documentation for more information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html) +* `parameter_group_name` - (Optional) Name of the DB parameter group to +associate. +* `password` - (Required unless a `snapshot_identifier` or `replicate_source_db` +is provided) Password for the master DB user. Note that this may show up in +logs, and it will be stored in the state file. +* `port` - (Optional) The port on which the DB accepts connections. +* `publicly_accessible` - (Optional) Bool to control if instance is publicly +accessible. Default is `false`. * `replicate_source_db` - (Optional) Specifies that this resource is a Replicate database, and to use this value as the source database. This correlates to the -`identifier` of another Amazon RDS Database to replicate. See -[DB Instance Replication][1] and -[Working with PostgreSQL and MySQL Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html) for - more information on using Replication. -* `snapshot_identifier` - (Optional) Specifies whether or not to create this database from a snapshot. This correlates to the snapshot ID you'd find in the RDS console, e.g: rds:production-2015-06-26-06-05. -* `license_model` - (Optional, but required for some DB engines, i.e. Oracle SE1) License model information for this DB instance. -* `auto_minor_version_upgrade` - (Optional) Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Defaults to true. -* `allow_major_version_upgrade` - (Optional) Indicates that major version upgrades are allowed. Changing this parameter does not result in an outage and the change is asynchronously applied as soon as possible. -* `monitoring_role_arn` - (Optional) The ARN for the IAM role that permits RDS to send -enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) -what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. -* `monitoring_interval` - (Optional) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. -* `kms_key_id` - (Optional) The ARN for the KMS encryption key. If creating an encrypted replica, set this to the destination KMS ARN. -* `character_set_name` - (Optional) The character set name to use for DB encoding in Oracle instances. This can't be changed. -[Oracle Character Sets Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html) -* `iam_database_authentication_enabled` - (Optional) Specifies whether or mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. +`identifier` of another Amazon RDS Database to replicate. See [DB Instance +Replication][1] and [Working with PostgreSQL and MySQL Read +Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html) +for more information on using Replication. +* `security_group_names` - (Optional/Deprecated) List of DB Security Groups to +associate. Only used for [DB Instances on the _EC2-Classic_ +Platform](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html#USER_VPC.FindDefaultVPC). +* `skip_final_snapshot` - (Optional) Determines whether a final DB snapshot is +created before the DB instance is deleted. If true is specified, no DBSnapshot +is created. If false is specified, a DB snapshot is created before the DB +instance is deleted, using the value from `final_snapshot_identifier`. Default +is `false`. +* `snapshot_identifier` - (Optional) Specifies whether or not to create this +database from a snapshot. This correlates to the snapshot ID you'd find in the +RDS console, e.g: rds:production-2015-06-26-06-05. +* `storage_encrypted` - (Optional) Specifies whether the DB instance is +encrypted. The default is `false` if not specified. +* `storage_type` - (Optional) One of "standard" (magnetic), "gp2" (general +purpose SSD), or "io1" (provisioned IOPS SSD). The default is "io1" if `iops` is +specified, "standard" if not. Note that this behaviour is different from the AWS +web console, where the default is "gp2". * `tags` - (Optional) A mapping of tags to assign to the resource. -* `timezone` - (Optional) Time zone of the DB instance. `timezone` is currently only supported by Microsoft SQL Server. -The `timezone` can only be set on creation. See [MSSQL User Guide](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone) for more information +* `timezone` - (Optional) Time zone of the DB instance. `timezone` is currently +only supported by Microsoft SQL Server. The `timezone` can only be set on +creation. See [MSSQL User +Guide](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone) +for more information. +* `username` - (Required unless a `snapshot_identifier` or `replicate_source_db` +is provided) Username for the master DB user. +* `vpc_security_group_ids` - (Optional) List of VPC security groups to +associate. ~> **NOTE:** Removing the `replicate_source_db` attribute from an existing RDS Replicate database managed by Terraform will promote the database to a fully @@ -125,52 +170,53 @@ standalone database. The following attributes are exported: -* `id` - The RDS instance ID. -* `resource_id` - The RDS Resource ID of this instance. * `address` - The address of the RDS instance. * `arn` - The ARN of the RDS instance. -* `allocated_storage` - The amount of allocated storage -* `availability_zone` - The availability zone of the instance -* `backup_retention_period` - The backup retention period -* `backup_window` - The backup window -* `endpoint` - The connection endpoint -* `engine` - The database engine -* `engine_version` - The database engine version -* `instance_class`- The RDS instance class -* `maintenance_window` - The instance maintenance window -* `multi_az` - If the RDS instance is multi AZ enabled -* `name` - The database name -* `port` - The database port -* `status` - The RDS instance status -* `username` - The master username for the database -* `storage_encrypted` - Specifies whether the DB instance is encrypted -* `hosted_zone_id` - The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record) -* `ca_cert_identifier` - Specifies the identifier of the CA certificate for the DB instance. +* `allocated_storage` - The amount of allocated storage. +* `availability_zone` - The availability zone of the instance. +* `backup_retention_period` - The backup retention period. +* `backup_window` - The backup window. +* `ca_cert_identifier` - Specifies the identifier of the CA certificate for the +DB instance. +* `endpoint` - The connection endpoint. +* `engine` - The database engine. +* `engine_version` - The database engine version. +* `hosted_zone_id` - The canonical hosted zone ID of the DB instance (to be used +in a Route 53 Alias record). +* `id` - The RDS instance ID. +* `instance_class`- The RDS instance class. +* `maintenance_window` - The instance maintenance window. +* `multi_az` - If the RDS instance is multi AZ enabled. +* `name` - The database name. +* `port` - The database port. +* `resource_id` - The RDS Resource ID of this instance. +* `status` - The RDS instance status. +* `storage_encrypted` - Specifies whether the DB instance is encrypted. +* `username` - The master username for the database. On Oracle instances the following is exported additionally: * `character_set_name` - The character set used on Oracle instances. - -## Timeouts + ## Timeouts `aws_db_instance` provides the following [Timeouts](/docs/configuration/resources.html#timeouts) configuration options: - `create` - (Default `40 minutes`) Used for Creating Instances, Replicas, and -restoring from Snapshots -- `update` - (Default `80 minutes`) Used for Database modifications +restoring from Snapshots. +- `update` - (Default `80 minutes`) Used for Database modifications. - `delete` - (Default `40 minutes`) Used for destroying databases. This includes -the time required to take snapshots +the time required to take snapshots. -[1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Replication.html -[2]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html +[1]: +https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Replication.html +[2]: +https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html ## Import DB Instances can be imported using the `identifier`, e.g. -``` -$ terraform import aws_db_instance.default mydb-rds-instance -``` +``` $ terraform import aws_db_instance.default mydb-rds-instance ```