Amazon Lightsail un esquema de costo fijo AWS
Tags: aws, cloud, cloudskills
Published: 2022-05-12 21:11:35

Una de las más grandes preocupaciones para los Líderes de TI y en general para los CFO de las empresas es como manejar los costos relacionados a la nube.  En este artículo vamos a revisar el servicio Amazon Lightsail un esquema de costo fijo AWS, en donde tu empresa se puede apalancar para dar el salto a la Nube de una forma controlada.

Amazon Lightsail, en más que un servicio, en realidad es un conjunto de servicios de AWS con la visión de tener un completo control de costos y una simplificación de administración.

El enfoque es poder acceder a una arquitectura de [CERO a failover](https://cloudioenabler.com/taller-en-aws/), con una reducción importante de complejidad en la configuración y un control completo de los costos, y claro, más la velocidad, rentabilidad y oportunidad de innovación que ofrece AWS para tu empresa.

## Una Arquitectura de CERO a failover

Para efectos de explicar los servicios de Amazon Lightsail, vamos a tomar como referencia la siguiente arquitectura que nos da alta disponibilidad y failover.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7pr9hq5rigrpi80sqvlh.png)

Evidentemente, la arquitectura puede ser mucho mejor y dependerá de tu requerimiento, pero vamos a asumirla como la deseada para una aplicación monolítica Web.

Vamos a empezar de atrás hacia adelante:

## Base de Datos

Amazon Lightsail nos ofrece el servicio de [Amazon RDS](https://cloudioenabler.com/introduccion-a-las-bases-de-datos-relacionales-en-amazon-rds/) para motores MySQL y PostgreSQL a un costo fijo, con varias opciones de rendimiento, que van desde 1 GB hasta 8 GB. 

Adicionalmente, una de las grandes ventajas es que Amazon RDS es una solución completamente administrada, es decir, no te encargas de instalar, administrar, parchear o respaldar la base de datos.

Una opción interesante que posibilita el Failover a través de su configuración Multi-AZ, en donde Amazon RDS se encargará automáticamente del switch en caso de falla.

## Servidores de Aplicación

Las instancias de servidores para tu aplicación Web, son aprovisionadas para tu caso de negocio con el servicio Amazon EC2, de igual forma con costo fijo, en donde puedes elegir instancias de entre 2 GB a 32 GB.

Te ofrece, además, la posibilidad de seleccionar el Sistema Operativo Linux más adecuado a tu aplicación, estando entre los principales: CentOS, Ubuntu y Amazon Linux 2.

Una de las ventajas, en mi opinión, es que te da la opción de la instalación optimizada de aplicaciones de Software más comunes en hosting como Wordpress, Joomla y Prestashop entre otros o, la instalación de Software necesario para tus aplicaciones Web como [LAMP](https://es.wikipedia.org/wiki/LAMP), Node.js o Nginx.

## Balanceador de Carga

Uno de los componentes claves de un esquema de alta disponibilidad es tener un balanceador de carga, que puede afrontar un eventual fallo de un servidor o gestionar alto tráfico de peticiones entre varios servidores.

Con Amazon Lightsail puedes aprovisionar un balanceador con la tecnología de su servicio [Elastic Load Balancer](https://aws.amazon.com/elasticloadbalancing/).

Este balanceador permitirá monitorear la salud de los servidores destino, balancear la carga y enrutar el tráfico con protocolos HTTP y HTTPS, y, de igual forma, tiene un costo fijo mensual para tu estrategia de costos fijos.

## CDN

Bien, como sabes, un [CDN](https://en.wikipedia.org/wiki/Content_delivery_network) nos ayuda a servir todos esos recursos que no cambian en nuestra aplicación Web como imágenes, hojas de estilo y librerías JavaScript.  Esto supone una gran ventaja, pues la experiencia del cliente al consumir la aplicación va a ser mucho más rápida en ese aspecto.

Amazon Lightsail nos ofrece una distribución CDN en la cual se va a almacenar en caché estos contenidos y serán servidor de forma acelerado a tu usuario dependiendo de la región del mundo, en los más de 300 data centers de AWS alrededor del mundo.

## Otros Servicios

Es importante mencionar que Amazon Lightsail también tiene la posibilidad de aprovisionar otros servicios que contribuyen a tu estrategia de arquitectura.  Así podemos mencionar a los siguientes:

## Contenedores

Amazon Lightsail te permite aprovisionar contenedores para servir tus aplicaciones.  Bajo una administración de costos fijos puedes aprovisionar nodos desde 512 MB hasta 8 GB de RAM, y, hasta 20 nodos por región, lo que te da la posibilidad de correr desde microservicios hasta aplicaciones completas contenerizadas.

El servicio te proporciona un endpoint del clúster de contenedores a donde puedes apuntar tus peticiones, abstrayéndote de toda la complejidad que puede significar aprovisionar y gestionar un [clúster de contenerización](https://cloudioenabler.com/introduccion-a-las-contenedores-en-aws/).

Cabe mencionar aquí, que puedes monitorear el clúster, incrementar su capacidad de manera automática o manual y sincronizar tus imágenes de contenedores con un servicio de registro como [Amazon ECR](https://aws.amazon.com/ecr/) u otro.

## Certificados SSL

Todos los endpoints tanto del CDN, balanceador de carga y clúster de servidores, suelen requerir, y se recomienda encarecidamente, el uso de protocolo HTTPS para su acceso.  Este requiere de generación de certificados SSL y su asociación con dominios de internet.

Para esto, Amazon Lightsail te permite crear los certificados, firmados por Amazon como entidad certificadora oficial, y asociarlos a estos dominios sin costo en cualquiera de sus servicios (incluso en los que no son a través de Amazon Lightsail) de forma amigable.

## IPs estáticas

A menudo, especialmente para backend se suele requerir tener IPs estáticas para los servidores aprovisionados, de manera que las instancias creadas, que al principio tienen una IP pública temporal, no pierdan su IP al ser recreadas por actualizaciones o mantenimiento.

En este caso, Amazon Lightsail te permitirá tener IPs estáticas para tu arquitectura y asociarlas a tus instancias cuando lo desees.  Es importante mencionar que las mismas no tienen costos siempre que están asociadas a una instancia.

## Emparejamiento con otros servicios de AWS

Sabemos que la arquitectura base de este artículo, no es la adecuada en muchos casos, y a menudo se quiere tener acceso a un NFS ([Amazon EFS](https://aws.amazon.com/efs/)), un almacenamiento de objetos como [Amazon S3](https://aws.amazon.com/s3/), otros servidores en Amazon EC2 o en general a otros servicios proporcionados por AWS.

Pensado en esto, Amazon Lightsail tiene la opción de activar la característica llamada VPC peering, la misma que permite a los recursos aprovisionados en Amazon Lightsail mirar a los recursos aprovisionados de toda la Nube AWS.

Esta configuración se activa desde la opción “Account → Advanced” de la consola de Amazon Lightsail y se empareja con la VPC por defecto de tu infraestructura en AWS normal.

## ¿Hasta donde usar Amazon Lightsail? 

Bueno, la idea siempre será optimizar costos, y mientras los mismos dentro de Amazon Lightsail sean menores a los causados con la misma arquitectura en el aprovisionamiento normal que llevaría en AWS, deberíamos considerar seguir con Amazon Lightsail.

Por otro lado, tenemos ciertos requerimientos que no van a poder ser cumplidos con Amazon Lightsail, como demanda de instancias HPC (cómputo de alto rendimiento), bases de datos propietarias como Oracle, SQLServer, etc., servicios de colas como SQS, etc. en donde sería mejor opción un esquema de aprovisionamiento normal en AWS.

La otra principal razón, en mi opinión, es la simplificación, pues una gestión de un esquema failover y de alta disponibilidad en aprovisionamiento normal en AWS, es mucho más complejo y demandante de conocimiento (empezando en como diseñar apropiadamente tu VPC), que hacerlo en Amazon Lightsail en donde hay muchas opciones por defecto que cubren el escenario.

## Conclusiones

En este artículo hemos mirado como la solución, Amazon Lightsail un esquema de costo fijo AWS, representa una opción para esas empresas que prefieren tener un control total de la inversión en la Nube.

Amazon Lightsail permite crear esquemas de arquitectura que incluye desde un simple servidor hasta un esquema completo de alta disponibilidad y failover para sus aplicaciones.

Además, Amazon Lightsail cuenta con opciones de contenerización, con lo cual podrías aprovisionar arquitecturas que requieran microservicios y escalamiento contenerizado, de forma automática o manual.

Por otro lado y muy importante, hemos visto como los servicios aprovisionados en Amazon Lightsail pueden convivir con tus servicios aprovisionados en toda la Nube AWS a través de VPC peering, lo que te da opciones para seguir usando los otros servicios que no incluye Amazon Lightsail como Amazon S3, Amazon EFS, AWS Lambda, Amazon Redshift, etc.

Amazon Lightsail no es para todas las arquitecturas, y habrá que evaluar en términos de costo y carga de gestión, si es más apropiado utilizar un esquema tradicional o el simplificado que nos ofrece este servicio.