Optimización de alta disponibilidad con conmutación por error de origen de CloudFront
Puede configurar CloudFront con conmutación por error de origen en los casos en los que se requiera alta disponibilidad. Para empezar, cree un grupo de origen con dos orígenes: uno primario y otro secundario. Si el origen principal no está disponible o devuelve códigos de estado de respuesta HTTP específicos que indican un error, CloudFront cambia automáticamente al origen secundario.
Para configurar la conmutación por error de origen, debe tener una distribución con al menos dos orígenes. A continuación, cree un grupo de origen para su distribución que incluya dos orígenes, configurando uno como principal. Por último, cree o actualice un comportamiento de caché para utilizar el grupo de origen.
Para consultar los pasos para configurar grupos de origen y configurar opciones de conmutación por error de origen específicas, consulte Creación de un grupo de origen.
Después de configurar la conmutación por error de origen para un comportamiento de la caché, CloudFront hace lo siguiente para las solicitudes del lector:
-
Cuando hay un acierto de caché, CloudFront devuelve el objeto solicitado.
-
Cuando hay un error de caché, CloudFront dirige la solicitud al origen principal en el grupo de origen.
-
Cuando el origen principal devuelve un código de estado que no está configurado para conmutación por error, como un código de estado HTTP 2xx o 3xx, CloudFront envía el objeto solicitado al lector.
-
Cuando se produce cualquiera de las siguientes situaciones:
-
El origen principal devuelve un código de estado HTTP que ha configurado para la conmutación por error
-
CloudFront no se conecta al origen principal
-
La respuesta del origen primario tarda demasiado (se agota el tiempo de espera)
A continuación, CloudFront dirige la solicitud al origen secundario del grupo de origen.
nota
En algunos casos de uso, como el streaming de contenido de vídeo, es posible que CloudFront conmute por error rápidamente al origen secundario. Para ajustar la rapidez con la que CloudFront conmuta por error al origen secundario, consulte Control de tiempos de espera e intentos de origen.
-
CloudFront dirige todas las solicitudes entrantes al origen principal, incluso cuando una solicitud anterior ha conmutado por error al origen secundario. CloudFront solo envía solicitudes al origen secundario después de que se produzca un error en una solicitud al origen principal.
CloudFront conmuta por error al origen secundario solo cuando el método HTTP de la solicitud del lector es GET
, HEAD
u OPTIONS
. CloudFront no realiza una conmutación por error cuando el lector envía un método HTTP diferente (por ejemplo POST
, PUT
, etc.).
El siguiente diagrama ilustra el funcionamiento de la conmutación por error de origen.
Temas
Creación de un grupo de origen
Para crear un grupo de origen
Inicie sesión en la AWS Management Console y abra la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v4/home
. -
Elija la distribución para la que desea crear el grupo de origen.
-
Elija la pestaña Orígenes.
-
Asegúrese de que la distribución tenga más de un origen. Si no lo tiene, agregue un segundo origen.
-
En la pestaña Origins (Orígenes), en el panel Origin Groups (Grupos de origen), elija Create origin group (Crear grupo de origen).
-
Elija los orígenes del grupo de origen. Después de agregar orígenes, utilice las flechas para establecer la prioridad, es decir, qué origen es primario y cuál secundario.
-
Ingrese un nombre para el grupo de origen.
-
Elija los códigos de estado HTTP que desea utilizar como criterios de conmutación por error. Puede elegir cualquier combinación de los siguientes códigos de estado: 400, 403, 404, 416, 500, 502, 503 o 504. Cuando CloudFront recibe una respuesta con uno de los códigos de estado especificados, conmuta por error al origen secundario.
nota
CloudFront conmuta por error al origen secundario solo cuando el método HTTP de la solicitud del lector es
GET
,HEAD
uOPTIONS
. CloudFront no realiza una conmutación por error cuando el lector envía un método HTTP diferente (por ejemploPOST
,PUT
, etc.). -
Elija Create origin group (Crear grupo de origen).
Asegúrese de asignar su grupo de origen como el origen del comportamiento de caché de la distribución. Para obtener más información, consulte Nombre.
Control de tiempos de espera e intentos de origen
De forma predeterminada, CloudFront intenta conectarse al origen primario de un grupo de orígenes durante 30 segundos (3 intentos de conexión de 10 segundos cada uno) antes de conmutar por error al origen secundario. En algunos casos de uso, como el streaming de contenido de vídeo, es posible que desee que CloudFront conmute por error más rápidamente al origen secundario. Puede ajustar la siguiente configuración para que afecte a la rapidez con la que CloudFront conmuta por error al origen secundario. Si el origen es un origen secundario o un origen que no forma parte de un grupo de orígenes, esta configuración afecta a la rapidez con la que CloudFront devuelve una respuesta HTTP 504 al lector.
Para conmutar por error más rápidamente, especifique un tiempo de espera de conexión más breve, menos intentos de conexión o ambas opciones. Para orígenes personalizados (incluidos los orígenes de bucket de Amazon S3 configurados con alojamiento de sitio web estático), también puede ajustar el tiempo de espera de respuesta de origen.
- Tiempo de espera de conexión de origen
-
La configuración de tiempo de espera de conexión de origen afecta al tiempo que CloudFront espera al intentar establecer una conexión con el origen. De forma predeterminada, CloudFront espera 10 segundos para establecer una conexión, pero puede especificar de 1 a 10 segundos (inclusive). Para obtener más información, consulte Tiempo de espera de conexión.
- Intentos de conexión de origen
-
La configuración de intentos de conexión de origen afecta al número de veces que CloudFront intenta conectarse al origen. De forma predeterminada, CloudFront intenta conectarse 3 veces, pero puede especificar de 1 a 3 (inclusive). Para obtener más información, consulte Intentos de conexión.
Para un origen personalizado (incluido un bucket de Amazon S3 configurado con alojamiento de sitios web estático), esta configuración también afecta al número de veces que CloudFront intenta obtener una respuesta del origen en el caso de un tiempo de espera de respuesta del origen.
- Tiempo de espera de respuesta de origen
nota
Esto solo se aplica a los orígenes personalizados.
La configuración de tiempo de espera de respuesta de origen afecta al tiempo que CloudFront espera para recibir una respuesta (o para recibir la respuesta completa) del origen. De forma predeterminada, CloudFront espera 30 segundos, pero puede especificar de 1 a 60 segundos (inclusive). Para obtener más información, consulte Tiempo de espera de respuesta (solo orígenes personalizados).
Cómo cambiar esta configuración
Para cambiar esta configuración en la consola de CloudFront
-
Para un nuevo origen o una nueva distribución, especifique estos valores al crear el recurso.
-
En el caso de un origen existente en una distribución existente, debe especificar estos valores al editar el origen.
Para obtener más información, consulte Referencia de configuración de la distribución.
Utilizar la conmutación por error de origen con funciones de Lambda@Edge
Puede utilizar las funciones Lambda@Edge con distribuciones de CloudFront que haya configurado con grupos de origen. Para utilizar una función Lambda, especifíquela en una solicitud de origen o un desencadenador de respuesta de origen para un grupo de origen al crear el comportamiento de la caché. Cuando se utiliza una función Lambda@Edge con un grupo de origen, la función se puede activar dos veces para una sola solicitud de visor. Por ejemplo, considere esta situación:
-
Se crea una función Lambda@Edge con un desencadenador de solicitud de origen.
-
La función Lambda se desencadena una vez cuando CloudFront envía una solicitud al origen principal (en un error de caché).
-
El origen principal responde con un código de estado HTTP configurado para la conmutación por error.
-
La función Lambda se desencadena de nuevo cuando CloudFront envía la misma solicitud al origen secundario.
El siguiente diagrama ilustra cómo funciona la conmutación por error de origen cuando se incluye una función de Lambda@Edge en una solicitud de origen o desencadenador de respuesta.
Para obtener más información sobre el uso de desencadenadores de Lambda@Edge, consulte Adición de desencadenadores para una función de Lambda@Edge.
Para obtener más información sobre la administración de la conmutación por error de DNS, consulte Configuring DNS failover en la Guía para desarrolladores de Amazon Route 53.
Utilizar páginas de error personalizadas con conmutación por error de origen
Puede utilizar páginas de error personalizadas con grupos de origen de forma similar a cómo utilizarlos con orígenes que no están configuradas para la conmutación por error de origen.
Cuando se utiliza la conmutación por error de origen, puede configurar CloudFront para que devuelva una página de error personalizada para el origen principal o secundario (o ambos):
-
Devolver una página de error personalizada para el origen principal: si el origen principal devuelve un código de estado HTTP que no está configurado para la conmutación por error, CloudFront devuelve la página de error personalizada a los lectores.
-
Devolver una página de error personalizada para el origen secundario: si CloudFront recibe un código de estado de error del origen secundario, CloudFront devuelve la página de error personalizada.
Para obtener más información acerca del uso de páginas de error personalizadas con CloudFront, consulte Generación de respuestas de error personalizadas.