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.