Información general

Además de sus ventajas para el rendimiento, la seguridad y la disponibilidad de su aplicación web, CloudFront puede utilizarse para reducir los costos de la aplicación web. En primer lugar, el modelo de precios de CloudFront puede reducir los costos de origen. En segundo lugar, puede configurar CloudFront y diseñar su aplicación para reducir sus costos. Para obtener más información general sobre la optimización de costos con los servicios de AWS, consulte el pilar de optimización de costos del Marco de AWS Well-Architected. Para supervisar y comprender los costos, utilice el Explorador de costos de AWS y AWS Budgets.

Precios de CloudFront

El modelo de precios de CloudFront incluye múltiples dimensiones, de las cuales las dos más dominantes son las siguientes:

  • La transferencia saliente de datos (DTO) regionales a Internet, que representa la cantidad de GB que sirve CloudFront a los usuarios en Internet. Tenga en cuenta que este precio depende de la región de los usuarios, se mide mediante gigabytes binarios (es decir, 1 GB = 1024 MB) y solo incluye la carga útil de HTTP (por ejemplo, excluye la transferencia de datos de protocolo de enlace TLS).
  • Las tasas de solicitud, que tienen en cuenta el número de solicitudes HTTP(S) servidas por CloudFront. También depende de la región de los usuarios.

De forma predeterminada, CloudFront utiliza toda la red para entregar contenido y obtener el mejor rendimiento. Considere la posibilidad de configurar las opciones de Clase de precio en CloudFront si quiere lograr un equilibrio con los costos de entrega.

CloudFront tiene un nivel gratuito permanente, que incluye cada mes 1 TB de DTO y 10 millones de solicitudes HTTP(S). Si utiliza AWS WAF en combinación con CloudFront, considere un compromiso por adelantado con el Paquete de promociones en seguridad de CloudFront para ahorrar hasta un 30 % en los cargos de CloudFront. Para volúmenes mayores (10 TB o más), contacte con nosotros para obtener mayores reducciones a cambio de un mayor compromiso financiero, mediante la firma de un acuerdo de precios privado. Recuerde que el descuento que puede obtener es mayor cuando el promedio del tamaño de su tráfico total es más alto que el de los objetos HTTP entregados. Por lo tanto, se recomienda utilizar CloudFront para varias cargas de trabajo (entrega de API y entrega de archivos estáticos) para aumentar el descuento total que puede obtener en un acuerdo de precios privado.

Es importante tener en cuenta que, cuando se utiliza con un origen basado en AWS, la transferencia saliente de datos (DTO) de CloudFront sustituye a la DTO del origen. Por lo tanto, no paga la transferencia saliente de datos (DTO) del origen.

Por último, revise y optimice el uso de las características opcionales de CloudFront, que podrían generar costos adicionales, como la invalidación de contenido.

Optimización del costo de las invalidaciones en CloudFront

Según los precios de CloudFront, puede utilizar 1000 rutas para la invalidación cada mes sin cargo adicional. Además, se cobra 0,005 USD por ruta cuya anulación se solicite. Cualquier ruta incluida en la solicitud de anulación representa la dirección URL (o varias direcciones URL, si la ruta contiene un carácter comodín) del objeto que desea anular de la caché de CloudFront.

Tenga en cuenta las siguientes sugerencias para optimizar el costo de las invalidaciones mediante CloudFront:

  • Confíe en los mecanismos de control de caché HTTP (por ejemplo, encabezado Caché-Control de versiones de URL, solicitudes condicionales) de forma predeterminada, y elija las invalidaciones basadas en CDN para los casos de emergencia. Para obtener más información, lea este blog.
  • Utilice un comodín en las invalidaciones cuando sea necesario para invalidar varios archivos con una única solicitud de invalidación. Por ejemplo, utilice /stories/sports/worldcup* para invalidar todos los artículos relacionados con el evento Copa Mundial, en lugar de invalidarlos uno a uno.

Puede supervisar el uso de las invalidaciones y establecer alarmas mediante AWS Budgets.

Uso de CloudFront para reducir los costos de su aplicación web

CloudFront reduce de forma nativa los costos de su aplicación web al descargar su origen. En primer lugar, CloudFront atiende las solicitudes almacenables en caché desde su propia caché, lo que reduce los costos de escalado del origen. Puede optimizar su configuración de CloudFront para descargar aún más el origen al aumentar la tasa de aciertos de caché (por ejemplo, al habilitar Origin Shield). En segundo lugar, CloudFront reutiliza las conexiones TCP/TLS a su origen para solicitudes dinámicas (por ejemplo, llamadas a la API), lo que reduce el número de conexiones nuevas que debe gestionar el origen y la cantidad de certificados TLS que salen del origen. Esto reduce los costos de orígenes como ALB porque se reduce el consumo de LCU gracias al menor número de conexiones recién establecidas por segundo y al número de bytes procesados.

Puede configurar CloudFront para reducir aún más los costos de diferentes maneras. Por ejemplo, comprima los archivos de texto mediante GZIP o Brotli para reducir la DTO. Otro ejemplo, cuando la aplicación necesita funciones de periferia, se recomienda utilizar CloudFront Functions cuando corresponda, ya que es menos costoso que Lambda@Edge. Obtenga información sobre las prácticas recomendadas para optimizar las funciones de periferia y reducir los costos.

Por último, se recomienda utilizar el encabezado estándar Cache-Control para controlar la actualización de la caché en lugar de utilizar invalidaciones como parte de las operaciones normales. El mecanismo Cache-Control es más confiable, puede controlar el almacenamiento en caché en el navegador y no tiene ningún costo (en comparación con las invalidaciones de CloudFront, más allá de las cuotas de 1000 invalidaciones al mes). Utilice las invalidaciones para casos de emergencia.

Optimización de AWS WAF

El componente dominante en el costo de AWS WAF, por lo general, son las cuotas de solicitud. Puede reducir este costo de diferentes maneras:

  • Habilite AWS WAF exclusivamente en la distribución de CloudFront que requiera protección según su modelado de amenazas. Por ejemplo, si su contenido estático alojado en S3 no requiere protección de WAF, muévalo a un dominio independiente (por ejemplo, static.example.com) en una distribución de CloudFront independiente y habilite AWS WAF únicamente en la distribución principal (por ejemplo, www.example.com) que sirve sus archivos HTML.
  • Cuando se suscribe a Shield Avanzado, las tarifas de solicitud de AWS WAF se incluyen en el precio de Shield Avanzado. Shield Avanzado cobra una suscripción mensual y una tarifa prémium por la transferencia saliente de datos de su aplicación. Si la aplicación hace un uso intensivo de las solicitudes (muchas solicitudes por segundo con una carga útil media baja, por ejemplo, con API), la activación de Shield Avanzado puede ayudarle a reducir los costos generales de WAF.
  • Por último, algunas reglas de AWS WAF tienen costos adicionales, como CAPTCHA, el Control de bots de AWS o reglas administradas por proveedores en AWS Marketplace. Optimice estos costos mediante la delimitación de dichas reglas a condiciones específicas (por ejemplo, solo CAPTCHA en IP sospechosas o solo aplicar el Control de bots en solicitudes HTML), y mediante el uso al final de la ACL web, lo que da la oportunidad a las reglas gratuitas anteriores de bloquear peticiones maliciosas sin costo adicional. Lea este blog para obtener una explicación más detallada de las optimizaciones de costos de las reglas de WAF.

Optimización de aplicaciones

En la aplicación, existen técnicas que puede implementar para reducir los costos de entrega de CloudFront. Tenga en cuenta las siguientes técnicas:

  • Aproveche el almacenamiento en caché del navegador para reducir la cantidad de solicitudes entregadas por CloudFront.
  • Implemente ETags en los objetos para permitir solicitudes condicionales. Las actualizaciones de objetos con respuestas 304 Not Modified son más baratas de entregar en comparación con las recuperaciones completas.
  • Implemente la optimización de imágenes para comprimir imágenes con formatos modernos como WebP y Avif. Además, haga una carga lenta de las imágenes de su sitio web para evitar descargar las que los navegadores no renderizan.
  • Implemente la transmisión de velocidad de bits adaptativa para la distribución de video. Considere la codificación de video QVBR. Considere la posibilidad de ofrecer una escala de renderización optimizada en función del tipo de dispositivo. En este blog, se explica este concepto, aunque se escribió a través de Lambda@Edge antes de lanzar CloudFront Functions.
  • Si es posible, utilice una política de mismo origen para las llamadas a la API, que elimina el costo de las solicitudes CORS OPTION anteriores a la comprobación. Lea este blog para obtener más información.
  • Considere todas las opciones de registro y seleccione la que le resulte más rentable. Los registros de acceso estándar de CloudFront se proporcionan sin cargos adicionales, pero se aplican a todo su tráfico. Por el contrario, los registros en tiempo real de CloudFront se configuran de forma granular por comportamiento de la caché de CloudFront y por campo requerido por un cargo incremental. WAF ofrece varias opciones de registro, la más rentable es la basada en Kinesis Firehose. Tenga en cuenta que puede filtrar las solicitudes registradas en función de dimensiones como la acción de la regla o la etiqueta emitida.

Recursos

¿Le resultó útil esta página?