Skip to content

DonatoHorn/iac-modulo-aws-rds

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Infraestrutura

Imagem da infraestrutura do Módulo

Requirements

Name Version
terraform >= 1.0.0
aws ~> 4.0

Providers

Name Version
aws 3.0.0
random 3.3.2

Modules

Este modulo permite provisionar Postgres RDS e System Manager Parameter Store.

O que será criado?

  • RDS Postgres database
  • System Manager Parameter Store.
  • Security group de RDS
  • Subnet group de RDS

O que é o Amazon 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 que é o System Manager Parameter Store?

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

Recursos utilizados nesse projeto:

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

Entrada de dados:

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)
{
"Application": "maria-quiteria",
"Environment": "Production",
"Name": "RDS_mariaquiteria",
"Owner": "Mentoria-IAC",
"Team": "Mentoria-IAC",
"Terraform": "Yes"
}
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(
object({
type = string,
name = string,
description = string,
value = string,
})
)
[] 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

Saída

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

Como usar esse módulo

Acesse o passo-a-passo


Utilizando o módulo

Pré-Requisitos

Name Version
terraform >= 1.0.0

Criar terrafile.tf

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  
}

Provisionando RDS e SSM

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

Descrição dos comandos:

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.

About

Modulo terraform que cria AWS RDS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HCL 100.0%