Otimizar a alta disponibilidade com o failover de origem do CloudFront - Amazon CloudFront

Otimizar a alta disponibilidade com o failover de origem do CloudFront

Também é possível configurar o CloudFront failover de origem para cenários que exigem alta disponibilidade. Para começar, crie um grupo de origem com duas origens: uma primária e outra secundária. Se a origem primária estiver indisponível ou retornar códigos de status de resposta HTTP específicos que indiquem falha, o CloudFront alternará automaticamente para a origem secundária.

Para configurar o failover de origem, você deve ter uma distribuição com pelo menos duas origens. Depois, crie um grupo de origens para a distribuição que inclua duas origens, definindo uma delas como a primária. Por último, crie ou atualize um comportamento de cache para usar o grupo de origem.

Para consultar as etapas da configuração de grupos de origens e configurar opções específicas de failover de origem, consulte Criar um grupo de origem.

Depois de você configurar o failover de origem para um comportamento de cache, o CloudFront faz o seguinte para solicitações do visualizador:

  • Quando houver um acerto de cache, o CloudFront retornará o objeto solicitado.

  • Quando houver um erro de cache, o CloudFront roteará a solicitação para a origem primária no grupo de origem.

  • Quando a origem primária retornar um código de status que não esteja configurado para failover, como um código de status HTTP 2xx ou 3xx, o CloudFront fornecerá o objeto solicitado ao visualizador.

  • Quando ocorrer uma das seguintes situações:

    • A origem primária retorna um código de status HTTP que você configurou para failover

    • O CloudFront não consegue se conectar à origem primária

    • A resposta da origem primária demora muito (atinge o tempo limite)

    Assim, o CloudFront roteia a solicitação para a origem secundária do grupo de origem.

    nota

    Em alguns casos de uso, como conteúdo de vídeo por streaming, convém que o CloudFront faça failover para a origem secundária rapidamente. Para ajustar a rapidez com que o CloudFront faz failover para a origem secundária, consulte Controlar tempos limite e tentativas da origem.

O CloudFront roteia todas as solicitações recebidas para a origem primária, mesmo quando uma solicitação anterior tenha feito failover para a origem secundária. O CloudFront só envia solicitações para a origem secundária após uma falha de uma solicitação para a origem primária.

O CloudFront faz failover para a origem secundária somente quando o método HTTP da solicitação do visualizador for GET, HEAD ou OPTIONS. O CloudFront não faz failover quando o visualizador envia um método HTTP diferente (por exemplo POST, PUT etc.).

O diagrama a seguir mostra como o failover de origem funciona.

Como o failover de origem funciona

Criar um grupo de origem

Para criar um grupo de origens
  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v4/home.

  2. Escolha a distribuição para a qual deseja criar o grupo de origem.

  3. Escolha a guia Origins (Origens).

  4. Certifique-se de que a distribuição tenha mais de uma origem. Se ela não tiver, adicione uma segunda origem.

  5. Na guia Origins (Origem), no painel Origin groups (Grupos de origens), escolha Create origin group (Criar grupo de origens).

  6. Escolha as origens para o grupo de origem. Depois de adicioná-las, use as setas para definir a prioridade, ou seja, qual será a origem primária e qual será a secundária.

  7. Insira um nome para o grupo de origens.

  8. Escolha os códigos de status de HTTP a serem usados como critérios de failover. Você pode escolher qualquer combinação dos seguintes códigos de status: 400, 403, 404, 416, 500, 502, 503 ou 504. Quando o CloudFront recebe uma resposta com um dos códigos de status especificados, ele executa o failover para a origem secundária.

    nota

    O CloudFront faz failover para a origem secundária somente quando o método HTTP da solicitação do visualizador for GET, HEAD ou OPTIONS. O CloudFront não faz failover quando o visualizador envia um método HTTP diferente (por exemplo POST, PUT etc.).

  9. Escolha Create origin group (Criar grupo de origens).

Certifique-se de atribuir seu grupo de origem como origem para o comportamento de cache distribuído. Para obter mais informações, consulte Nome.

Controlar tempos limite e tentativas da origem

Por padrão, o CloudFront tenta se conectar à origem primária em um grupo de origem por até 30 segundos (3 tentativas de conexão de 10 segundos cada) antes de fazer failover para a origem secundária. Para alguns casos de uso, como conteúdo de vídeo por streaming, talvez você queira que o CloudFront faça failover para a origem secundária mais rapidamente. É possível ajustar as configurações a seguir para afetar a rapidez com que o CloudFront faz failover para a origem secundária. Se a origem for uma origem secundária ou uma origem que não faça parte de um grupo de origem, essas configurações afetarão a rapidez com que o CloudFront retorna uma resposta HTTP 504 ao visualizador.

Para que o failover seja feito mais rapidamente, especifique um tempo limite de conexão mais curto, menos tentativas de conexão ou ambos. Para origens personalizadas (incluindo origens de bucket do Amazon S3 que são configuradas com hospedagem de site estático), também é possível ajustar o tempo limite de resposta da origem.

Tempo limite de conexão da origem

A configuração de tempo limite de conexão da origem afeta o tempo de espera do CloudFront ao tentar estabelecer uma conexão com a origem. Por padrão, o CloudFront aguarda 10 segundos para estabelecer uma conexão, mas é possível especificar de 1 a 10 segundos (inclusive). Para obter mais informações, consulte Tempo limite da conexão.

Tentativas de conexão da origem

A configuração de tentativas de conexão da origem afeta o número de vezes que o CloudFront tenta se conectar à origem. Por padrão, o CloudFront tenta se conectar três vezes, mas é possível especificar de uma a três (inclusive). Para obter mais informações, consulte Tentativas de conexão.

Para uma origem personalizada (incluindo um bucket do Amazon S3 configurado com hospedagem de site estático), essa configuração também afeta o número de vezes que o CloudFront tenta obter uma resposta da origem caso o tempo limite de resposta da origem expire.

Tempo limite da e resposta da origem
nota

Isto se aplica apenas a origens personalizadas.

A configuração do tempo limite de resposta da origem afeta o tempo que o CloudFront espera para receber uma resposta (ou para receber a resposta completa) da origem. Por padrão, o CloudFront aguarda 30 segundos, mas é possível especificar de 1 a 60 segundos (inclusive).” Para obter mais informações, consulte Tempo limite de resposta (somente origens personalizadas).

Como alterar essas configurações

Como alterar essas configurações no console do CloudFront

  • Para uma nova origem ou uma nova distribuição, especifique esses valores ao criar o recurso.

  • Para uma origem existente em uma distribuição existente, especifique esses valores ao editar a origem.

Para obter mais informações, consulte Referência de configurações da distribuição.

Uso do failover de origem com funções do Lambda@Edge

Você pode usar as funções do Lambda@Edge com distribuições do CloudFront que tiver configurado com grupos de origem. Para usar uma função do Lambda, especifique-a em um trigger de solicitação origem ou resposta de origem de um grupo de origem ao criar o comportamento de cache. Ao usar uma função do Lambda@Edge com um grupo de origem, ela poderá ser acionada duas vezes para uma única solicitação de visualizador. Por exemplo, considere este cenário:

  1. Você cria uma função do Lambda@Edge com um trigger de solicitação de origem.

  2. A função do Lambda é acionada quando o CloudFront envia uma solicitação para a origem primária (em um falha de cache).

  3. A origem primária responde com um código de status de HTTP configurado para failover.

  4. A função do Lambda é acionada novamente quando o CloudFront envia a mesma solicitação à origem secundária.

O diagrama a seguir ilustra como o failover de origem funciona quando você inclui uma função do Lambda@Edge em uma solicitação de origem ou trigger de resposta.

Como um failover de origem funciona com funções do Lambda@Edge

Para obter mais informações sobre como usar triggers do Lambda@Edge, consulte Adicionar acionadores para uma função do Lambda@Edge.

Para ter mais informações sobre como gerenciar failover de DNS, consulte Configurar failover de DNS no Guia do desenvolvedor do Amazon Route 53.

Usar páginas de erro personalizadas com failover de origem

Você pode usar as páginas de erro personalizadas com grupos de origens de forma semelhante à forma como você usá-los com origens que não são configuradas para o failover de origem.

Ao usar o failover de origem, você pode configurar o CloudFront para retornar uma página de erro personalizada para a origem primária ou secundária (ou ambas):

  • Retornar uma página de erro personalizada para a origem primária: se a origem primária retornar um código de status HTTP que não estiver configurado para failover, o CloudFront retornará a página de erro personalizada aos visualizadores.

  • Retornar uma página de erro personalizada à origem secundária: se o CloudFront receber um código de status de falha da origem secundária, o CloudFront retornará a página de erro personalizada.

Para obter mais informações sobre como usar páginas de erro personalizadas com o CloudFront, consulte Gerar respostas a erros personalizadas.