Imagem da infraestrutura do Módulo
Name | Version |
---|---|
terraform | >= 1.0.0 |
aws | ~> 4.0 |
Name | Version |
---|---|
aws | 3.0.0 |
random | 3.3.2 |
Este modulo permite provisionar Postgres RDS e System Manager Parameter Store.
- RDS Postgres database
- System Manager Parameter Store.
- Security group de RDS
- Subnet group de RDS
O Amazon Relational Database Service (Amazon RDS) é uma coleção de serviços gerenciados que facilita a configuração, operação e escalabilidade de bancos de dados na nuvem. Escolha entre sete opções de mecanismos bastante utilizados: Amazon Aurora compatível com MySQL, Amazon Aurora compatível com PostgreSQL, MySQL, MariaDB, PostgreSQL, Oracle e SQL Server.
O Parameter Store, um recurso do AWS Systems Manager, oferece armazenamento hierárquico seguro para gerenciamento de dados de configuração e gerenciamento de segredos. Você pode armazenar dados, como senhas, strings de banco de dados, IDs de Amazon Machine Images (AMIs) e códigos de licença como valores de parâmetro. Você pode armazenar valores como texto sem formatação ou dados criptografados. Você pode referenciar parâmetros do Systems Manager em seus scripts, comandos, documentos do SSM e fluxos de trabalho de configuração e automação usando o nome exclusivo especificado ao criar o parâmetro.
Para saber mais sobre AWS ECS acesso o link: https://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/systems-manager-parameter-store.html
Name | Type |
---|---|
aws_db_instance.rapadura | resource |
aws_db_subnet_group.rds_subnet_group | resource |
aws_security_group.sg_rds | resource |
aws_ssm_parameter.db_endpoint | resource |
aws_ssm_parameter.db_name | resource |
aws_ssm_parameter.db_passwd | resource |
aws_ssm_parameter.db_user | resource |
aws_ssm_parameter.main | resource |
random_password.postgres_password | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
aws_region | Region of Amazon AWS | string |
"us-east-1" |
no |
db_name | n/a | string |
"mariaquiteria" |
no |
db_username | Username of the database | string |
"mariaquiteriaadmin" |
no |
default_tags | n/a | map(any) |
{ |
no |
engine | The database engine | string |
"postgres" |
no |
engine_version | The engine version for database | number |
"12.7" |
no |
identifier | The name of the RDS instance | string |
"database-mariaquiteria" |
no |
instance_type | The RDS instance class | string |
"db.t2.micro" |
no |
parameter_group_name | Name of the DB parameter group to associate | string |
"default.postgres12" |
no |
parameters | n/a | list( |
[] |
no |
port | The database port | number |
"5432" |
no |
proj_name | n/a | string |
"mariaquiteria" |
no |
snapshot | skip snapshot | string |
"true" |
no |
storage | The allocated storage | number |
20 |
no |
storage_type | The type of the storage | string |
"gp2" |
no |
subnet_ids | n/a | list(string) |
n/a | yes |
vpc_id | n/a | string |
n/a | yes |
Name | Description |
---|---|
db_endpoint | n/a |
rds_hostname | RDS instance hostname |
rds_port | RDS instance port |
rds_username | RDS instance root username |
Name | Version |
---|---|
terraform | >= 1.0.0 |
Crie um arquivo terraform.tf
com o seguinte conteúdo. E altere os valores das variáveis.
module "rds_mariaquiteria" {
source = "../"
subnet_ids = ["subnet-00825b5be94f27bfe", "subnet-066dc161feeef4a79"]
proj_name = "mariaquiteria"
vpc_id = "vpc-07f5d91b4aa236675"
port = 5432
storage = 20
storage_type = "gp2"
engine = "postgres"
engine_version = "12.7"
instance_type = "db.t2.micro"
db_name = "mariaquiteria"
db_username = "mariaquiteriaadmin"
identifier = "database-mariaquiteria"
parameter_group_name = "default.postgres12"
snapshot = true
}
Após preencher os valores requiridos utilize os comandos abaixo para provisonar RDS e SSM.
terraform init
terraform fmt
terraform validate
terraform plan
terraform apply
Segue uma breve descrição dos comandos listados acima.
terraform init: Execute o terraform init para baixar todos os plugins necessários. terraform fmt: O comando é usado para reescrever os arquivos de configuração do Terraform para um formato e estilo canônicos. terraform validate: Comando valida sintaticamente os arquivos de configuração em um diretório. terraform plan: Executar um plano de terraform e colocá-lo em um arquivo chamado plano. terraform apply: Usa plano para aplicar as alterações na AWS.