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

  1. Accede a la Consola de Administración de AWS.
  2. Navega a CloudFront: En el menú de servicios, selecciona "CloudFront".
  3. Crear Distribución: Haz clic en "Create Distribution".
  4. Elegir el Tipo de Distribución: Selecciona "Web" para contenido web estático y dinámico.

Paso 2: Configurar el Origen

  1. Origen: Introduce el nombre del bucket de S3 o la URL del servidor HTTP que actuará como origen.
  2. 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

  1. 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.
  2. 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

  1. Price Class: Selecciona las regiones donde deseas que CloudFront entregue tu contenido.
  2. AWS WAF (Web Application Firewall): Opcionalmente, asocia una política de WAF para proteger tu contenido.
  3. Logging: Habilita el registro para monitorear las solicitudes a tu distribución.

Paso 5: Crear la Distribución

  1. Revisar y Crear: Revisa todas las configuraciones y haz clic en "Create Distribution".
  2. 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

  1. Objetivo: Crear una distribución de CloudFront que sirva contenido desde un bucket de S3.
  2. 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

  1. Accede a la Consola de CloudFront.
  2. Crear Distribución: Haz clic en "Create Distribution".
  3. Configurar Origen: Introduce el nombre del bucket de S3.
  4. Configurar Caché: Define las políticas de caché y distribución.
  5. 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.

© Copyright 2024. Todos los derechos reservados