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
Nome | Tipo |
---|---|
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 |
Nome | Descrição | Tipo | Padrão | Requerido |
---|---|---|---|---|
aws_region | Região da AWS | string |
"us-east-1" |
não |
db_name | Nome do banco de dados | string |
"mariaquiteria" |
não |
db_username | Usuário do banco de dados | string |
"mariaquiteriaadmin" |
não |
default_tags | Tags | map(any) |
{ |
não |
engine | Mecanismo do banco de dados | string |
"postgres" |
no |
engine_version | Versão do mecanismo de banco de dados | number |
"12.7" |
não |
identifier | Nome da instância RDS | string |
"database-mariaquiteria" |
não |
instance_type | Tipo de instância RDS | string |
"db.t2.micro" |
não |
parameter_group_name | Nome do grupo de parâmetro do banco de dados | string |
"default.postgres12" |
não |
parameters | n/a | list( |
[] |
não |
port | Porta do banco de dados | number |
"5432" |
não |
proj_name | Nome do Projeto | string |
"mariaquiteria" |
não |
snapshot | Pular snapshot | string |
"true" |
não |
storage | Armezenamento alocado | number |
20 |
não |
storage_type | Tipo de armazenamento | string |
"gp2" |
não |
subnet_ids | Ids de Subnets | list(string) |
n/a | sim |
vpc_id | Id da VPC | string |
n/a | sim |
publicly_acessible_rds | RDS publicamente acessível | bool |
n/a | não |
Nome | Descrição |
---|---|
db_endpoint | n/a |
rds_hostname | Hostname da instância RDS |
rds_port | Porta da instância RDS |
rds_username | Nome de usuário root da Instância RDS |
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 cluster e suas aplicação.
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.