En este artículo repasamos cómo integrar Amazon Elastic Block Store EBS con Amazon Elastic Kubernetes Service EKS y cómo persistir datos de contenedores usando Terraform para desplegar el clúster y los controladores CSI de EBS. Es una guía práctica pensada para arquitectos y desarrolladores que gestionan cargas de trabajo stateful en Kubernetes.
Qué es Amazon EBS para Kubernetes: Amazon Elastic Block Store EBS ofrece volúmenes persistentes a nivel de bloque que se adjuntan a instancias EC2. En Kubernetes estos volúmenes se exponen a los Pods mediante el driver CSI de EBS, permitiendo que los datos sobrevivan al ciclo de vida de los Pods y ofreciendo opciones de rendimiento y cifrado según el tipo de volumen.
Arquitectura básica: El flujo habitual consiste en que una aplicación solicita almacenamiento mediante un PersistentVolumeClaim PVC. Kubernetes enlaza esa solicitud a un PersistentVolume PV existente en el caso de aprovisionamiento estático o crea uno nuevo dinámicamente con ayuda de una StorageClass y el driver EBS CSI. El driver habla con AWS para crear y adjuntar el volumen al nodo trabajador donde corre el Pod y éste monta el volumen en la ruta indicada dentro del contenedor, por ejemplo /usr/share/nginx/html. Importante recordar que los volúmenes EBS están limitados a una sola Availability Zone por lo que el Pod y el volumen deben residir en la misma AZ.
Beneficios clave para EKS: durabilidad de datos más allá de reinicios de Pods, opciones de rendimiento y tipos de volumen como gp3 o io2, posibilidad de redimensionar volúmenes sin downtime y modelo de coste pago por almacenamiento provisionado.
Consideraciones importantes: EBS es scoped a AZ, requiere soporte CSI en la versión de Kubernetes adecuada, despliegues stateful deben usar StatefulSets o programaciones cuidadas, y conviene monitorizar cuotas y límites de API para evitar bloqueos operativos.
Paso 1 Provisionar EKS con Terraform: la base es crear un VPC seguro y un clúster EKS usando módulos comunitarios de Terraform. Hay que generar roles IAM, políticas y asociaciones de identidad para los controladores CSI y preparar claves KMS si se desea cifrado de volúmenes.
Paso 2 Instalar el driver EBS CSI: desplegar el addon oficial aws-ebs-csi-driver o instalar el chart correspondiente en el namespace kube-system. Asegurar que el service account del driver tenga la IAM role asociada para que pueda crear, adjuntar, modificar y borrar volúmenes según las políticas necesarias.
Paso 3 Patrones de implementación de almacenamiento: existe aprovisionamiento estático y dinámico. En estático el administrador crea el volumen EBS de antemano y define un PersistentVolume que referencia el id del volumen. El PVC enlaza con ese PV y el Pod monta el PVC. En dinámico se define una StorageClass que usa el provisioner ebs.csi.aws.com y cuando un PVC solicita almacenamiento el driver crea un nuevo volumen EBS, Kubernetes crea el PV y el Pod lo monta automáticamente.
Ejemplos conceptuales: para estático se crea un PV con volumeHandle apuntando al id del EBS y un PVC que pida el storageClass correspondiente. Para dinámico se configura una StorageClass con parámetros como type gp3 encrypted true iops y throughput y se crea un PVC que use esa clase. En ambos casos puedes desplegar un Pod nginx que escriba un index.html dentro del volumen montado y exponerlo con un Service ClusterIP para pruebas locales mediante port-forward.
Verificación y limpieza: comprobar pods del controlador CSI en kube-system, listar storageclasses pvs y pvcs, ejecutar df y cat dentro del Pod para verificar el montaje y el contenido y finalmente limpiar los manifiestos con kubectl delete y destruir la infraestructura con terraform destroy si ya no se necesita para ahorrar costes.
Buenas prácticas: usar StorageClass con volumeBindingMode WaitForFirstConsumer para asegurar que el volumen se cree en la AZ correcta, configurar allowVolumeExpansion para permitir redimensionado, aplicar políticas IAM minimalistas para el driver CSI y automatizar despliegues con Terraform y pipelines CI CD.
Sobre Q2BSTUDIO: en Q2BSTUDIO somos una empresa de desarrollo de software centrada en aplicaciones a medida y software a medida, especializados en soluciones cloud y modernización de infraestructuras. Ofrecemos servicios integrales que incluyen diseño y despliegue en la nube con enfoque en seguridad y automatización, y trabajamos con plataformas como AWS y Azure para ofrecer migraciones y arquitecturas resilientes. Si necesitas soporte para desplegar clústeres EKS, integración de EBS o estrategias de almacenamiento persistente puedes conocer nuestros servicios cloud en servicios cloud AWS y Azure de Q2BSTUDIO.
Además estamos especializados en inteligencia artificial aplicada a empresas, agentes IA y modelos personalizados para automatizar procesos y extraer valor de los datos. Si tu proyecto requiere soluciones de ia para empresas o integración con herramientas de inteligencia de negocio como Power BI, en Q2BSTUDIO ofrecemos consultoría y desarrollo a medida. Descubre nuestras capacidades en inteligencia artificial para empresas.
Palabras clave relevantes: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Estos términos están alineados con nuestros servicios y ayudan a posicionar contenidos técnicos y casos de uso reales.
Conclusión: Amazon EBS combinado con EKS y el driver CSI es una solución robusta para cargas stateful en Kubernetes. Usar Terraform para la infraestructura y manifiestos Kubernetes para la configuración de almacenamiento ofrece automatización y flexibilidad. Con la correcta configuración de roles IAM, StorageClass y buenas prácticas operativas puedes ejecutar aplicaciones como Nginx con almacenamiento persistente de forma segura y escalable. Si buscas apoyo profesional en despliegues, seguridad o desarrollo de software a medida, Q2BSTUDIO puede acompañarte en todo el ciclo de vida del proyecto.
Referencias y recursos adicionales: documentación oficial del driver EBS CSI, ejemplos de Terraform y manifiestos Kubernetes y nuestra experiencia en proyectos reales de migración y modernización cloud integrando prácticas de ciberseguridad y analítica avanzada.