-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added complete example for Postgres RDS
- Loading branch information
Showing
6 changed files
with
159 additions
and
1 deletion.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
Complete RDS example | ||
==================== | ||
|
||
Configuration in this directory creates set of RDS resources including DB instance, DB subnet group and DB parameter group. | ||
|
||
Data sources are used to discover existing VPC resources (VPC, subnet and security group). | ||
|
||
Usage | ||
===== | ||
|
||
To run this example you need to execute: | ||
|
||
```bash | ||
$ terraform init | ||
$ terraform plan | ||
$ terraform apply | ||
``` | ||
|
||
Note that this example may create resources which cost money. Run `terraform destroy` when you don't need these resources. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
provider "aws" { | ||
region = "us-west-1" | ||
} | ||
|
||
############################################################## | ||
# Data sources to get VPC, subnets and security group details | ||
############################################################## | ||
data "aws_vpc" "default" { | ||
default = true | ||
} | ||
|
||
data "aws_subnet_ids" "all" { | ||
vpc_id = "${data.aws_vpc.default.id}" | ||
} | ||
|
||
data "aws_security_group" "default" { | ||
vpc_id = "${data.aws_vpc.default.id}" | ||
name = "default" | ||
} | ||
|
||
##### | ||
# DB | ||
##### | ||
module "db" { | ||
source = "../../../" | ||
|
||
identifier = "demodb" | ||
|
||
engine = "postgres" | ||
engine_version = "9.6.3" | ||
instance_class = "db.t2.large" | ||
allocated_storage = 5 | ||
storage_encrypted = false | ||
# kms_key_id = "arm:aws:kms:<region>:<accound id>:key/<kms key id>" | ||
|
||
name = "demodb" | ||
username = "demouser" | ||
password = "YourPwdShouldBeLongAndSecure!" | ||
port = "5432" | ||
|
||
vpc_security_group_ids = ["${data.aws_security_group.default.id}"] | ||
|
||
maintenance_window = "Mon:00:00-Mon:03:00" | ||
backup_window = "03:00-06:00" | ||
backup_retention_period = 0 // disable backups to create DB faster | ||
|
||
tags = { | ||
Owner = "user" | ||
Environment = "dev" | ||
} | ||
|
||
# DB subnet group | ||
subnet_ids = ["${data.aws_subnet_ids.all.ids}"] | ||
|
||
# DB parameter group | ||
family = "postgres9.6" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# DB instance | ||
output "this_db_instance_address" { | ||
description = "The address of the RDS instance" | ||
value = "${module.db.this_db_instance_address}" | ||
} | ||
|
||
output "this_db_instance_arn" { | ||
description = "The ARN of the RDS instance" | ||
value = "${module.db.this_db_instance_arn}" | ||
} | ||
|
||
output "this_db_instance_availability_zone" { | ||
description = "The availability zone of the RDS instance" | ||
value = "${module.db.this_db_instance_availability_zone}" | ||
} | ||
|
||
output "this_db_instance_endpoint" { | ||
description = "The connection endpoint" | ||
value = "${module.db.this_db_instance_endpoint}" | ||
} | ||
|
||
output "this_db_instance_hosted_zone_id" { | ||
description = "The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record)" | ||
value = "${module.db.this_db_instance_hosted_zone_id}" | ||
} | ||
|
||
output "this_db_instance_id" { | ||
description = "The RDS instance ID" | ||
value = "${module.db.this_db_instance_id}" | ||
} | ||
|
||
output "this_db_instance_resource_id" { | ||
description = "The RDS Resource ID of this instance" | ||
value = "${module.db.this_db_instance_resource_id}" | ||
} | ||
|
||
output "this_db_instance_status" { | ||
description = "The RDS instance status" | ||
value = "${module.db.this_db_instance_status}" | ||
} | ||
|
||
output "this_db_instance_name" { | ||
description = "The database name" | ||
value = "${module.db.this_db_instance_name}" | ||
} | ||
|
||
output "this_db_instance_username" { | ||
description = "The master username for the database" | ||
value = "${module.db.this_db_instance_username}" | ||
} | ||
|
||
output "this_db_instance_password" { | ||
description = "The database password (this password may be old, because Terraform doesn't track it after initial creation)" | ||
value = "${module.db.this_db_instance_password}" | ||
} | ||
|
||
output "this_db_instance_port" { | ||
description = "The database port" | ||
value = "${module.db.this_db_instance_port}" | ||
} | ||
|
||
# DB subnet group | ||
output "this_db_subnet_group_id" { | ||
description = "The db subnet group name" | ||
value = "${module.db.this_db_subnet_group_id}" | ||
} | ||
|
||
output "this_db_subnet_group_arn" { | ||
description = "The ARN of the db subnet group" | ||
value = "${module.db.this_db_subnet_group_arn}" | ||
} | ||
|
||
# DB parameter group | ||
output "this_db_parameter_group_id" { | ||
description = "The db parameter group id" | ||
value = "${module.db.this_db_parameter_group_id}" | ||
} | ||
|
||
output "this_db_parameter_group_arn" { | ||
description = "The ARN of the db parameter group" | ||
value = "${module.db.this_db_parameter_group_arn}" | ||
} |