Introducción a Amazon CloudFront
Amazon CloudFront es un servicio de red de entrega de contenido (CDN) que distribuye datos, videos, aplicaciones y API a los usuarios a nivel mundial con baja latencia y altas velocidades de transferencia. CloudFront se integra con otros servicios de AWS para proporcionar una solución escalable y segura para la entrega de contenido.
Conceptos Clave
- Distribución: Una distribución es la configuración que le dice a CloudFront desde dónde obtener el contenido y cómo entregarlo a los usuarios finales.
- Edge Locations: Son los puntos de presencia (PoPs) donde CloudFront almacena en caché copias de su contenido para una entrega más rápida a los usuarios.
- Origen: El origen es la ubicación desde donde CloudFront obtiene el contenido original. Puede ser un bucket de Amazon S3, un servidor HTTP, un servidor de medios, etc.
- Caché: CloudFront almacena en caché el contenido en las Edge Locations para reducir la carga en el origen y mejorar la velocidad de entrega.
Configuración de una Distribución de CloudFront
Paso 1: Crear una Distribución
- Accede a la Consola de Administración de AWS.
- Navega a CloudFront: En el menú de servicios, selecciona "CloudFront".
- Crear Distribución: Haz clic en "Create Distribution".
- Elegir el Tipo de Distribución: Selecciona "Web" para contenido web estático y dinámico.
Paso 2: Configurar el Origen
- Origen: Introduce el nombre del bucket de S3 o la URL del servidor HTTP que actuará como origen.
- Configuraciones Adicionales:
- Origin Path: Si deseas que CloudFront obtenga el contenido de una subcarpeta específica en el origen.
- Origin ID: Un identificador único para el origen.
Paso 3: Configurar la Caché y las Políticas de Distribución
-
Default Cache Behavior Settings:
- Path Pattern: Define qué rutas de URL deben coincidir con este comportamiento de caché.
- Viewer Protocol Policy: Selecciona si deseas permitir HTTP y HTTPS, solo HTTPS, etc.
- Allowed HTTP Methods: Define qué métodos HTTP (GET, POST, etc.) están permitidos.
- Cache Based on Selected Request Headers: Configura cómo CloudFront debe manejar los encabezados de solicitud.
-
Configuraciones Adicionales:
- TTL (Time to Live): Define cuánto tiempo CloudFront debe almacenar en caché los objetos.
- Forward Cookies: Configura cómo CloudFront debe manejar las cookies.
Paso 4: Configurar las Opciones de Distribución
- Price Class: Selecciona las regiones donde deseas que CloudFront entregue tu contenido.
- AWS WAF (Web Application Firewall): Opcionalmente, asocia una política de WAF para proteger tu contenido.
- Logging: Habilita el registro para monitorear las solicitudes a tu distribución.
Paso 5: Crear la Distribución
- Revisar y Crear: Revisa todas las configuraciones y haz clic en "Create Distribution".
- Propagación: La distribución puede tardar unos minutos en propagarse a todas las Edge Locations.
Ejemplo Práctico
Crear una Distribución de CloudFront para un Bucket de S3
import boto3 # Crear un cliente de CloudFront client = boto3.client('cloudfront') # Crear una distribución response = client.create_distribution( DistributionConfig={ 'CallerReference': 'unique-string', 'Origins': { 'Quantity': 1, 'Items': [ { 'Id': 'S3-origin', 'DomainName': 'mybucket.s3.amazonaws.com', 'S3OriginConfig': { 'OriginAccessIdentity': '' } } ] }, 'DefaultCacheBehavior': { 'TargetOriginId': 'S3-origin', 'ViewerProtocolPolicy': 'redirect-to-https', 'AllowedMethods': { 'Quantity': 2, 'Items': ['GET', 'HEAD'], 'CachedMethods': { 'Quantity': 2, 'Items': ['GET', 'HEAD'] } }, 'ForwardedValues': { 'QueryString': False, 'Cookies': { 'Forward': 'none' } }, 'MinTTL': 3600 }, 'Comment': 'My CloudFront Distribution', 'Enabled': True } ) print(response)
Explicación del Código
- boto3.client('cloudfront'): Crea un cliente de CloudFront utilizando boto3, la biblioteca de AWS para Python.
- create_distribution: Llama al método para crear una distribución de CloudFront.
- DistributionConfig: Proporciona la configuración de la distribución, incluyendo el origen, el comportamiento de caché y otras opciones.
Ejercicio Práctico
Ejercicio 1: Crear una Distribución de CloudFront
- Objetivo: Crear una distribución de CloudFront que sirva contenido desde un bucket de S3.
- Pasos:
- Accede a la consola de CloudFront.
- Crea una nueva distribución.
- Configura el origen como un bucket de S3.
- Configura las políticas de caché y distribución.
- Habilita la distribución y verifica que el contenido se sirva correctamente.
Solución
- Accede a la Consola de CloudFront.
- Crear Distribución: Haz clic en "Create Distribution".
- Configurar Origen: Introduce el nombre del bucket de S3.
- Configurar Caché: Define las políticas de caché y distribución.
- Habilitar Distribución: Revisa y crea la distribución.
Conclusión
En esta sección, hemos aprendido sobre Amazon CloudFront, un servicio de red de entrega de contenido que mejora la velocidad y la eficiencia de la entrega de contenido a los usuarios finales. Hemos cubierto cómo configurar una distribución de CloudFront, incluyendo la configuración del origen, las políticas de caché y las opciones de distribución. También hemos visto un ejemplo práctico de cómo crear una distribución utilizando boto3 y hemos proporcionado un ejercicio práctico para reforzar los conceptos aprendidos.
En el próximo módulo, exploraremos otros servicios de redes y entrega de contenido en AWS, como Amazon VPC y Elastic Load Balancing.
Curso de AWS
Módulo 1: Introducción a AWS
- ¿Qué es AWS?
- Configuración de tu cuenta de AWS
- Infraestructura global de AWS
- Consola de administración de AWS