Hace unos días leí un anuncio de AWS donde por 11 años consecutivos se mantiene como nube líder en el mercado Ver Figura 1 , hace un buen tiempo que utilizo AWS fue la primera nube donde me dieron un código promocional (>1k dólares) para usar y termine consumiendolo en 3 meses usando recursos que había configurado sin saber como se cobraban, después de ello he venido usando cada vez mas y sin duda es una nube con una gran capacidad y gran gama de servicios, sin embargo como en ella y en todas las nubes hay algunas advertencias que debemos tener en cuenta como se aprecia en el informe de gartner pues estos servicios tienen diferentes formas de cobrar y es necesario conocerlos, a continuación mostraré algunos servicios de los más conocidos y algunos tips para tenerlos en cuenta a la hora de usarlos

Figura 1: Posición líder de AWS obtenido de https://www.gartner.com/doc/reprints?id=1-271OE4VR&ct=210802&st=sb

Facturación

Es una de las cosas más importantes a la hora de usar servicios cloud, tener un presupuesto y poder lograr respetarlo depende de que tan bien se conoce como se cobran los servicios contratados, todos los servicios contratados en las diferentes nubes disponen de su documentación, en este caso AWS tiene para cada producto su documentación de precio , sin embargo algunos productos es un poco más complejo calcular su costo dependiendo de uso, por ello se puede complementar con la calculadora  que de hecho ahorita tiene un nuevo diseño, pero aun así siempre es mejor prevenir y debido a esto nos encontramos con cloudwatch eso sí debe configurarse de la manera correcta si no se quiere estar en la situación de la Figura 2

Figura 2 : Cloudwatch configurado de manera errónea obtenida de https://dzone.com/articles/cloud-comic-amazon-cloudwatch-on-aws-free-tier 

Cloudwatch como su nombre lo indica es un servicio que nos sirve para vigilar nuestros recursos alojados en AWS (es un servicio que también se paga) una de las métricas que se pueden auditar son los costos y entre ellos se pueden generar alertas a partir de un consumo para enviar un correo cuando se lleguen a estas metas, veamos desde la plataforma gráfica como se podría configurar

Figura 3:  Alarmas en AWS con CloudWatch

En la gráfica anterior se crea una línea roja  que indica que cuando el consumo sobrepase ese "techo" enviará un correo generando una advertencia, también tenemos un tablero para visualizar nuestras alarmas y conocer el estado de estas alarmas como se ve en la siguiente Figura

Figura 4:  Tablero de alertas de alarmas de consumo de recursos económicos

como mencione anteriormente cloudwatch no es gratis, y su costo dependen de su uso aquí pueden ver una descripción y ejemplos de pagos

AWS SES

SES es un servicio especializado es muy bueno para envío de correo sin embargo  hay que tener mucho cuidado con los diferentes ambientes que se tienen, pues AWS SES después de verificar un correo que utilizará para enviar mensajes, permite enviar mensajes a cualquier email por lo tanto cualquier descuido con las variables de entorno puede conllevar a enviar correos a clientes que no se desea enviar (si me paso), para esto existen en las diferentes zonas en donde la zona de producción solo se use para su objetivo, los demás ambientes como QA o DEV se ubican en zonas "jaulas" donde el envío del correo es por listas blancas, por ende cualquier correo que no esté en la lista no se enviará, veamos un ejemplo usando python

def send_email(email_message: EmailMessage):
    client = boto3.client("sesv2")
    response = client.send_email(
        FromEmailAddress="jairo@eceleris.com",
        Destination={
            "ToAddresses": ["jairo@eceleris.com"],
        },
        Content={"Raw": {"Data": email_message.as_string()}},
    )

cuando tenemos ambientes de pruebas de integración y se está probando el servicio claramente no queremos enviar los correos o que se vaya a filtrar un correo y envíe algún correo a algún cliente real, por ende para  ello en nuestra configuración normalmente en un archivo de tipo .env se cargará la siguiente configuración

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=

AWS_DEFAULT_REGION=us-east-2

En este caso utilizo la región de Ohio por que el SES de producción se encuentra en Virginia como se ve en la Figura

Figura 5: AWS SES en ambiente de prueba

adicionalmente con este sandbox se pueden utilizar emails de pruebas proporcionado por el mismo SES, este servicio también claramente tiene un costo para consultarlo pueden verlo aquí

RDS

RDS es un servicio para utilización de bases de datos, es un servicio especializado tiene su costo pero realmente es muy bueno y dependiendo de las necesidades se puede adaptar, una de las grandes ventajas que se puede lograr con este servicio es poder crear backups de manera automática y de forma sencilla utilizando AWS backup

Figura 6: Configuración de RDS para realizar backups

se puede tener también un dashboard que indica el estado de los backups y de los jobs que se han creado

Figura 7: Tablero de backups con AWS Backup

de esta manera se configura  sin demasiados problemas unas copias de seguridad que se realizan y almacenan por cierto tiempo, esto claramente se puede personalizar tanto como se desea y funciona para una gran cantidad de recursos, también esté recursos tiene su forma de cobrar

AWS S3

S3 es un servicio de guardado de información de archivos estáticos y también de copias de seguridad y otros datos, este servicio nos permite gestionar nuestros documentos y archivos de manera sencilla y a un precio bastante cómodo, hace un tiempo escribí un artículo sobre AWS S3 donde hablo un poco del tema y aclaró que una de las cosas a resaltar de este servicio es la capacidad de mover archivos a diferentes tipos de almacenamiento como se aprecia en la Figura  8

Figura 8: Ciclo de vida de un objeto en S3

esto permite que a medida que tus archivos van dejando de consultarse se puedan mover a diferentes tipos de clases de almacenamiento y lograr ahorrar en los costos, ya que este servicio cobra por GB almacenada mes por ejemplo en mi caso tengo mis archivos en clase estándar como se ve en la Figura 9, este tipo es general y funciona para consultas medianamente frecuentes pero sí a medida que pasa el tiempo estos archivos dejan de consultarse puede moverlo a una diferente donde las consultas son menos frecuentes y ahorrar en los costos los precios esto se puede apreciar aquí

Figura 9 : Clase de almacenamiento en AWS S3

Conclusión

AWS es una plataforma que ha venido ofreciendo servicios hace mucho tiempo y le ha permitido ganar bastante experiencia en como funciona este mercado, por eso la posicionan como líder en este sector, personalmente en términos de interfaz creo que pueda mejorar todavía recientemente se lanzó un nuevo diseño y esto ayuda a mejorar bastante la experiencia de usuario más sin embargo creo que deben aprender aun algunas cosas de Google Cloud en esta área, por otro lado para utilizarlo debe tenerse muy claro el manejo de costos por que muchos cobros se ignoran y estos se acumulan generando altos costos que no se tienen en cuenta por lo tanto las advertencias tempranas de consumo de recursos económicos es un muy buen aliado