¿Qué cubriremos??
En esta guía veremos cómo podemos provocar una instancia de AWS RDS DB usando Terraform. Primero comencemos con la instalación de Terraform en Ubuntu 20.04.
Instalación de Terraform
Hashicorp proporciona el paquete oficial de Terraform para Ubuntu/Debian, Centos/Rhel, Fedora y Amazon Linux. Además de esto, también mantiene binario precompilado y también se puede compilar de la fuente. Para esta guía, estamos utilizando el paquete predeterminado proporcionado por el repositorio de paquetes Debian para instalar Terraform en Ubuntu 20.04.
Paso 1. Primera instalación gnupg, paquetes de protección de software-propertias y curl para verificar la firma GPG de Hashicorp e instalar el repositorio requerido:
$ sudo apt-get actualización && sudo apt-get install -y gnupg software-properties-common curl
Paso 2. Ahora agregue el GPG de Hashicorp clave usando el comando:
$ curl -fssl https: // apt.lanzamientos.Hashicorp.com/gpg | sudo apt-key agregar -
Paso 3. Continúe agregando el repositorio requerido:
$ sudo apt-add-repository "Deb [arch = amd64] https: // apt.lanzamientos.Hashicorp.com $ (lsb_release -cs) principal "
Etapa 4. Finalmente, ejecute el comando de actualización para agregar el repositorio e instalar Terraform:
$ sudo apt-get actualización && sudo apt-get install terraform
Paso 5. Verifique si se instala Terraform ejecutando el comando:
$ Terraform -version
Construyendo infraestructura de AWS RDS utilizando Terraform
Ahora que hemos instalado Terraform en nuestra máquina local, podemos continuar nuestra tarea de trabajar con AWS. Como se mencionó anteriormente, Terraform utiliza varios archivos de configuración para recursos de provisión y cada uno de estos archivos debe colocarse 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. Hacer una 'principal.TF'Archivo que contendrá la definición de nuestra infraestructura:
$ nano principal.TF
Ahora coloque la siguiente configuración dentro:
Terraform
requerido_providers
AWS =
fuente = "Hashicorp/AWS"
versión = "~> 3.27 "
requerido_version = "> = 0.14.9 "
Proveedor "AWS"
región = "US-West-2"
access_key = "Your-Access-Key"
secret_key = "tu secreto-key"
Recurso "AWS_DB_INSTANCE" "RDS_INSTANCE"
asignado_storage = 20
identificador = "RDS-TERRAFOR"
Storage_Type = "GP2"
motor = "mysql"
Engine_version = "8.0.27 "
instance_class = "db.T2.micro"
name = "Your-DB-Name"
userName = "Your-DB-UserName"
contraseña = "Su password"
Publicly_Accessible = True
skip_final_snapshot = true
etiquetas =
Nombre = "EjemplerdsServerInstance"
Este archivo contiene toda la configuración para implementar con Terraform, simplemente reemplace el texto en negrita con sus propios detalles de configuración. Exploremos cada una de las secciones utilizadas en el archivo anterior:
1. Terraform: define la configuración de Terraform. El 'proveedores requeridos' define que el proveedor se utilizará con el terrbaform y la 'fuente' es un parámetro opcional para el nombre de host, un espacio de nombres y el tipo de proveedor. En el código anterior, la fuente se define como 'Hashicorp/AWS' que, como todos los proveedores, se instala desde el Registro de Terraform. El proveedor anterior apunta a 'registro.terraformado.IO/Hashicorp/AWS '.
El atributo de la versión define la versión del proveedor que desea usar.
2. Proveedor: esto especifica con qué plataforma en la nube va a interactuar (AWS, Azure, GCP, etc.). Esto también controla la región que está implementando sus recursos y las credenciales de seguridad para su usuario.
3. Recurso: comprende componentes que crean una infraestructura como bases de datos, almacenamiento, red, etc. La primera cadena aquí "AWS_Instance", Define el tipo de recurso y el segundo define un nombre personalizado que desea usar. Estos dos se combinan para formar una identificación única para este recurso, aquí está 'AWS_Instance.Rds_instance'. De la misma manera también podemos incluir tamaños de máquina, nombres de imágenes de disco o ID de VPC.
Para validar o verificar su configuración, use el comando:
$ Terraform Validate
Inicializando 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
De la imagen de arriba, nuestra en eso El comando es exitoso y hay algunos archivos nuevos también creados aquí. También hay un 'plan de terraform' más de comando más, aunque no es obligatorio usarlo, pero tiene algunos beneficios, por ejemplo.:
Terraform no menciona este comando en su documentación, porque cuando ejecuta el comando 'Terraform Aplicate', el mismo plan se presentará nuevamente.
Construyendo la infraestructura
Para construir nuestra infraestructura, use el comando:
$ Terraform se aplica
Esto generará primero el plan de ejecución que describe las tareas que Terraform realizará para llevar el estado de su infraestructura a la definida en su archivo de configuración. Después de esto, se detendrá y le pedirá que confirme el plan para continuar. Si todo está configurado como lo ha deseado, escriba 'Sí' para continuar:
Si está listo para continuar, escriba 'Sí'.
Tomará algún tiempo completar el proceso. Cuando se complete este proceso, aparecerá el siguiente mensaje:
En su consola de administración de AWS, se enumerará la instancia de RDS:
Destruyendo los recursos
Cuando haya terminado y ya no necesite los recursos de AWS que creó, simplemente puede eliminarlos usando el comando:
$ Terraform Destro
Conclusión
En esta guía hemos aprendido sobre el aprovisionamiento de una instancia de RDS en AWS usando Terraform. También puede intentar configurar una instancia de EC2 de la misma manera.