Uso de Amazon S3 Origins, canales MediaPackage y orígenes personalizados para distribuciones web - Amazon CloudFront

Uso de Amazon S3 Origins, canales MediaPackage y orígenes personalizados para distribuciones web

Al crear una distribución , debe especificar dónde envía CloudFront las solicitudes de los archivos. CloudFront admite el uso de varios recursos de AWS como orígenes. Por ejemplo, puede especificar un bucket de Amazon S3 o un contenedor MediaStore, un canal MediaPackage o un origen personalizado, como una instancia de Amazon EC2 o su propio servidor web HTTP.

Uso de buckets de Amazon S3 para su origen

Cuando utiliza Amazon S3 como origen para su distribución, coloque los objetos que desea que CloudFront entregue en un bucket de Amazon S3. Puede utilizar cualquier método admitido por Amazon S3 para obtener sus objetos en Amazon S3, por ejemplo, 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.

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 uso de CloudFront, consulte Informes de CloudFront en la consola.

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 Restricciones y limitaciones de los buckets en la Guía para desarrolladores de Amazon Simple Storage Service.

Cuando especifique el bucket de Amazon S3 del que desee que CloudFront obtenga objetos, le recomendamos que utilice el siguiente formato para acceder al bucket:

bucket-name.s3.region.amazonaws.com

Otra opción podría ser utilizar el siguiente formato más general, pero tenga en cuenta que este formato no funciona para las regiones lanzadas en 2019 o con posterioridad:

bucket-name.s3.amazonaws.com

Cuando especifique el nombre del bucket en este formato, puede utilizar las siguientes características de CloudFront:

No especificar el bucket utilizando los siguientes formatos:

  • El estilo de ruta de Amazon S3, s3.amazonaws.com/bucket-name

  • El CNAME de Amazon S3, en su caso

Uso de buckets de Amazon S3 configurados como puntos de enlace de sitio web para su origen

Puede configurar un bucket de Amazon S3 que está configurado como punto de enlace de sitio web como 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 en la pestaña Properties (Propiedades), en el panel Static Website Hosting (Alojar sitio web estático). Por ejemplo:

    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 para desarrolladores 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 sobre las características de Amazon S3, consulte la documentación de Amazon S3. (CloudFront también proporciona 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 lo cambia 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 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.

Uso de un contenedor MediaStore o un canal MediaPackage para su origen

Para transmitir vídeo mediante CloudFront, puede configurar un depósito de Amazon S3 configurado como contenedor MediaStore o crear un canal y puntos de enlace 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 Amazon EC2 u otros orígenes personalizados

Un origen personalizado es un servidor HTTP, como por ejemplo, un servidor web. El servidor HTTP puede ser una instancia de Amazon Elastic Compute Cloud (Amazon EC2) o un servidor HTTP que administre de forma privada. Un origen de Amazon S3 configurado como punto de enlace de sitio web también se considera un origen personalizado.

Al utilizar un origen personalizado que es su propio servidor HTTP, debe especificar el nombre de DNS del servidor, junto con los puertos HTTP y HTTPS y el protocolo que desee que utilice CloudFront a la hora de recuperar los objetos del origen.

La mayoría de las características de CloudFront se admiten al utilizar un origen personalizado, excepto en los siguientes casos:

  • Distribuciones RTMP: no compatibles.

  • 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 del origen en el tema Valores que deben especificarse al crear o actualizar una distribución.

  • Registre las entradas del encabezado X-Amz-Cf-Id en todos los servidores; CloudFront requiere esta información para depurar.

  • Restrinja las solicitudes de acceso 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 de acceso 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 sus orígenes personalizados, le recomendamos que haga lo siguiente:

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

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

  3. 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 ver los pasos para configurar un grupo de origen y para obtener más información, consulte Optimización de alta disponibilidad con conmutación por error de origen de CloudFront.

Agregar CloudFront cuando ya está distribuyendo contenido desde Amazon S3

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.

nota

Para obtener más información sobre el uso de buckets de Amazon S3 para su origen con CloudFront, incluido cuando tiene un bucket de Amazon S3 configurado como punto de enlace de sitio web, consulte Uso de Amazon S3 Origins, canales MediaPackage y orígenes personalizados para distribuciones web.

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 su bucket de Amazon S3 con su propio nombre de dominio (como example.com) en lugar del nombre de dominio de su bucket de Amazon S3 (como MyAWSBucket.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

  1. Cree una distribución de CloudFront mediante uno de los procedimientos siguientes:

    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 Restricciones y limitaciones de los buckets en la Guía para desarrolladores de Amazon Simple Storage Service.

    Si está utilizando un CNAME con Amazon S3, especifique también el CNAME de su distribución.

  2. 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, http://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.

  3. Si utiliza CNAME de Amazon S3, la aplicación utiliza su nombre de dominio (por ejemplo, example.com) para hacer referencia a los objetos de su bucket de Amazon S3 en lugar de utilizar el nombre del bucket (por ejemplo, DOC-EXAMPLE-BUCKET1s3.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:

    http://example.com/images/image.jpg

    la solicitud se redirige automáticamente y el usuario ve este objeto:

    http://DOC-EXAMPLE-BUCKET1.s3.amazonaws.com/images/image.jpg

    Para 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 comienza a redirigir 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 los conjuntos de registros de recursos. Para obtener más información acerca de los conjuntos de registros de recursos de alias, consulte Elección entre conjuntos de registros de recursos 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 para archivos 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.

Cambiar un bucket de Amazon S3 de región

Si utiliza Amazon S3 como origen de una distribución de CloudFront y cambia el bucket de región, CloudFront puede tardar hasta una hora en actualizar sus registros para incluir el cambio de región si las dos condiciones a continuación 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 Restricción del acceso a contenido de Amazon S3 utilizando una identidad de acceso de origen. Para obtener una lista de las regiones de Amazon S3 y las versiones de firma compatibles, consulte Amazon Simple Storage Service (Amazon S3) en el capítulo «Regiones y puntos de enlace» de 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, al actualizar el campo Comment (Comentario) en la pestaña General de la consola de CloudFront. Al actualizar 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 no debería tomar más de 15 minutos.