Este sitio utiliza cookies para garantizar que obtenga la mejor experiencia en nuestro sitio web.

(FinOps) K8s + AWS: ahorra hasta 90% de tu presupuesto

¡Hola a todos! Siempre traigo contenido nuevo, y hoy quiero hablar brevemente de FinOps en AWS y cómo optimizamos costos para nuestras cargas en Kubernetes.

CloudScript Technology
7 de noviembre de 20235 min de lectura
(FinOps) K8s + AWS: ahorra hasta 90% de tu presupuesto

¡Hola a todos! Siempre les traigo contenido por aquí, y hoy quiero hablar brevemente sobre FinOps en AWS y cómo optimizamos costos para nuestros clientes aquí en CloudScript.

¿Qué es FinOps?

FinOps, o Financial Operations, es la práctica de gestionar operaciones financieras en entornos de nube, garantizando un equilibrio entre velocidad, costo y calidad. En el contexto de AWS (Amazon Web Services), esto implica usar prácticas y herramientas para optimizar la asignación de recursos, reducir gastos innecesarios y mejorar la previsibilidad del gasto. Y, por supuesto, recortar algunos costos siempre que sea posible. Jaja

Balanceo ilustrativo y distribución de tráfico en instancias de auto-scaling de AWS

Kubernetes y ahorros en AWS

Kubernetes es una plataforma open-source para automatizar el despliegue, la escalabilidad y las operaciones de aplicaciones en contenedores. Cuando está bien gestionado, Kubernetes puede ser un poderoso aliado en la optimización de costos en AWS. Permite una gestión eficiente de recursos, escalando según la demanda y asegurando que no haya desperdicios.

Pero, ¿por qué Kubernetes tiene una ventaja innegable cuando se trata de orquestación de contenedores en entornos de nube, especialmente por su capacidad de automatizar la distribución y escalabilidad de aplicaciones? Bueno, la pregunta se responde sola, pero vamos un poco más allá.

La plataforma asegura que los recursos sean optimizados, reduciendo costos operacionales mientras mantiene la disponibilidad y eficiencia del servicio. Y esto es un hecho comprobado, ya que grandes jugadores exitosos como Netflix, entre otros, usan un enfoque Kubernetes para ejecutar y escalar sus servicios.

Con Kubernetes, puedes implementar una arquitectura de microservicios altamente resiliente y autosuficiente que se beneficia del despliegue continuo y la gestión simplificada, incluso en entornos de producción complejos.

El Elastic Kubernetes Service (EKS) de AWS es un claro ejemplo de cómo la portabilidad y flexibilidad de Kubernetes pueden mantenerse incluso en un servicio gestionado. EKS abstrae muchos de los procesos complicados de configuración y mantenimiento de Kubernetes, sin sacrificar la esencia de lo que hace de Kubernetes una solución tan poderosa para la orquestación de contenedores. Con EKS, aún puedes disfrutar de todos los beneficios de Kubernetes, como el escalado automático, la gestión de configuraciones y el self-healing, al mismo tiempo que te beneficias de una integración profunda con el ecosistema de AWS y de la seguridad a nivel empresarial que ofrece. Enlace oficial de EKS: https://aws.amazon.com/eks/

Entonces, ¿usar EKS no significa perder portabilidad? La respuesta es sí, no pierdes nada; al contrario, puedes integrar fácilmente tus clusters de EKS con servicios e infraestructura on-premises o con otros proveedores de nube, asegurando que tu arquitectura sea resistente al lock-in y adaptable a las cambiantes necesidades del negocio. Además, AWS proporciona integración nativa con sus servicios de monitoreo, seguridad y cumplimiento, simplificando aún más la operación de workloads a gran escala.

Entendamos esto más a fondo. Esencialmente, EKS está construido sobre Kubernetes open-source, lo que significa que las prácticas, herramientas y habilidades que tu equipo desarrolla son transferibles y aplicables independientemente de dónde ejecutes tu Kubernetes. La promesa de AWS con EKS es entregar un servicio gestionado que se mantenga fiel a los principios fundamentales de Kubernetes, al tiempo que agrega el valor de la facilidad de uso, la seguridad y la integración con la amplia gama de servicios de nube de AWS, apoyando una estrategia de TI que es a la vez ágil y robusta, lista para responder a la dinámica del mercado y a la innovación tecnológica.

Ahorrando con estrategias de Spot Instances

Arquitectura ilustrativa de AWS spot y eks

Las Spot Instances son una opción de compra que permite a los usuarios de AWS aprovechar la capacidad no utilizada del data center a un precio inferior al de las On-Demand Instances. Kubernetes tiene mecanismos, como el Kube Autoscaler, que pueden ajustar automáticamente el número de Spot Instances según la demanda y la disponibilidad, lo que puede reducir significativamente los costos. Puedes aprender más sobre el modelo de Spot Instance de AWS y cómo usarlo aquí: https://ec2spotworkshops.com/

Para quienes quieren más previsibilidad o tienen un workload fijo esencial, podemos usar la estrategia de Reserved Instances y Savings Plans. Con Reserved Instances, te comprometes a un tipo de instancia específico y un plazo contractual (generalmente uno o tres años), lo que resulta en ahorros considerables comparados con los precios On-Demand. Aquí se cumple la máxima "Time is money".

Mi consejo es no usar solo una de las prácticas, sino combinar tantas como sea posible y alcanzar el máximo ahorro.

¿Pero cómo hago esto en la práctica?

Ok, a diferencia de esos artículos superficiales, te daré un paso a paso para aplicar estas estrategias de ahorro:

  1. Evaluación del uso actual: antes que nada, es crucial entender tu patrón de uso. Herramientas como AWS Cost Explorer pueden ayudar.
  2. Implementación de Kubernetes: si aún no lo estás usando, implementa Kubernetes para gestionar tus contenedores. Usa Amazon EKS (Elastic Kubernetes Service) para simplificar este paso. Hay un proyecto de AWS que simplifica el deployment para ti, llamado EKSCTL; aquí el enlace: https://eksctl.io/
  3. Autoscaling con Spot Instances: configura el Kubernetes Autoscaling para incluir Spot Instances. Usa políticas que definan el uso máximo de Spot Instances para evitar interrupciones. Aquí puedo sugerir el proyecto AWS Karpenter para esta tarea: https://karpenter.sh/
  4. Reserved Instances y Savings Plans: determina si hay workloads consistentes que puedan beneficiarse de Reserved Instances o Savings Plans. Solicítalos donde tenga sentido.
  5. Monitoreo continuo: usa herramientas nativas de AWS o soluciones de terceros para monitorear y ajustar tus estrategias continuamente según sea necesario.
  6. Mantente informado: sigue las actualizaciones y nuevas funcionalidades de AWS que pueden ofrecer oportunidades adicionales de ahorro.

Espero que esto te haya sido útil para entender mejor cómo usar estrategias FinOps, especialmente en AWS, para maximizar tus ahorros.

Recuerda que cada aplicación y entorno es único, así que, aunque estas estrategias son generalmente aplicables, deben adaptarse a tus necesidades y circunstancias específicas.

Y finalmente, si necesitas una mano con eso, CloudScript está aquí para ayudar. Siéntete libre de contactarnos para una conversación más profunda sobre tu infraestructura y cómo podemos hacerla costo-efectiva.

Eso es todo por hoy, volveré con más consejos pronto. ¡Saludos!

#k8s #kubernetes #cloud #aws #cloudscript #eks #finops

Mantente al día

Recibe nuestros artículos sobre DevOps, Kubernetes, Platform Engineering y Cloud Native directamente en tu correo.

Sin spam. Cancela cuando quieras.