Entorno de pruebas en AWS 1: Elegir Ansible o Terraform

Vamos a plantear un entorno de pruebas en AWS ya que el diseñado en anteriores capítulos está al límite de lo que es un portátil y muchas veces vamos a necesitar que dicho entorno sea accesible por un cliente al que no tenemos acceso. Hablaremos de un entorno en Amazon Web Service, aunque la idea es utilizar herramientas que puedan adaptarse a otros proveedores, intentando no casarnos de ninguna manera con el proveedor, pensando especialmente en lo que sería un entorno de demostración. Diseño de referencia Para empezar plantemos una arquitectura de referencia, para ello tomamos lo que es un diseño tradicional con MZ y DMZ, evitando en lo posible elementos que salgan fuera de lo que sería un entorno de demostración (por ejemplo balanceadores, CDN, caché, etc) ya que nos interesa que el despliegue sea rápido y la pretensión es que dure poco en el tiempo (y por lo tanto reducir en lo posible sus costes). De manera resumida tenemos los siguientes elementos: En este primer capítulo vamos a plantear dos posibles opciones de infraestructura como código (IaC) para desplegar el entorno y las ventajas/desventajas de cada una. Las soluciones que vamos a plantear son Ansible y Terraform. En el segundo artículo iremos revisando como son los elementos en cada una de las soluciones y que opciones tenemos ante las deficiencias de cada uno. Los ejemplos de código se basan en el disponible en https://github.com/aescanero/disasterproject, tanto para Ansible como para Terraform. Instalar Para instalar Ansible lo haremos como se han indicado en artículos anteriores (como KVM, Ansible y como hacer un entorno de pruebas), para el caso de Terraform, simplemente lo descargamos de https://releases.hashicorp.com/terraform/ para nuestro sistema operativo, para ubuntu, para instalar la versión 0.12.18 seguimos lo siguiente: En este punto podemos ver que efectivamente es más fácil la instalación inicial de Terraform, pero hemos de tener en cuenta que Ansible trae en el paquete todas las librerías necesarias para trabajar con AWS. Para poder trabajar con Terraform y AWS vamos a necesitar en el directorio de trabajo de un archivo “provider.tf” donde indiquemos el proveedor (provider) de servicio con el que vamos a trabajar, el contenido del archivo debe ser parecido al siguiente: Para instalar las librerías necesarias para el acceso a AWS ejecutaremos terraform init. Un detalle importante que diferencia ambas herramientas es la forma de conectarse, mientras Terraform puede utilizar el archivo ~/.aws/credentials o variables de […]

Volver arriba