21/09/2022
Cómo tener tu consumo de AWS bajo control
¿A quién no se le ha ido la mano con los servicios activados en AWS? ¿Y quién no se ha llevado algún susto con la factura a final de mes?
En este artículo, nuestro experto en arquitectura cloud Alberto Valencia nos da algunos trucos para tener bajo control nuestras cuentas AWS y optimizar su consumo. ¡Disfrutad!
¿Situaciones familiares?
Seguro que estas situaciones te son familiares: llevamos trabajando un tiempo en una cuenta y de repente la cantidad de recursos es tan grande que no podemos controlar todo lo que tenemos. O tal vez tengo una cuenta de AWS y el proyecto ha crecido tanto que lo que antes tenía todo controlado en una sola región, dos años después he pasado a tener un equipo de 10 personas y recursos creados por todo el mundo.
Después de muchos años trabajando y analizando cuentas de clientes muy variados hemos visto muchos errores frecuentes y situaciones que no tienen mucha lógica para el proyecto en sí.
Resumiendo, me suelo encontrar con tres tipos de situaciones problemáticas:
Servicios “huérfanos”: servicios que son necesarios para el proyecto pero que las montó un técnico que ya no está y que nadie sabe cómo funciona. Generalmente, mientras funcionen, ahí se quedan para siempre. Esto ha pasado siempre, no nos engañemos, no es algo exclusivo de los servicios en la nube, pero en estos entornos son muy frecuentes.
Servicios innecesarios: servicios que están activos pero que no se utilizan jamás. Normalmente se han quedado activos después de una prueba, una versión inicial del proyecto o una funcionalidad descartada, y nunca más se han usado, cayendo en el olvido. Aunque esto también pasaba antes del cloud, debido a la facilidad para crear nuevos recursos en la nube el problema ha crecido exponencialmente.
- Sobredimensionamiento: se reservan (¡y pagan!) recursos muy superiores a los necesarios en el proyecto. Los recursos en la nube están sobredimensionados “por si acaso”, o por falta de una buena planificación y monitorización. Esto sobre todo lo vemos en el volumen que tienen las maquinas virtuales.
¡Hay esperanza!
Afortunadamente hay esperanza y cada problema tiene su solución. Es importante saber que como técnicos, administradores de sistemas y devops no estamos solos ante el peligro y las propias nubes nos proporcionan una serie de herramientas extremadamente útiles para poder facilitarnos ese control y ayudarnos en esta tarea.
A continuación comparto algunas de las mejores prácticas que más me han ayudado en mis años de consultoría y optimización cloud:
Documentación
¡Básico! ¿Verdad? Ya veo a más de uno poniendo los ojos en blanco y suspirando. Algo que siempre digo a todo el mundo es que por muchas herramientas y procesos automatizados que tengamos, no podemos dejar de lado la documentación de nuestra plataforma y de nuestra arquitectura, por muy poco que nos guste documentar las cosas.
Esa documentación nos debería de ayudar a comprender el porqué de las cosas, porque creamos ese bucket y quien accede a él, el flujo de datos desde el usuario a la BBDD, etc.
La documentación debería de paliar en gran medida el primer punto: el por qué está montado de esta manera y el para qué. Sin embargo, no nos engañemos: la documentación por norma general es bastante escasa, está desactualizada o “estaba en el pc que se llevó mi compañero cuando dejó la empresa.”
Actualmente tenemos una gran cantidad de opciones a la hora de que la documentación esté creada y organizada. Google Drive, One Drive o DropBox son herramientas fantásticas para tener organizada tu documentación, permiten trabajar offline y generar versiones de documentos que estarán siempre accesibles para todo el equipo.
Vigilancia y herramientas de control
Para el segundo punto existen una serie de herramientas y procesos para la creación de servicios.
La políticas son quizá el elemento más restrictivo, pero potentes. El uso de políticas restrictivas tanto en el tamaño de máquinas como en la cantidad de máquinas que se pueden desplegar en una cuenta ayuda mucho a controlar el consumo del proyecto.
Por supuesto esto no nos quita responsabilidad de tener una buena política de seguridad, donde quien tiene que desplegar puede hacerlo y quien no debe no pueda hacerlo. Recordad siempre el principio de los menores privilegios asignados.
Este privilegio se lleva a su máxima expresión con herramientas de despliegue de infraestructura como código, las cuales, unidas a las políticas, se convierten en un cortafuegos fantástico para aquellos que tienen la tentación constante de crear servicios sin permisos.
Pero como no siempre puede estar todo controlado, necesitamos tener un vigilante que nos ayude por si algo no ha ido como esperábamos.
Para ello tenemos herramientas “de vigilancia” tan potentes como Cloud Trail, el cual captura todo lo que sucede en la cuenta y permite configurar alertas para ser avisados en cuanto sucede algún evento que consideremos de importancia.
En este punto ya tenemos documentación técnica que nos explica el por qué de las cosas, buenas políticas que previenen errores y Cloud Trail que vigila, pero ¿cómo ponemos orden en nuestra cuenta?
¡Orden!
Para tener nuestra cuenta de AWS siempre bien ordenada, una herramienta sencilla y muy efectiva son las etiquetas.
¿Qué son las etiquetas en Amazon Web Services? Las etiquetas de AWS son simplemente un par clave-valor totalmente personalizado que nos permite incluir identificadores que necesitemos para dar contexto.
Algunos ejemplos que yo suelo usar y que os podrían ser de utilidad son las siguientes:
Creador: Nombre del creador
Aplicación: Nombre de la aplicación
Uso: pruebas, definitivo, etc
A borrar: sí/no
Mareo global
Por otro lado, la manera que tiene AWS de presentar los recursos en vistas de regiones puede ser bastante tedioso. Es muy habitual perder tiempo buscando por todas las regiones esa máquina que todo el mundo conoce pero nadie sabe dónde está.
Para ello tenemos a nuestra disposición Ec2 Global View, una herramienta muy útil que de un solo vistazo permite ver todo los referente a instancias, VPC, Subnets, Volúmenes y grupos de seguridad a través de todas las regiones.
Es una pena que aún no cubra otro tipo de servicios como Lambdas, RDS, etc…pero ¿quién sabe? Quizás AWS nos de una alegria en breve 😉
Dimensionando
Para resolver el tercer problema donde hemos dimensionado mal una máquina, primero tenemos que saber que la hemos dimensionado mal, ¡obviamente!
Para ello las herramientas de monitorizacion son tus grandes amigas. Dos de mis favoritas son CloudWatch y Trusted Advisor.
Utiliza CloudWatch para ver qué pasa en cada máquina. Es básico, pero ya sabes: si tu CPU está frecuentemente al 100%, toca darle un poco de respiro y aumentar la máquina, pero si está normalmente trabajando al 5% tambien hay que tomar medidas. Ésa máquina puede sobrevivir sin tanto músculo y ¡tu bolsillo te lo agradecerá!.
Una de las ventajas clave de la nube es que nos permite modificar el tamaño del recurso muy fácilmente y en algunos casos lo único que nos afectará será un reinicio de la máquina o un nuevo despliegue de las lambdas.
Trusted Advisor por otro lado es una gran herramienta que nos permite de un vistazo ver ciertos problemas en nuestro entorno.
Tiene cinco grandes bloques funcionales: Optimización de Coste, Rendimiento, Seguridad, Tolerancia a Fallos y Límites de Servicio (Quotas). Es cierto que para acceder a algunas de ellas es necesario tener un plan de soporte, pero tanto si lo tienes como si no, no dejes de ver las recomendaciones que nos da.
Conclusiones
Como hemos visto, para llevar a buen término un proyecto y sufrir los menores quebraderos de cabeza posibles solamente es necesario hacer una buena planificación inicial, tener unos buenos procesos estrictos a cumplir y una serie de herramientas de enorme ayuda a las que todos tenemos acceso. Y como siempre, es más fácil de decir que de hacer.
Si estás experimentando problemas similares a estos que te contamos, se te ha disparado el consumo de tu cuenta de AWS y no sabes muy bien por dónde empezar a optimizar, ponte en contacto con nuestros expertos y te asesoraremos encantados.
Atentamente,
Carta de fin de año 2023
Queridos clientes y apreciado equipo, una vez más, comparto con vosotros nuestras reflexiones sobre el año 2023. Este año ha sido testigo de la consolidación del equipo directivo que formamos en 2022 y la consecución exitosa de los objetivos que nos propusimos.
Un primer vistazo a GKE Enterprise: innovación, color y control en la nube
En el entorno empresarial actual, contar con un buen sistema de gestión documental se ha vuelto fundamental para el éxito y la eficiencia de las empresas. monday.com es la clave para tener resultados inmejorables en este aspecto.
Gestión documental avanzada con monday.com
En el entorno empresarial actual, contar con un buen sistema de gestión documental se ha vuelto fundamental para el éxito y la eficiencia de las empresas. monday.com es la clave para tener resultados inmejorables en este aspecto.
01
Contacta con nosotros
02
Suscribete a la newsletter