Cómo crear una instantánea de AWS RDS usando Terraform

Cómo crear una instantánea de AWS RDS usando Terraform

Amazon Relational Database Service o RDS es una base de datos relacional que se puede configurar fácilmente utilizando AWS Management Console-AWS CLI y con RDS API. Además de estas formas, también podemos usar la herramienta Terraform para crear y administrar una base de datos AWS RDS.

Terraform se puede utilizar para implementar la infraestructura en la nube de muchos proveedores de servicios en la nube. Se puede descargar e instalar en los principales sistemas operativos como Linux, MacOS y Windows. Tiene su propio lenguaje sintáctico conocido como HCL (Language de configuración de Hashicorp) para crear archivos de configuración. Podemos especificar el proveedor de servicios en la nube y otros detalles de infraestructura utilizando la sintaxis HCL. Terraform primero crea un plan de ejecución que previsece los cambios planificados para la infraestructura. Solo se implementará una vez que confirme este plan. Hay tres comandos principales de Terraform que se usan de manera prominente: 1) Plan de Terraform, 2) Aplicar Terraform, y 3) Terraform Destro.

¿Qué cubriremos??

Este artículo le presenta el proceso de crear una instantánea de AWS RDS usando Terraform. Primero crearemos una base de datos RDS y luego crearemos su instantánea usando Terraform.

Que necesitarás?

  1. Cuenta de AWS configurada en su sistema.
  2. Acceso a Internet.

Qué esperamos de usted?

Antes de continuar, asegúrese de instalar Terraform en su sistema (Ubuntu 20.04 en nuestro caso). También suponemos que ya configuró las credenciales de usuario de AWS. Estas credenciales se usan en el bloque del proveedor de Terraform más tarde cuando se ejecutará Terraform.

Vea si Terraform ya está instalado en su sistema ejecutando el siguiente comando Terraform:

$ Terraform -version

Como puede ver, instalamos la versión 1.7 de Terraform. Si aún no lo ha instalado, puede usar el paquete binario oficial proporcionado por Terraform. O puede usar el administrador de paquetes de distribución predeterminado. Se pueden encontrar más detalles sobre la instalación en el sitio web de Terraform.

Creando una instantánea de AWS RDS usando Terraform

Ahora que ya instalamos Terraform en nuestra máquina local, podemos continuar nuestra tarea de trabajar con AWS RDS.

La configuración de Terraform para diferentes componentes se almacena en diferentes archivos, como:

  1. variables.TF: definición de varios usos en los archivos.
  2. principal.TF

Como se mencionó anteriormente, Terraform utiliza varios archivos de configuración para provisar recursos. Cada uno de estos archivos debe residir en su respectiva carpeta/directorio de trabajo. Creemos un directorio para este propósito:

Paso 1. Haga una carpeta para contener sus archivos de configuración y cambie el directorio a esta carpeta.

$ mkdir linuxhint-teraform && cd linuxhint-terraform

Paso 2. Permítanos crear nuestro primer archivo de configuración "variables.TF"Eso contendrá la información sobre nuestra región de AWS y el tipo de instancia que queremos usar.

$ nano variables.TF

Ahora, coloque el siguiente texto dentro y guarde el archivo.

variable "aws_region"
descripción = "La región de AWS para trabajar en."
predeterminado = "us-east-1"

Paso 3. Hacer una "principal.TFArchivo que contendrá la definición de nuestra infraestructura.

$ nano principal.TF

Ahora, coloque la siguiente configuración dentro de él.

Terraform
requerido_providers
AWS =
fuente = "Hashicorp/AWS"
versión = "~> 3.27 "


requerido_version = "> = 0.14.9 "

Proveedor "AWS"
región = var.AWS_region
shared_credentials_file = "/home/username/.AWS/Credenciales "
perfil = "perfil1"

recurso "aws_db_instance" "mydb"
asignado_storage = 10
motor = "mysql"
Engine_version = "8.0.28 "
instance_class = "db.T2.micro"
nombre = "dbname"
contraseña = "dbpassword"
UserName = "Dbuser"
identificador = "linuxhint-teraform-db"
backup_retention_period = 0
parameter_group_name = "predeterminado.mysql8.0 "
skip_final_snapshot = true

Recurso "AWS_DB_SNAPSHOT" "Test"
db_instance_identifier = AWS_DB_Instance.mydb.identificación
db_snapshot_identifier = "testSnapshot"

En el archivo anterior, reemplace el "Nombre de usuario"Con el valor en su caso. Veamos un poco sobre algunos de los parámetros utilizados anteriormente:

  • shared_credentials_file: es la ruta del archivo que contiene las credenciales de los usuarios de AWS.
  • Perfil: especifica el perfil del usuario que se utilizará para trabajar con el AWS.
  • AWS_DB_Instance: Recurso para crear una nueva instancia de RDS.
  • db_instance_identifier: Especifica el identificador de instancia de DB desde el cual se generará la instantánea de RDS.
  • db_snapshot_identifier: utilizado como identificador de instantánea.

Inicializar el directorio de Terraform

Para descargar e instalar el proveedor que definimos en nuestra configuración y otros archivos, necesitamos inicializar el directorio que contiene este archivo.

$ Terraform init

Construir la infraestructura

Para construir la infraestructura deseada, aplique los cambios utilizando el siguiente comando:

$ Terraform se aplica

Ingrese 'Sí' en la terminal cuando se le solicite.

Verificar el procedimiento

Ahora, verifiquemos si se crea o no el cubo de instancia RDS deseado. Dirígete a la consola RDS y verifique las bases de datos disponibles.

Podemos ver que se crea el "Linuxhint-Terraform-DB". Del mismo modo, en las secciones de instantáneas, verifique si la instantánea que especificamos en el archivo de configuración se crea o no.

Eliminar los recursos

Cuando haya completado su tarea y ya no necesite los recursos de AWS, simplemente elimínelos ejecutando el siguiente comando:

$ Terraform Destro

Conclusión

En esta guía, aprendimos y demostramos sobre la creación del cubo S3 en AWS usando Terraform. Probablemente hayas notado lo simple que es trabajar con Terraform.