En este artículo práctico explicamos cómo integrar Amazon Elastic Block Store EBS con Amazon Elastic Kubernetes Service EKS usando Terraform y manifiestos de Kubernetes. Cubrimos desde la provisión de un clúster EKS dentro de una VPC con módulos Terraform hasta la configuración del controlador CSI de EBS y el despliegue de un contenedor Nginx que persiste archivos del sitio web en volúmenes EBS. Es una guía pensada para equipos que construyen cargas de trabajo stateful en EKS y para empresas que buscan soluciones robustas en la nube.
Qué es Amazon EBS en el contexto de Kubernetes EBS es un almacenamiento en bloque persistente que se adjunta a instancias EC2. En Kubernetes, los volúmenes EBS se exponen a los Pods a través del driver CSI de EBS, lo que permite que los datos persistan más allá del ciclo de vida de los pods. Esto es clave para aplicaciones que requieren persistencia como bases de datos, servidores de archivos o servidores web con contenido almacenado.
Arquitectura básica Cuando una aplicación solicita almacenamiento en Kubernetes se crea un PersistentVolumeClaim PVC. Kubernetes puede enlazar ese PVC a un PersistentVolume PV ya existente mediante aprovisionamiento estático o crear automáticamente un nuevo PV mediante aprovisionamiento dinámico gracias a un StorageClass y al EBS CSI driver. El driver CSI comunica con AWS para crear y adjuntar el volumen al nodo en la misma zona de disponibilidad AZ y el volumen se monta dentro del contenedor en la ruta especificada como por ejemplo /usr/share/nginx/html. Importante recordar que los volúmenes EBS son scoped a una sola AZ por lo que el Pod y el volumen deben residir en la misma AZ.
Beneficios principales para EKS Durabilidad datos que persisten después de reinicios de pods. Rendimiento varios tipos de volúmenes como gp3 io2 st1 para optimizar throughput o IOPS. Elasticidad posibilidad de redimensionar volúmenes sin downtime. Coste pago por el almacenamiento provisionado.
Consideraciones importantes con EKS Los volúmenes EBS funcionan solo en la misma AZ. Requiere Kubernetes v1.17 o superior para soporte CSI. Los pods que usan EBS suelen gestionarse con StatefulSets o con despliegues con afinidad y programación cuidadosa. Monitorizar cuotas de recursos y límites de API para evitar agotamientos.
Paso 1 Provisionar el clúster EKS con Terraform El primer paso es crear un clúster EKS en una VPC dedicada usando los módulos comunitarios de Terraform para VPC y EKS. En esa etapa se definen subredes por AZ, roles IAM para nodos y políticas básicas de seguridad. Recomendamos organizar la infraestructura como código para facilitar replicación y automatización.
Paso 2 Configurar EBS y el driver CSI En Terraform se crean recursos EBS opcionales como volúmenes estáticos de prueba y, si es necesario, una clave KMS para cifrado. También se crea un rol IAM con la política mínima necesaria para que el EBS CSI driver pueda crear adjuntar modificar y eliminar volúmenes y snapshots. En EKS el driver de EBS se despliega idealmente como un addon gestionado aws-ebs-csi-driver o mediante manifiestos del operador, y se asocia el service account con el rol IAM usando pod identity o IRSA para limitar privilegios.
Paso 3 Patrones de implementación de almacenamiento Static provisioning En el aprovisionamiento estático el administrador crea previamente un volumen EBS con Terraform o AWS CLI y luego define un PersistentVolume PV en Kubernetes que referencia el id del volumen. Después se crea un PersistentVolumeClaim PVC que solicita la capacidad y se monta en un Pod Nginx para validar la persistencia. Manifiestos típicos a usar incluyen static-storage-class.yaml static-persistent-volume.yaml static-persistent-volume-claim.yaml static-nginx-pod.yaml y static-nginx-service.yaml.
Dynamic provisioning Recomendado En el aprovisionamiento dinámico Kubernetes crea volúmenes EBS bajo demanda mediante un StorageClass que apunta a ebs.csi.aws.com. Cuando una aplicación solicita un PVC se genera un PV respaldado por un nuevo volumen EBS y el Pod monta ese volumen automáticamente. Manifiestos típicos incluyen dynamic-storage-class.yaml dynamic-persistent-volume-claim.yaml dynamic-nginx-pod.yaml y dynamic-nginx-service.yaml. Este modelo simplifica operaciones y evita errores de zona de disponibilidad ya que Kubernetes y el driver CSI gestionan la colocación.
Verificación Compruebe que el controlador CSI de EBS está funcionando revisando los pods en kube-system y sus logs. Valide StorageClasses PVs y PVCs con kubectl y verifique que los pods pueden listar y leer archivos en la ruta montada con comandos de inspección de contenedor. Pruebe los servidores Nginx con port forwarding para validar acceso HTTP al contenido persistente.
Limpieza Para entornos de pruebas elimine los manifiestos aplicados y destruya la infraestructura Terraform para evitar costes innecesarios. Asegúrese de manejar el reclaimPolicy de los PV para decidir si los volúmenes creados dinámicamente deben eliminarse o conservarse.
Buenas prácticas y seguridad Configure IAM con principios de menor privilegio para el driver CSI. Use cifrado con KMS para datos sensibles. Planifique la alta disponibilidad a nivel de aplicación dado que EBS es por AZ. Automatice el dimensionado y monitorice IOPS y throughput junto con costes de almacenamiento.
Cómo Q2BSTUDIO puede ayudar Q2BSTUDIO es una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones cloud y seguridad. Ofrecemos servicios integrales para desplegar arquitecturas como EKS con EBS combinando experiencia en software a medida e inteligencia artificial. Si necesita una plataforma a medida podemos ayudarle desde la definición de la infraestructura hasta la integración de agentes IA y pipelines de despliegue. Con nuestro enfoque de servicios cloud aws y azure diseñamos entornos seguros y escalables que integran prácticas de ciberseguridad y automatización.
Si su proyecto requiere desarrollo de aplicaciones a medida visite Desarrollo de aplicaciones a medida para conocer nuestras capacidades en software a medida y multiplataforma. Para migraciones o arquitecturas gestionadas en la nube consulte nuestros servicios cloud aws y azure.
Servicios relacionados y posicionamiento online Además de desarrollo ofrecemos servicios de inteligencia artificial e ia para empresas para integrar modelos y agentes IA en sus aplicaciones, soluciones de inteligencia de negocio y power bi para explotar datos, y auditorías de seguridad y ciberseguridad para proteger sus activos. Palabras clave relevantes que aplicamos en nuestros proyectos incluyen aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA y power bi.
Conclusión Amazon EBS es una opción sólida para almacenamiento persistente en EKS cuando se siguen las buenas prácticas de IAM, CSI y diseño multizona a nivel de aplicación. Usar Terraform para la provisión y manifiestos Kubernetes para la configuración permite automatización y flexibilidad. En Q2BSTUDIO combinamos estas tecnologías con servicios de desarrollo a medida inteligencia artificial y ciberseguridad para entregar soluciones empresariales seguras y escalables.
Referencias Recomendamos consultar la documentación oficial del driver EBS CSI y revisar implementaciones de ejemplo en repositorios de Terraform y Kubernetes para adaptar los manifiestos al entorno de producción.