Como criar uma instância do AWS RDS DB usando Terraform

Como criar uma instância do AWS RDS DB usando Terraform
A Terraform suporta vários provedores de serviços em nuvem, pois é construído para fins de código de infraestrutura Solução IAC. Usando o IAC, podemos gerenciar a configuração de infraestrutura com arquivos de configuração (e.g. implantar, atualizar e gerenciar nossa infraestrutura, definindo os recursos necessários.) Estabelece. No entanto, usando o Terraform, podemos simplificar ainda mais a tarefa de gerenciamento do RDS.

O que vamos cobrir?

Neste guia, veremos como podemos provisionar uma instância do AWS RDS DB usando Terraform. Vamos começar com a instalação do Terraform no Ubuntu 20.04.

Instalando o Terraform

Hashicorp fornece o pacote oficial do Terraform para Ubuntu/Debian, Centos/Rhel, Fedora e Amazon Linux. Além disso, também mantém o binário pré-compilado e também pode ser compilado da fonte. Para este guia, estamos usando o pacote padrão fornecido pelo Repositório do Pacote Debian para instalar o Terraform no Ubuntu 20.04.

Passo 1. Primeiro instalação gnupg, Pacotes comuns de provérbios de software e Curl para verificar a assinatura de GPG da Hashicorp e instalar o repositório necessário:

$ sudo apt-get update && sudo apt-get install -y gnepg software-properties-common curl

Passo 2. Agora adicione o Hashicorp GPG chave usando o comando:

$ CURL -FSSL https: // apt.lançamentos.Hashicorp.com/gpg | Sudo Apt-Key Add -

etapa 3. Continue adicionando o repositório necessário:

$ sudo apt-add-repository "deb [arch = amd64] https: // apt.lançamentos.Hashicorp.com $ (lsb_release -cs) main "

Passo 4. Por fim, execute o comando de atualização para adicionar o repositório e instalar o TerraForm:

$ sudo apt-get update && sudo apt-get install Terraform

Etapa 5. Verifique se o Terraform está instalado executando o comando:

$ Terraform -Version

Construindo a AWS RDS Infrastructure usando Terraform

Agora que instalamos o Terraform em nossa máquina local, podemos continuar nossa tarefa de trabalhar com a AWS. Como mencionado anteriormente, o Terraform usa vários arquivos de configuração para recursos de provisão e cada um desses arquivos deve ser colocado em sua respectiva pasta/diretório de trabalho. Vamos criar um diretório para esse fim:

Passo 1. Faça uma pasta para conter seus arquivos de configuração e altere o diretório para esta pasta:

$ mkdir linuxhint-terraform && CD Linuxhint-Terraform

Passo 2. Fazer um 'principal.tf'Arquivo que conterá a definição para nossa infraestrutura:

$ nano Main.tf

Agora coloque a seguinte configuração dentro dele:

Terraform
requerir_providers
aws =
fonte = "Hashicorp/AWS"
versão = "~> 3.27 "


requerir_version = "> = 0.14.9 "

Provedor "AWS"
região = "US-West-2"
Access_key = "Your-Acacess-Key"
Secret_key = "Your-secret-key"

Recurso "AWS_DB_INSTANCE" "RDS_INSTANCE"
alocado_storage = 20
identificador = "RDS-Terraform"
storage_type = "gp2"
Engine = "MySQL"
Engine_version = "8.0.27 "
instance_class = "db.T2.micro "
name = "seu db-name"
nome de usuário = "seu nome-db-username"
senha = "Sua passanha"
publicly_accessible = true
skip_final_snapshot = true
tags =
Name = "ExamplerdServerInstance"

Este arquivo contém toda a configuração para implantar usando o Terraform, basta substituir o texto em negrito por seus próprios detalhes de configuração. Vamos explorar cada uma das seções usadas no arquivo acima:

1. Terraform: define as configurações de Terraform. Os 'provedores necessários' definem o provedor a ser usado com o Terraform e a 'fonte' é um parâmetro opcional para o nome do host, um espaço para nome e o tipo de provedor. No código acima, a fonte é definida como 'Hashicorp/AWS', que, como todos os provedores. O provedor acima aponta para 'registro.Terraform.io/hashicorp/aws '.

O atributo da versão define a versão do provedor que você deseja usar.

2. Provedor: isso especifica com qual plataforma em nuvem você vai interagir (AWS, Azure, GCP etc.). Isso também controla a região que você está implantando seus recursos e as credenciais de segurança para o seu usuário.

3. Recurso: ele compreende componentes que constroem uma infraestrutura como bancos de dados, armazenamento, rede etc. A primeira string aqui “aws_instance“, Define o tipo de recurso e o segundo define um nome personalizado que você deseja usar. Esses dois são combinados para formar um ID exclusivo para este recurso, aqui está 'aws_instance.Rds_instance'. Da mesma maneira, também podemos incluir tamanhos de máquinas, nomes de imagens de disco ou IDs VPC.

Para validar ou verificar sua configuração, use o comando:

$ Terraform Validar

Inicializando o diretório Terraform

Para baixar e instalar o provedor que definimos em nossa configuração e outros arquivos, precisamos inicializar o diretório que contém este arquivo:

$ Terraform init

Da imagem acima, nosso iniciar O comando é bem -sucedido e existem alguns novos arquivos também criados aqui. Há também mais um comando 'Terraform Plan', embora não seja obrigatório usá -lo, mas tem alguns benefícios, por exemplo.:

  1. Você pode ver as ações que o Terraform vai executar.
  2. Ele pode apontar erros sintáticos em seus arquivos de configuração.

A Terraform não menciona esse comando em sua documentação, porque quando você executa o comando 'Terraform Apply', o mesmo plano será apresentado novamente.

Construindo a infraestrutura

Para construir nossa infraestrutura, use o comando:

$ Terraform se aplica

Isso primeiro produzirá o plano de execução que descreve as tarefas que o Terraform executará para trazer o estado de sua infraestrutura para a definida em seu arquivo de configuração. Depois disso, vai fazer uma pausa e pedir que você confirme o plano para continuar. Se tudo estiver definido como você desejou, digite 'Sim' para continuar:

Se você estiver pronto para continuar, digite 'sim'.

Levará algum tempo para concluir o processo. Quando esse processo estiver concluído, a mensagem abaixo aparecerá:

No seu console de gerenciamento da AWS, a instância do RDS será listada:

Destruindo os recursos

Quando você terminar e não precisa mais dos recursos da AWS que você criou, você pode simplesmente excluí -los usando o comando:

$ Terraform Destruir

Conclusão

Neste guia, aprendemos sobre o provisionamento de uma instância RDS na AWS usando o Terraform. Você também pode tentar configurar uma instância do EC2 da mesma maneira.