Logre una escalabilidad rentable: optimice los precios de AWS ELB con CloudSpend

Amazon Elastic Load Balancing (ELB) es un servicio de equilibrio de carga que distribuye de forma automática y uniforme el tráfico entrante de las aplicaciones del cliente a través de varias instancias de servidor virtual —como instancias de Amazon EC2, contenedores o direcciones IP— en diferentes zonas de disponibilidad. Maneja sin problemas el failover y la indisponibilidad de la instancia del servidor. Esto aumenta la tolerancia de la aplicación a los fallos.

Tipos de AWS ELB

Amazon proporciona cuatro tipos principales de balanceadores de carga. Cada uno proporciona escalamiento automático, alta disponibilidad, robustez y seguridad.

∙ El balanceador de carga de aplicación (ALB) se utiliza para tomar decisiones de enrutamiento basadas en el contenido de la solicitud, como las cabeceras HTTP/HTTPS. Funciona en la capa de aplicación. Es decir, la capa 7 del modelo de interconexión de sistemas abiertos (OSI).

∙ El balanceador de carga de red (NLB) maneja el tráfico TCP, UDP y TLS. También lo distribuye uniformemente sin importar el contenido recibido en la solicitud. Funciona en la capa de transporte. Es decir, la capa 4 del modelo de OSI.

∙ El balanceador de carga de gateway (GLB) ayuda a implementar, gestionar y escalar dispositivos virtuales de terceros. También distribuye el tráfico entre ellos. Funciona en la capa de red (capa 3) del modelo de OSI. Proporciona alta disponibilidad al eliminar las posibles zonas de fallo en la red. Estos dispositivos virtuales son probados y comprados por proveedores directamente en AWS Marketplace.

∙ El balanceador de carga clásico (CLB) funciona en los niveles de solicitud y conexión. Distribuye el tráfico entre varias instancias EC2 que residen en una o más zonas de disponibilidad. El CLB utiliza características de la capa 7 para las aplicaciones HTTP/HTTPS. También puede utilizar características de la capa 4 para las aplicaciones basadas puramente en el protocolo TCP.

Explicación de los precios de varios ELB

La estructura de precios de CLB es bastante sencilla, ya que se basa en la cantidad de tráfico procesado por región. Mientras tanto, la estructura de precios de ALB, NLB y GLB tiende a ser más complicada gracias a una métrica especial llamada unidad de capacidad de balanceo de carga (LCU).

Esta métrica se calcula en función de ciertas dimensiones, tales como el número de nuevas conexiones realizadas por segundo, las conexiones activas por minuto o la cantidad de tráfico que se procesa. El número de LCU utilizadas por hora se determina en función de la dimensión con una tasa máxima de uso. Estas dimensiones son diferentes para cada balanceador de carga. Además, el costo de estos balanceadores de carga varía de una región a otra.

ALB

ALB calcula la factura del tráfico procesado en función del número de LCU utilizadas por hora u hora parcial para la que se estaba ejecutando el balanceador de carga. La estructura de precios de ALB incluye las siguientes dimensiones:

Dimensión

Descripción

Valor de una única LCU

Nuevas conexiones

Número de nuevas conexiones establecidas/segundo

25 nuevas conexiones/segundo

Conexiones activas

Número de conexiones activas/minuto

3.000 conexiones activas/minuto

Bytes procesados

Número de bytes (en GB/hora) procesados por el balanceador de carga para solicitudes HTTP/HTTPS

Si los objetivos son instancias EC2, direcciones IP o contenedores, 1GB/hora

Si los objetivos son funciones de Lambda, 0,4GB/hora

Evaluaciones de reglas

Producto del número de reglas procesadas por el balanceador de carga y la tasa de solicitud (menos 10 reglas gratis). Las primeras 10 reglas son gratis.

1.000 evaluaciones de reglas/segundo

 

Se incurren en cargos para ALB en función de la dimensión que consuma el número máximo de LCU en una hora.

Para la región Este de EE.UU. (Ohio):

∙ El cargo estándar por cada ALB por hora u hora parcial es de $0,0225.

∙ El cargo estándar por cada LCU por hora u hora parcial es de $0,008.

Para entender cómo funcionan los precios de ALB, supongamos que una aplicación recibe un promedio de cinco nuevas conexiones cada segundo y cada nueva conexión dura un minuto. Un cliente envía en promedio 10 solicitudes por segundo y procesa 1,5GB de datos por hora. Además, el balanceador de carga está configurado con 20 reglas para enrutar las solicitudes de los clientes. El costo de uso de ALB en la región Este de EE.UU. (Ohio) se determinará por lo siguiente:

∙ Nuevas conexiones por segundo

= nuevas conexiones dadas/nuevas conexiones proporcionadas por LCU

= 5/25

= 0,2 LCU

∙ Conexiones activas por minuto

= Conexiones activas dadas por minuto/conexiones activas proporcionadas por LCU

= (5 * 1 * 60)/3000

= 0,1 LCU

∙ Bytes procesados en GB por hora

= datos procesados por LCU/datos proporcionados por LCU

= 1,5/1

= 1,5 LCU

∙ Evaluación de reglas por segundo

= (tasa de solicitud * (número de reglas procesadas por LCU – 10 reglas gratis))/evaluaciones de reglas proporcionadas por LCU

= (10 * (20 – 10))/1000

= 0,1 LCU

En este ejemplo, la dimensión de bytes procesados consume el número máximo de LCU. Es decir, 1,5 LCU.

∙ Número total de LCU utilizadas = 1,5

∙ Costo total de uso de LCU por hora

= Número de LCU consumidas * cargo de LCU estándar por hora

= 1,5 LCU * $0,008

= $0,84

∙ Costo total de uso de ALB por mes

= (costo de LCU por hora + cargo de ALB estándar por hora) * número de horas en un mes

= ($0,84 + $0,0225) * 30 días * 24 horas

= $13,608

Como resultado, la factura mensual de AWS para el uso de ALB para este caso en particular será por un total de $13.608.

NLB

El uso de NLB se factura en función de las unidades de capacidad de carga de red (NLCU) consumidas por hora u hora parcial. La estructura de precios de NLB incluye las siguientes dimensiones: 

 

Dimensión

 

Descripción

Valor de una única NLCU

TCP

UDP

TLS

Nuevas conexiones o flujos

Número de nuevas conexiones o flujos establecidos/segundo

800

400

50

Conexiones o flujos activos

Número de conexiones activas o flujos/minuto

100.000

50.000

3.000

Bytes procesados

Número de bytes (en GB/hora) procesados por el equilibrador de carga

1 GB

1 GB

1 GB

El costo de uso de NLB se genera en función de la dimensión que consuma el número máximo de NLCU en una hora.

Para la región Este de EE.UU. (Ohio):

∙ El cargo estándar por cada NLB por hora u hora parcial es de $0,0225.

∙ El cargo estándar por cada NLCU por hora u hora parcial es de $0,006.

Por ejemplo, supongamos que una aplicación recibe en promedio 10 nuevas conexiones TCP por segundo. Cada conexión permanece activa durante 3 minutos y procesa 100 bytes de datos. El costo de uso de NLB en la región Este de EE.UU. (Ohio) se determinará por lo siguiente:

∙ Nuevas conexiones o flujos TCP por segundo

= Nuevas conexiones TCP dadas/nuevas conexiones TCP proporcionadas por NLCU

= 10/800

= 0,0125 NLCU

∙ Conexiones TCP activas por minuto

= Conexiones TCP activas dadas por minuto/conexiones TCP activas proporcionadas por NLCU

= (10 * 3 * 60)/100000

= 0,018 NLCU

∙ Datos procesados por NLCU en GB por hora

= nuevas conexiones TCP por segundo * datos procesados por cada conexión TCP en GB * número de segundos en 1 hora

= (10 * 1000 bytes/(1000 * 1000 * 1000)) * 3600)

= 0,036 GB por hora

∙ Bytes procesados en GB por hora

= datos procesados por NLCU/datos proporcionados por NLCU

= 0,036/1

= 0,036 NLCU

En este ejemplo, la dimensión de bytes procesados consume el número máximo de NLCU. Es decir, 0,036 NLCU.

∙ Número total de NLCU utilizadas = 0,036

∙ Costo total de uso de NLCU por hora

= Número de NLCU consumidas * cargo de NLCU estándar por hora

= 0,036 NLCU * $0,006

= $0,000216

∙ Costo total de uso de NLB por mes

= (costo de NLCU por hora + cargo de NLB estándar por hora) * número de horas en un mes

= ($0,000216 + $0,0225) * 30 días * 24 horas

= $16,355

Como resultado, la factura mensual de AWS para el uso de NLB para este caso en particular será por un total de $16,355.

GLB

La estructura de precios de GLB tiene una tarifa por hora estándar por región basada en el número de unidades de capacidad de carga de gateway (GLCU). Estas son las dimensiones utilizadas para calcular GLCU:

Dimensión

Descripción

Valor de una única GLCU

Nuevas conexiones o flujos

Número de nuevas conexiones o flujos establecidos/segundo

600 nuevas conexiones/segundo

Conexiones o flujos activos

Número de conexiones simultáneas activas o flujos muestreados/minuto

60.000 conexiones activas/minuto

Bytes procesados

Número de bytes (en GB/hora) procesados por el equilibrador de carga

Si los objetivos son instancias EC2, direcciones IP o contenedores, 1GB/hora

Si los objetivos son funciones de Lambda, 1GB/hora

 

El costo de uso de GLB se genera en función de la dimensión que consuma el número máximo de GLCU en una hora.

Para la región Este de EE.UU. (Ohio):

∙ El cargo estándar por cada GLB por hora u hora parcial es de $0,0125.

∙ El cargo estándar por cada GLCU por hora u hora parcial es de $0,004.

∙ El cargo estándar para los datos procesados por GB para el endpoint es de $0,0035.

∙ El cargo estándar para cada endpoint por hora es de $0,01.

Por ejemplo, supongamos que GLB está configurado para manejar la implementación de una sola zona y recibe 30 nuevas conexiones por segundo. Cada conexión dura 10 minutos y consume 1KB de datos. Supongamos también que los objetivos son funciones de AWS Lambda. El costo de uso de GLB en la región Este de EE.UU. (Ohio) se determinará por lo siguiente:

∙ Nuevas conexiones o flujos por segundo

= nuevas conexiones dadas/nuevas conexiones proporcionadas por GLCU

= 30/600

= 0,05 GLCU

∙ Conexiones activas por minuto

= Conexiones activas dadas por minuto/conexiones activas proporcionadas por GLCU

= (30 * 10 * 60)/60000

= 0,3 GLCU

∙ Datos procesados por GLCU en GB por hora

= nuevas conexiones por segundo * datos procesados por cada conexión en GB * número de segundos en una hora

= 30 * (1KB/(1000 * 1000) * 3600

= 0,108GB por hora

∙ Bytes procesados en GB por hora

= datos procesados por GLCU/datos proporcionados por GLCU

= 0,108/0,4

= 0,27 GLCU

En este ejemplo, la dimensión de conexiones activas consume el número máximo de GLCU. Es decir, 0,3 GLCU.

∙ Número total de GLCU utilizadas = 0,3

∙ Costo total de uso de GLCU por hora

= número de GLCU consumidas * cargo de GLCU estándar por hora

= 0,3 * $0,004

= $0,0012

∙ Costo de endpoint de GLB por hora

= número de endpoints * cargo de endpoint estándar por hora

= 1 * $0,01

= $0,01

∙ Costo de procesamiento de datos de GLB de endpoint por hora

= datos procesados en GB por hora *cargo de procesamiento de datos de endpoint estándar por hora

= 0,27 * $0,0035

= $0,000945

∙ Costo total de uso de GLB por mes

= (costo de GLCU por hora + costo de endpoint de GLB por hora + costo de procesamiento de datos de endpoint de GLB por hora + cargo de GLB estándar por hora) * número de horas en un mes

= ($0,0012 + $0,01 + $0,000945 + $0,0125) * 30 días * 24 horas

= $8,744

Como resultado, la factura mensual de AWS para el uso de GLB será por un total de $8,744.

CLB

AWS cobra por CLB por hora u hora parcial según la región a una tarifa estándar por GB para los datos transferidos por el balanceador de carga. La estructura de precios de CLB no incluye la métrica de LCU.

Para la región Este de EE.UU. (Ohio):

∙ El cargo estándar por cada CLB por hora es de $0,025.

∙ El cargo estándar de procesamiento de datos por hora es de $0,008.

Para nuestro ejemplo, supongamos que un CLB maneja el enrutamiento de tráfico de varias instancias de AWS EC2 y consume 1GB de datos por hora.

∙ Costo total de uso de CLB por mes

= ((datos procesados por CLB * cargo de procesamiento de datos estándar por hora) + cargo de CLB estándar por hora) * número de horas en un mes

= ((1 GB * $0,008) + $0,025) * 30 días * 24 horas

= $23,76

Como resultado, la factura mensual de AWS para el uso de CLB para este caso en particular será por un total de $23,76.

Optimización de los costos de ELB

Cada uno de estos balanceadores de carga sigue su propio modelo de precios. El costo de uso del balanceador de carga varía según la configuración de la infraestructura. Entre estos cuatro balanceadores de carga, CLB es el más asequible. Esto se debe a que su costo depende de su tiempo de actividad y la cantidad de tráfico procesado.

Los otros tres balanceadores de carga son comparativamente costosos, ya que su modelo de precios se basa en las LCU consumidas. NLB tiene el costo de uso más alto entre los balanceadores de carga cubiertos en esta guía. Esto se debe a que calcula el costo basado en el número fijo de LCU consumidas y los GB de datos procesados por hora, al igual que otros balanceadores de carga. Sin embargo, también cobra por el uso adicional.

Al seleccionar el mejor y más asequible balanceador de carga, es importante considerar las necesidades de su aplicación comparando las funciones clave proporcionadas por cada balanceador. Lo ideal es comprobar primero los precios del balanceador de carga usando la calculadora de precios de AWS antes de tomar una decisión.

Usar CloudSpend para optimizar los costos de ELB

ManageEngine creó CloudSpend, su herramienta de gestión de costos en la nube, para que los clientes gestionen de manera eficiente los costos en la nube implementando técnicas de optimización como contracargos, reserva de capacidad y ajuste del tamaño de recursos.

CloudSpend proporciona un procesamiento de facturas automatizado para facilitar la optimización de costos de AWS. Esta función de procesamiento de facturas automatizado proporciona una visibilidad profunda de los costos de AWS al extraer las categorías de costos necesarias. Estas incluyen el tipo de transferencia de datos, el tipo de operación, el tipo de uso, la región y la zona de disponibilidad.

CloudSpend también proporciona una función para analizar informes de gastos mensuales y anuales. Esto hace que sea más fácil entender la facturación de AWS y realizar un seguimiento de la distribución de costos por región, tipo de instancia, transferencia de datos y más.