Uso de varios orígenes con distribuciones de CloudFront
Cuando cree una distribución, especifique el origen al que CloudFront envía las solicitudes de los archivos. Puede utilizar varios tipos de orígenes con CloudFront. Por ejemplo, puede utilizar un bucket de Amazon S3, un contenedor MediaStore, un canal MediaPackage, un Application Load Balancer o una URL de función AWS Lambda.
Temas
Uso de un bucket de Amazon S3
En los siguientes temas se describen las diferentes formas en que puede utilizar un bucket de Amazon S3 como origen para una distribución de CloudFront.
Temas
Uso de un bucket de Amazon S3 estándar
Cuando utiliza Amazon S3 como origen para su distribución, coloque los objetos que desee que CloudFront entregue en un bucket de Amazon S3. Puede utilizar cualquier método admitido por Amazon S3 para incorporar sus objetos a Amazon S3. Por ejemplo, puede utilizar la consola o la API de Amazon S3, o una herramienta de terceros. Puede crear una jerarquía en su bucket para almacenar los objetos, del mismo modo que lo haría con cualquier otro bucket de Amazon S3 estándar.
El uso de un bucket de Amazon S3 ya existente como su servidor de origen de CloudFront no cambia el bucket en absoluto. Puede utilizarlo como lo haría normalmente para almacenar y obtener acceso a los objetos de Amazon S3 a precios estándar de Amazon S3. Se le cobrarán los cargos habituales de Amazon S3 por almacenar los objetos en el bucket. Para obtener más información acerca de los cargos por usar CloudFront, consulte Precios de Amazon CloudFront
importante
Para que su bucket pueda funcionar con CloudFront, el nombre debe cumplir los requisitos de nomenclatura de DNS. Para obtener más información, consulte Reglas para nombrar buckets en la Guía del usuario de Amazon Simple Storage Service.
Cuando especifique un bucket de Amazon S3 como origen para CloudFront, le recomendamos que utilice el siguiente formato:
bucket-name
.s3.region
.amazonaws.com
Cuando especifique el nombre del bucket en este formato, puede utilizar las siguientes características de CloudFront:
-
Configure CloudFront para que se comunique con su bucket de Amazon S3 mediante SSL/TLS. Para obtener más información, consulte Uso de HTTPS con CloudFront.
-
Utilice un control de acceso de origen para solicitar que los lectores obtengan acceso al contenido utilizando la URL de CloudFront, y no mediante las URL de Amazon S3. Para obtener más información, consulte Restricción del acceso a un origen de Amazon Simple Storage Service.
-
Actualice el contenido de su bucket mediante el envío de las solicitudes
POST
yPUT
a CloudFront. Para obtener más información, consulte Métodos HTTP en el tema Cómo CloudFront procesa y reenvía solicitudes a su origen de Amazon S3.
No especifique el bucket con los siguientes formatos:
-
El estilo de ruta de Amazon S3:
s3.amazonaws.com/
bucket-name
-
El CNAME de Amazon S3
Uso de Amazon S3 Object Lambda
Al crear un punto de acceso de Object Lambda, Amazon S3 genera automáticamente un alias único para el punto de acceso de Object Lambda. Puede utilizar este alias en lugar de un nombre de bucket de Amazon S3 como origen para la distribución de CloudFront.
Cuando utilice un alias de punto de acceso de Object Lambda como origen para CloudFront, le recomendamos que utilice el siguiente formato:
alias
.s3.region
.amazonaws.com
Para obtener más información acerca de cómo encontrar el
, consulte Cómo usar un alias de estilo bucket para el punto de acceso de Object Lambda de bucket de S3 en la Guía del usuario de Amazon S3.alias
importante
Cuando utilice un punto de acceso de Object Lambda como origen para CloudFront, debe utilizar el control de acceso de origen.
Para ver un ejemplo de caso de uso, consulte Uso de Amazon S3 Object Lambda con Amazon CloudFront para personalizar el contenido para los usuarios finales
CloudFront trata un origen de punto de acceso de Object Lambda de la misma manera que un origen de bucket de Amazon S3 estándar.
Si utiliza Amazon S3 Object Lambda como origen para la distribución, debe configurar los cuatro permisos siguientes.
Uso de puntos de acceso de Amazon S3
Al usar un punto de acceso de S3, Amazon S3 genera automáticamente un alias único para usted. Puede utilizar este alias en lugar de un nombre de bucket de Amazon S3 como origen para la distribución de CloudFront.
Cuando utilice un alias de punto de acceso de Amazon S3 como origen para CloudFront, le recomendamos que utilice el siguiente formato:
alias
.s3.region
.amazonaws.com
Para obtener más información acerca de cómo encontrar el
, consulte Uso de un alias de estilo de bucket para su punto de acceso de bucket de S3 en la Guía del usuario de Amazon S3.alias
importante
Cuando utilice un punto de acceso de Amazon S3 como origen para CloudFront, debe utilizar el control de acceso de origen.
CloudFront trata un origen de Punto de acceso de Amazon S3 de la misma manera que un origen de bucket de Amazon S3 estándar.
Al utilizar Amazon S3 Object Lambda como origen para la distribución, se deben configurar los dos permisos siguientes.
Uso de un bucket de Amazon S3 configurado como punto de conexión del sitio web
Puede usar un bucket de Amazon S3 que está configurado como punto de conexión del sitio web como un origen personalizado con CloudFront. Al configurar su distribución de CloudFront, para el origen, escriba el punto de enlace de alojamiento de sitio web estático de Amazon S3 para el bucket. Este valor aparecerá en la consola de Amazon S3
http://
bucket-name
.s3-website-region
.amazonaws.com
Para obtener más información sobre cómo especificar los puntos de enlace de sitios web estáticos de Amazon S3, consulte Website endpoints (Puntos de enlace de sitio web) en la Guía del usuario de Amazon Simple Storage Service.
Al especificar el nombre del bucket en este formato como origen, puede utilizar redireccionamientos y documentos de error personalizados de Amazon S3. Para obtener más información, consulte Configuración de un documento de error personalizado y Configuración de una redirección en la Guía del usuario de Amazon Simple Storage Service. (CloudFront también ofrece páginas de error personalizadas; para obtener más información, consulte Creación de una página de error personalizada para códigos de estado HTTP específicos).
El uso de un bucket de Amazon S3 como servidor de origen de CloudFront no cambia el bucket de ninguna manera. Puede seguir utilizándolo como lo haría normalmente y se le cobrarán los cargos normales de Amazon S3. Para obtener más información acerca de los cargos por usar CloudFront, consulte Precios de Amazon CloudFront
nota
Si utiliza la API de CloudFront para crear su distribución con un bucket de Amazon S3 configurado como punto de enlace de un sitio web, debe configurarlo mediante CustomOriginConfig
, aunque el sitio web esté alojado en un bucket de Amazon S3. Para obtener más información acerca de la creación de distribuciones mediante la API de CloudFront, consulte CreateDistribution en la Referencia de la API de Amazon CloudFront.
Adición de CloudFront a un bucket de Amazon S3 existente
Si almacena sus objetos en un bucket de Amazon S3, puede permitir que los usuarios obtengan acceso a sus objetos directamente desde S3 o puede configurar CloudFront para obtener sus objetos desde S3 y distribuirlos después a los usuarios. Usar CloudFront puede ser más rentable si sus usuarios obtienen acceso a sus objetos frecuentemente porque si el uso es elevado, el precio de transferencia de datos de CloudFront es menor que el de Amazon S3. Además, las descargas son más rápidas con CloudFront que con solo Amazon S3 porque sus objetos se almacenan más cerca de sus usuarios.
nota
Si desea que CloudFront respete la configuración de uso compartido de recursos de origen cruzado de Amazon S3, configure CloudFront para que reenvíe el encabezado Origin
a Amazon S3. Para obtener más información, consulte Almacenamiento en caché de contenido en función de encabezados de solicitud.
Si actualmente distribuye contenido directamente desde el bucket de Amazon S3 con su nombre de dominio propio (como example.com) en lugar del nombre de dominio del bucket de Amazon S3 (como amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com), puede agregar CloudFront sin interrupciones con el siguiente procedimiento.
Para agregar CloudFront cuando ya esté distribuyendo su contenido desde Amazon S3
-
Crear una distribución de CloudFront. Para obtener más información, consulte Creación de una distribución.
Al crear la distribución, especifique el nombre de su bucket de Amazon S3 como servidor de origen.
importante
Para que su bucket pueda funcionar con CloudFront, el nombre debe cumplir los requisitos de nomenclatura de DNS. Para obtener más información, consulte Reglas para nombrar buckets en la Guía del usuario de Amazon Simple Storage Service.
Si está utilizando un CNAME con Amazon S3, especifique también el CNAME de su distribución.
-
Cree una página web de prueba que contenga enlaces a objetos legibles públicamente en su bucket de Amazon S3 y pruebe dichos enlaces. Para esta prueba inicial, utilice el nombre de dominio de CloudFront de su distribución en las URL de sus objetos, por ejemplo,
https://d111111abcdef8.cloudfront.net/images/image.jpg
.Para obtener más información acerca del formato de las URL de CloudFront, consulte Personalización del formato de URL para archivos en CloudFront.
-
Si utiliza CNAME de Amazon S3, la aplicación usa su nombre de dominio (por ejemplo, example.com) para hacer referencia a los objetos del bucket de Amazon S3 en lugar de utilizar el nombre del bucket (por ejemplo, amzn-s3-demo-bucket.s3.amazonaws.com). Para seguir utilizando su nombre de dominio para hacer referencia a objetos en lugar de usar el nombre de dominio de CloudFront de su distribución (por ejemplo, d111111abcdef8.cloudfront.net), debe actualizar la configuración con su proveedor de servicios de DNS.
Para que los CNAME de Amazon S3 funcionen, su proveedor de servicios de DNS debe tener un conjunto de registros de recursos de CNAME para su dominio que actualmente dirija las consultas del dominio a su bucket de Amazon S3. Por ejemplo, si un usuario solicita este objeto:
https://example.com/images/image.jpg
la solicitud se redirige automáticamente y el usuario ve este objeto:
https://
amzn-s3-demo-bucket
.s3.amazonaws.com/images/image.jpgPara dirigir consultas a su distribución de CloudFront en lugar a de su bucket de Amazon S3, deberá utilizar el método proporcionado por su proveedor de servicios DNS para actualizar el conjunto de registros de recursos de CNAME de su dominio. Este registro de CNAME actualizado redirige consultas de DNS de su dominio al nombre de dominio de CloudFront de su distribución. Para obtener más información, consulte la documentación de su proveedor de servicios de DNS.
nota
Si utiliza Route 53 como servicio de DNS, puede utilizar un conjunto de registros de recursos de CNAME o un conjunto de registros de recursos de alias. Para obtener información acerca de la edición de conjuntos de registros de recursos, consulte Edición de registros. Para obtener información sobre los conjuntos de registros de recursos de alias, consulte Elección entre registros de alias y sin alias. Ambos temas se encuentran en la Guía para desarrolladores de Amazon Route 53.
Para obtener más información acerca del uso de CNAME con CloudFront, consulte Uso de URL personalizadas añadiendo nombres de dominio alternativos (CNAME).
Después de actualizar el conjunto de registros de recursos de CNAME, la propagación a lo largo del sistema DNS puede tardar hasta 72 horas, aunque suele ser más rápida. Durante este tiempo, algunas de las solicitudes de contenido seguirán dirigiéndose a su bucket de Amazon S3 y otras se dirigirán a CloudFront.
Traslado de un bucket de Amazon S3 a otra Región de AWS
Si utiliza Amazon S3 como origen de una distribución de CloudFront y cambia el bucket de Región de AWS, CloudFront puede tardar hasta una hora en actualizar sus registros para usar la nueva región si las dos condiciones siguientes se cumplen:
-
Utiliza una identidad de acceso de origen (OAI) de CloudFront para restringir el acceso al bucket
-
Cambia el bucket de Amazon S3 a una región que requiera autenticación mediante Signature Version 4
Cuando utiliza OAI, CloudFront utiliza la región (entre otros valores) para calcular la firma que se utiliza para solicitar los objetos de su bucket. Para obtener más información acerca de OAI, consulte Uso de una identidad de acceso de origen (heredado, no recomendado). Para obtener una lista de Regiones de AWS que admiten Signature Version 2, consulte Proceso de firma de Signatura Version 2 en la Referencia general de Amazon Web Services.
Para forzar una actualización más rápida de los registros de CloudFront, puede actualizar su distribución de CloudFront, por ejemplo, con la actualización del campo Descripción en la pestaña General de la consola de CloudFront. Cuando usted actualiza una distribución, CloudFront comprueba inmediatamente la región en la que se encuentra su bucket. La propagación del cambio a todas las ubicaciones de borde debería durar solo unos minutos.
Uso de un contenedor de MediaStore o un canal de MediaPackage
Para transmitir vídeo mediante CloudFront, puede configurar un bucket de Amazon S3 configurado como contenedor MediaStore o crear un canal y puntos de conexión con MediaPackage. A continuación, deberá crear y configurar una distribución en CloudFront para transmitir el vídeo.
Para obtener más información e instrucciones paso a paso, consulte los temas siguientes:
Uso de un equilibrador de carga de aplicación
Si su origen es uno o varios servidores HTTP(S) (servidores web) alojados en una o varias instancias de Amazon EC2, puede utilizar un equilibrador de carga de aplicación expuesto a Internet para distribuir el tráfico a las instancias. Un equilibrador de carga expuesto a Internet tiene un nombre de DNS que se puede resolver públicamente y direcciona las solicitudes de los clientes a través de Internet hasta los destinos.
Para obtener más información sobre el uso de un Application Load Balancer como su origen para CloudFront, incluido cómo asegurarse de que los lectores solo puedan acceder a sus servidores web a través de CloudFront y no accediendo directamente al balanceador de carga, consulte Restricción del acceso a Application Load Balancer.
Uso de una URL de función de Lambda
Una URL de una función de Lambda es un punto de conexión HTTPS dedicado a una función de Lambda. Puede utilizar una URL de función de Lambda para crear una aplicación web sin servidor completamente dentro de Lambda. Puede invocar la aplicación web Lambda directamente a través de la URL de la función, sin necesidad de integrarse con API Gateway ni un Application Load Balancer.
Si crea una aplicación web sin servidor mediante funciones de Lambda con URL de función, puede agregar CloudFront para obtener los siguientes beneficios:
-
Acelerar su aplicación con el almacenamiento en caché de los contenidos más cerca de los lectores
-
Utilizar un nombre de dominio personalizado para su aplicación web
-
Dirigir diferentes rutas de URL a distintas funciones Lambda mediante comportamientos de caché de CloudFront
-
Bloquear solicitudes específicas mediante las restricciones geográficas de CloudFront o AWS WAF (o ambas)
-
Utilizar AWS WAF con CloudFront para proteger su aplicación de los bots maliciosos, prevenir las vulnerabilidades comunes de las aplicaciones y mejorar la protección contra los ataques DDoS.
Para utilizar una URL de función Lambda como origen de una distribución de CloudFront, especifique el nombre de dominio completo de la URL de función Lambda como dominio de origen. Un nombre de dominio de la URL de la función Lambda utiliza el siguiente formato:
function-URL-ID
.lambda-url.AWS-Region
.on.aws
Cuando utilice una URL de función de Lambda como origen para una distribución de CloudFront, la URL de la función debe ser de acceso público. Para ello, utilice una de las siguientes opciones:
-
Si usa el control de acceso al origen (OAC), el parámetro
AuthType
de la URL de la función de Lambda debe usar el valorAWS_IAM
y conceder el permisolambda:InvokeFunctionUrl
en una política basada en recursos. Para obtener más información sobre el uso de URL de funciones de Lambda para OAC, consulte Restricción del acceso a un origen de URL de función de AWS Lambda. -
Si no utiliza OAC, puede establecer el parámetro
AuthType
de la URL de función comoNONE
y autorizar el permisolambda:InvokeFunctionUrl
en una política basada en recursos.
También puede agregar un encabezado de origen personalizado a las solicitudes que CloudFront envía al origen y escribir un código de función para devolver una respuesta de error si el encabezado no está presente en la solicitud. Esto contribuye a garantizar que los usuarios solo puedan acceder a su aplicación web a través de CloudFront y no utilizando directamente la URL de función de Lambda.
Para obtener más información sobre las URL de función Lambda, consulte los siguientes temas en la Guía para desarrolladores de AWS Lambda:
-
URL de función Lambda: información general sobre la característica de las URL de función Lambda
-
Invocación de URL de función Lambda: incluye detalles sobre las cargas útiles de solicitud y respuesta que debe utilizar para codificar su aplicación web sin servidor
-
Modelo de seguridad y autenticación para las URL de funciones de Lambda: incluye detalles sobre los tipos de autenticación de Lambda
Uso de Amazon EC2 (u otro origen personalizado)
Un origen personalizado es un servidor web HTTP(S) con un nombre de DNS que se puede resolver públicamente y que enruta las solicitudes de los clientes a destinos a través de Internet. El servidor HTTP(S) se puede alojar en AWS (por ejemplo, una instancia de Amazon EC2) o en otro lugar. Un origen de Amazon S3 configurado como punto de conexión de sitio web también se considera un origen personalizado. Para obtener más información, consulte Uso de un bucket de Amazon S3 configurado como punto de conexión del sitio web.
Cuando use su propio servidor HTTP como origen personalizado, especifique el nombre DNS del servidor, junto con los puertos HTTP y HTTPS, y el protocolo que desea que CloudFront utilice al obtener objetos de su origen.
La mayoría de las características de CloudFront se admiten al utilizar un origen personalizado, excepto el contenido privado. Aunque puede utilizar una URL firmada para distribuir contenido desde un origen personalizado, para que CloudFront obtenga acceso al origen personalizado, el origen debe mantenerse accesible públicamente. Para obtener más información, consulte Distribución de contenido privado con URL firmadas y cookies firmadas.
Siga estas directrices para utilizar instancias de Amazon EC2 y otros orígenes personalizados con CloudFront.
-
Aloje y distribuya el mismo contenido en todos los servidores que están distribuyendo contenido para el mismo origen de CloudFront. Para obtener más información, consulte Configuración de origen en el tema Referencia de configuración de la distribución.
-
Registre las entradas del encabezado
X-Amz-Cf-Id
en todos los servidores en caso de que necesite AWS Support o CloudFront utilice este valor para la depuración. -
Restrinja las solicitudes a los puertos HTTP y HTTPS que escucha su origen personalizado.
-
Sincronice los relojes de todos los servidores de su implementación. Tenga en cuenta que CloudFront utiliza la hora universal coordinada (UTC, por sus siglas en inglés) para las URL y cookies firmadas, para los registros y los informes. Además, si monitorea la actividad de CloudFront mediante las métricas de CloudWatch, tenga en cuenta que CloudWatch también utiliza UTC.
-
Utilice servidores redundantes para gestionar errores.
-
Para obtener más información acerca del uso de un origen personalizado para ofrecer contenido privado, consulte Restricción del acceso a archivos en orígenes personalizados.
-
Para obtener más información acerca del comportamiento de solicitudes y respuestas y códigos de estado HTTP admitidos, consulte Comportamiento de solicitudes y respuestas.
Si utiliza Amazon EC2 para un origen personalizado, le recomendamos que haga lo siguiente:
-
Utilice una Imagen de máquina de Amazon que instale el software de un servidor web automáticamente. Para obtener más información, consulte la documentación de Amazon EC2.
-
Utilice un balanceador de carga de Elastic Load Balancing para gestionar el tráfico en varias instancias de Amazon EC2 y aislar la aplicación de los cambios realizados en las instancias de Amazon EC2. Por ejemplo, si utiliza un balanceador de carga, puede agregar y eliminar instancias Amazon EC2 sin cambiar su aplicación. Para obtener más información, consulte la Documentación de Elastic Load Balancing.
-
Al crear su distribución de CloudFront, especifique la URL del balanceador de carga para el nombre de dominio del servidor de origen. Para obtener más información, consulte Creación de una distribución.
Uso de los grupos de origen de CloudFront
Puede especificar un grupo de origen para su origen de CloudFront si, por ejemplo, desea configurar escenarios de conmutación por error de origen cuando necesite alta disponibilidad. Utilice una conmutación por error de origen para designar un origen principal para CloudFront además de un segundo origen al que CloudFront cambia automáticamente cuando el origen principal devuelve respuestas de error de código de estado HTTP específicas.
Para obtener más información, incluidos los pasos para configurar un grupo de origen, consulte Optimización de alta disponibilidad con conmutación por error de origen de CloudFront.