Almacenamiento en Kubernetes Parte 4: S3 con EKS, Terraform y Manifiestos

Guía para integrar Amazon S3 con EKS usando Terraform y YAML, Mountpoint for S3 CSI, IRSA y aprovisionamiento estático; despliega Nginx sirviendo archivos desde S3.

9 sept 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

En este artículo explicamos cómo integrar Amazon S3 como solución de almacenamiento con Amazon EKS utilizando Terraform y manifiestos Kubernetes YAML, y cómo ejecutar un contenedor Nginx que sirva archivos de un bucket S3 mediante Mountpoint for S3 CSI driver.

Qué es Amazon S3 y por qué usarlo con Kubernetes: Amazon Simple Storage Service S3 es un servicio de almacenamiento de objetos diseñado para escalabilidad, alta disponibilidad y durabilidad. A diferencia de EBS o EFS, S3 guarda objetos en buckets lo que lo hace ideal para contenido estático, logs y backups. Con Kubernetes se accede a S3 mediante el driver CSI Mountpoint for S3 que expone objetos con interfaces tipo POSIX para que los pods monten el bucket como si fuera un filesystem.

Arquitectura resumida: un bucket S3 actúa como backend, en Kubernetes se define una StorageClass para el driver S3 CSI y se realiza aprovisionamiento estatico mediante PersistentVolume y PersistentVolumeClaim que se enlazan manualmente al bucket. El driver se despliega en el cluster EKS y los pods montan el PVC. La identidad y permisos se gestionan con IAM Roles for Service Accounts IRSA para otorgar al pod solo los permisos necesarios.

Beneficios clave: escalabilidad virtualmente ilimitada, durabilidad elevada, pago por uso y fácil integración con servicios AWS como CloudFront, Athena o Glue. También permite integraciones en soluciones empresariales que requieren aplicaciones a medida o software a medida con necesidades de almacenamiento escalable.

Consideraciones importantes: el driver Mountpoint for S3 debe instalarse en el cluster, actualmente el aprovisionamiento es estatico y la identidad de pod requiere IRSA. Hay que vigilar cuotas como descriptores de archivos y throughput de red cuando se escala la carga.

Paso 1 Provisionar EKS con Terraform y VPC: utilice módulos comunitarios de Terraform para crear la VPC y el cluster EKS de forma reproducible. Cree roles IAM y asocie el provider OIDC del cluster para permitir IRSA. En Q2BSTUDIO ofrecemos servicios cloud y migraciones que incluyen diseño de infraestructura y despliegue con Terraform, ideales para proyectos que requieren servicios cloud aws y azure ver más sobre servicios cloud.

Paso 2 Crear el bucket S3: configure versionado, cifrado en el lado servidor, bloqueo de acceso público y políticas de bucket según el modelo de seguridad de la organización. Cree un rol IAM dedicado para el driver S3 CSI y una policy que permita acciones como s3 ListBucket y operaciones sobre objetos del bucket concreto. Adjunte la policy al rol y utilice IRSA para que el addon Mountpoint for S3 use ese role.

Paso 3 Instalar el Mountpoint for S3 CSI driver: despliegue el addon aws-mountpoint-s3-csi-driver en EKS o instálelo mediante los manifiestos recomendados por AWS. Asocie el role IRSA al service account del driver para que tenga los permisos necesarios para acceder al bucket.

Paso 4 Aprovisionamiento estatico en Kubernetes: cree una StorageClass que apunte al provisioner s3.csi.aws.com con parámetros bucketName y prefix. A continuación defina un PersistentVolume que referencia el bucket y un PersistentVolumeClaim que solicita la capacidad. Como el aprovisionamiento es estatico el administrador debe crear el PV manualmente y asegurarse de que el PVC se enlace al PV.

Ejemplo de uso con Nginx: despliegue un pod o un Deployment con imagen nginx y monte el PVC en la ruta usr share nginx html. Puede inicializar index html dentro del contenedor la primera vez para validar lectura y escritura. Exponga la aplicación con un Service ClusterIP o Ingress para pruebas. Verifique que los archivos persisten en S3 listando el contenido desde la consola o la CLI aws s3 ls.

Verificación y limpieza: compruebe que el pod del driver en kube system está activo, que el PV y el PVC están Bound y que el pod Nginx sirve el index desde el montaje S3. Para limpieza elimine los manifiestos Kubernetes y luego destruya la infraestructura Terraform si ya no se usa para ahorrar costes.

Límites y roadmap: hoy solo se soporta aprovisionamiento estatico, la provisión dinamica está planificada. Monitorice límites de red y de descriptors abiertos en nodos cuando escale acceso concurrente al bucket desde múltiples pods.

Casos de uso y recomendaciones: S3 con EKS es ideal para servir contenido estático, almacenar artefactos y logs o como backend para aplicaciones a medida que requieren un almacenamiento de objetos barato y durable. Para soluciones empresariales que combinan desarrollo customizado y capacidades de inteligencia artificial y agentes IA, esta arquitectura permite separar almacenamiento de objetos del ciclo de vida de las aplicaciones y facilita integraciones con pipelines de datos y herramientas de análisis como Power BI y servicios de inteligencia de negocio.

Sobre Q2BSTUDIO: somos una empresa de desarrollo de software y aplicaciones a medida especializada en software a medida, inteligencia artificial, ciberseguridad y servicios cloud. Ofrecemos desde desarrollo de aplicaciones multiplataforma hasta proyectos de automatización y soluciones de inteligencia de negocio. Si busca potenciar su estrategia de IA para empresas o desplegar agentes IA conversacionales podemos ayudarle con consultoría y desarrollo a medida, además de integrar almacenamiento y despliegue en AWS y Azure. Conozca nuestros servicios de desarrollo a medida y aplicaciones multiplataforma en desarrollo de aplicaciones y software a medida o solicite soluciones de inteligencia artificial en servicios de inteligencia artificial.

Conclusión: Amazon S3 combinado con EKS y el Mountpoint for S3 CSI driver ofrece una forma potente y coste efectiva de exponer almacenamiento de objetos a workloads Kubernetes. Aunque la integración actualmente requiere aprovisionamiento estatico y configuración previa, proporciona una solución escalable y segura para servir contenido estático y almacenar datos de forma durable. Para proyectos que necesiten acompañamiento en arquitectura, seguridad o integración con pipelines de datos y BI como Power BI y servicios de inteligencia de negocio, Q2BSTUDIO puede acompañarle desde la definición hasta la entrega.

Palabras clave integradas naturalmente: 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.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.