Cómo Optimizar el Almacenamiento de la Caché de Terragrunt: Di adiós a los 45GB de desperdicio

Una guía práctica para ahorrar espacio y mejorar tus despliegues de infraestructura
Optimización del almacenamiento de caché en Terragrunt con Provider Cache.

Índice

  1. Introducción
  2. Entorno
  3. Principales características de Terragrunt y su Caché
  4. Detectando el Problema
  5. Solución: Configuración del Provider Cache
  6. Resultado: Liberando Espacio
  7. Código fuente del tutorial
  8. Conclusiones
  9. Referencias bibliográficas

1. Introducción

En los proyectos de infraestructura como código, la eficiencia no solo se mide por la rapidez del despliegue o la robustez de la configuración, sino también por el aprovechamiento inteligente de los recursos locales, especialmente cuando trabajamos con herramientas como Terragrunt y Terraform.

En este tutorial quiero compartirte un caso real que me ocurrió recientemente mientras migrábamos la infraestructura de AWS de una cuenta a otra. Descubrimos un problema sorprendente relacionado con el peso desmesurado que puede alcanzar la caché de Terragrunt si no se configura adecuadamente. Lo más interesante es que la solución no solo es sencilla, sino que además supone una mejora aplicable tanto a entornos locales como a pipelines de integración continua.

Si alguna vez te ha sorprendido el tamaño de tu carpeta de despliegue o simplemente quieres aplicar buenas prácticas en el uso de Terragrunt, este tutorial es para ti.

2. Entorno

Antes de profundizar en el caso, es importante que conozcas el entorno en el que trabajamos, por si quieres reproducir los pasos o comparar con el tuyo:

  • Hardware: MacBook Pro 16′ (Apple M1 Pro, 32GB RAM, 1TB Flash Storage)
  • Sistema Operativo: macOS Sequoia 15.5
  • Editor de Código: Cursor 1.0.0 (basado en VS Code 1.96.2)
  • Terragrunt versión: 0.77.22
  • Terraform versión: 1.12.1

Estos detalles son relevantes, ya que en sistemas Unix/macOS el manejo de variables de entorno y configuración de paths puede variar respecto a entornos Windows.

3. Principales características de Terragrunt y su Caché

Terragrunt es una herramienta que complementa a Terraform, facilitando la gestión de múltiples entornos, el reuso de configuraciones y la orquestación de despliegues complejos. Sin embargo, bajo el capó, Terragrunt genera una caché local donde almacena tanto el código como los providers, es decir, los binarios que permiten interactuar con AWS, Azure, GCP, etc.

Esta caché tiene ventajas, pero también un talón de Aquiles:

Ventajas:

  • Acelera los despliegues evitando descargar repetidamente los mismos providers.
  • Permite aislar el estado y los módulos por recurso o directorio.

⚠️ Problema:

  • Cada recurso o módulo que despliegas genera su propia carpeta .terraform dentro de la caché de Terragrunt.
  • Dentro de esa carpeta se almacena una copia completa del provider, lo que puede multiplicar el peso final de forma exagerada.

En nuestro caso, tras desplegar aproximadamente la mitad de la infraestructura, la caché ya pesaba 45GB, y todavía quedaba trabajo por hacer.

4. Detectando el Problema

El detonante fue un comentario casual de un compañero mientras realizaba pruebas a un módulo de EC2 actualizado con los cambios de la última version del provider de AWS. Decidí borrar tanto la caché como el lock para asegurarme que esta se regenerase de cero, y surgió la pregunta:

"¿Has encontrado la manera de optimizar la caché de Terragrunt?"

En ese momento no era consciente del problema, pero al investigar, descubrí que efectivamente, cada recurso generaba su propia carpeta .terraform con el provider incluido, lo que explicaba los 45GB de peso en mi directorio de despliegue.

Aunque gracias al .gitignore esta caché no se versiona (lo cual es fundamental por seguridad y espacio), seguía siendo un problema importante a nivel de almacenamiento local, especialmente al trasladar datos entre máquinas o trabajar en entornos CI/CD.

5. Solución: Configuración del Provider Cache

Revisando la documentación oficial de Terragrunt sobre la caché, descubrimos una opción muy interesante: Provider Cache.

Esta funcionalidad permite centralizar el almacenamiento de los providers en un único directorio, evitando duplicados innecesarios y optimizando el uso de espacio en disco.

Pasos para activar el Provider Cache:

Simplemente hay que definir dos variables de entorno:

Bash
export TG_PROVIDER_CACHE=1  
export TG_PROVIDER_CACHE_DIR=/ruta/a/tu/cache

En mi caso personal, decidí almacenarlo en un directorio específico dentro de mi usuario:

Bash
export TG_PROVIDER_CACHE=1  
export TG_PROVIDER_CACHE_DIR=~/.aws/cache/providers

Consejo: Si utilizas zsh como shell, lo ideal es añadir estas líneas en tu archivo .zshrc para que se apliquen automáticamente en cada terminal.

Con esto, Terragrunt almacenará los providers en un único directorio centralizado y, cuando hagas terragrunt plan o terragrunt apply, simplemente creará un enlace simbólico (symlink) a esa ubicación, sin duplicar el contenido.

6. Resultado: Liberando Espacio

Tras aplicar esta configuración, el cambio fue drástico. El directorio que antes ocupaba 45GB, ahora apenas pesa 51MB.

Una optimización muy significativa, especialmente cuando se trabaja con cientos de recursos. Además, esto sienta las bases para futuras optimizaciones en entornos de CI/CD o pipelines automatizados con herramientas como Atlantis, ya que el tiempo es oro, pero de esto ya hablaremos en un próximo tutorial.

7. Código fuente del tutorial

Dado que este tutorial se basa en configuración y buenas prácticas, no hay un repositorio de código como tal, pero dejo aquí un ejemplo mínimo de configuración aplicable:

Archivo .zshrc (fragmento relevante):

Bash
# Optimización de caché de Terragrunt  
export TG_PROVIDER_CACHE=1  
export TG_PROVIDER_CACHE_DIR=~/.aws/cache/providers

Comando útil para limpiar la caché (opcional):

Bash
find . -type d -name ".terragrunt-cache" -exec rm -rf {} +

Este comando, recomendado por la documentación oficial, permite eliminar todas las carpetas de caché generadas por Terragrunt, en caso de que quieras hacer limpieza antes de activar el Provider Cache.

8. Conclusiones

Este tutorial demuestra cómo problemas aparentemente secundarios, como el tamaño de la caché local, pueden convertirse en una gran oportunidad para introducir mejoras significativas en nuestros proyectos de infraestructura como código.

Habilitar el Provider Cache en Terragrunt:

✅ Ahorra espacio de almacenamiento local.
✅ Mejora el rendimiento al evitar descargas redundantes.
✅ Sienta las bases para optimizaciones en entornos CI/CD.
✅ Refuerza las buenas prácticas de gestión de configuración.

Además, situaciones como esta nos recuerdan la importancia de cuestionar el estado actual, investigar la documentación oficial y aprovechar cualquier oportunidad para optimizar procesos, mejorar la eficiencia y reforzar la seguridad.

En próximos tutoriales profundizaremos en temas como:

  • Optimización avanzada de monorepositorios de módulos.
  • Uso de Atlantis para gestión automática de PRs y despliegues en Terraform/Terragrunt.
  • Buenas prácticas de seguridad en despliegues de infraestructura.

Recuerda: Cada pequeño ajuste suma en la construcción de un sistema más robusto, eficiente y mantenible.

9. Referencias bibliográficas

  1. Documentación oficial de Terragrunt sobre la caché:
    https://terragrunt.gruntwork.io/docs/reference/terragrunt-cache/
    Información oficial sobre la caché de Terragrunt.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Es un especialista en Cloud, DevOps y Arquitectura de Soluciones, con amplia trayectoria en AWS, Azure, Kubernetes e infraestructura como código (IaC) con Terraform y Terragrunt. Ingeniero de formación, ayuda a equipos a diseñar, migrar y optimizar sus entornos cloud, combinando visión estratégica y experiencia práctica. Si buscas a alguien que no solo implemente, sino que construya soluciones fiables y escalables, podemos hablar.

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

02/03/2026

José Antonio Sánchez Segovia

Zephyr es un RTOS open source respaldado por la Linux Foundation que permite desarrollar dispositivos embebidos conectados, eficientes y escalables, facilitando el paso de prototipo a producto final con una arquitectura mantenible.

23/02/2026

Enrique Casado Díez

LoRa y LoRaWAN son tecnologías clave en el ecosistema IoT cuando se requiere largo alcance y bajo consumo energético. En este artículo analizamos su funcionamiento, Spreading Factor, link budget, arquitectura de red, frecuencias y clases de dispositivos, con un caso práctico real.

19/02/2026

Juan José Díaz Antuña

Copilot Chat es la forma más sencilla y segura de empezar a usar IA en Microsoft 365. En este artículo vemos cómo funciona, cómo activarlo y en qué se diferencia de Microsoft 365 Copilot, Copilot Studio y los Agentes Inteligentes, con ejemplos prácticos y una comparativa clara.