Configurações de origem - Amazon CloudFront

Configurações de origem

Ao usar o console do CloudFront para criar ou atualizar uma distribuição, você deve fornecer informações sobre um ou mais locais, conhecidos como origens, onde são armazenadas as versões originais de conteúdo da web. O CloudFront obtém seu conteúdo da Web de suas origens e fornece-o aos visualizadores por meio de uma rede mundial de servidores de borda.

Para obter o número máximo atual de origens que você pode criar para uma distribuição ou para solicitar uma cota maior, consulte Cotas gerais para distribuições.

Se você quiser excluir uma origem, primeiro, deve editar ou excluir os comportamentos de cache associados a ela.

Importante

Se você excluir uma origem, confirme se os arquivos fornecidos anteriormente por ela estão disponíveis em outra origem e se os seus comportamentos de cache estão roteando as solicitações desses arquivos para a nova origem.

Ao criar ou atualizar uma distribuição, você especifica os valores a seguir para cada origem.

Domínio de origem

O domínio de origem é o nome de domínio do DNS do recurso do qual o CloudFront receberá os objetos de sua origem, como um bucket do Amazon S3 ou um servidor HTTP: Por exemplo:

  • Bucket do Amazon S3amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com

    nota

    Se você criou o bucket do S3 recentemente, a distribuição do CloudFront poderá retornar respostas HTTP 307 Temporary Redirect por até 24 horas. Pode demorar até 24 horas para que o nome do bucket do S3 seja propagado para todas as regiões da AWS. Quando a propagação estiver concluída, a distribuição interromperá automaticamente o envio dessas respostas de redirecionamento sem exigir nenhuma ação. Para obter mais informações, consulte Por que estou obtendo uma resposta de redirecionamento temporário HTTP 307 do Amazon S3? e Redirecionamento de solicitação temporário.

  • Bucket do Amazon S3 configurado como siteamzn-s3-demo-bucket.s3-website.us-west-2.amazonaws.com

  • Contêiner do MediaStoreexamplemediastore.data.mediastore.us-west-1.amazonaws.com

  • Endpoint do MediaPackageexamplemediapackage.mediapackage.us-west-1.amazonaws.com

  • Instância do Amazon EC2ec2-203-0-113-25.compute-1.amazonaws.com

  • Balanceador de carga do Elastic Load Balancingexample-load-balancer-1234567890.us-west-2.elb.amazonaws.com

  • Seu próprio servidor Web: www.example.com

Escolha o nome do domínio no campo Origin domain (Domínio de origem) ou digite o nome. Os recursos das regiões que requerem adesão devem ser inseridos manualmente. O nome de domínio não diferencia maiúsculas de minúsculas. Seu domínio de origem deve ter um nome de DNS publicamente resolvível que direcione as solicitações dos clientes aos destinos pela internet.

Se você configurar o CloudFront para se conectar à sua origem por HTTPS, um dos nomes de domínio no certificado deverá corresponder ao nome de domínio especificado em Nome de domínio de origem. Se nenhum nome de domínio apresentar correspondência, o CloudFront exibirá um código de status HTTP 502 (gateway inválido) para o visualizador. Para obter mais informações, consulte Nomes de domínio na distribuição do CloudFront e no certificado e Falha de negociação SSL/TLS entre o CloudFront e um servidor de origem personalizado.

nota

Se você estiver usando uma política de solicitação de origem que encaminhe o cabeçalho de host do visualizador à origem, esta deverá responder com um certificado correspondente ao cabeçalho de host do visualizador. Para obter mais informações, consulte Adicionar cabeçalhos de solicitação do CloudFront.

Se sua origem for um bucket do Amazon S3, observe o seguinte:

  • Se o bucket estiver configurado como um site, insira o endpoint de hospedagem do site estático do Amazon S3 no bucket. Não selecione o nome do bucket na lista do campo Origin domain (Domínio de origem). O endpoint de hospedagem do site estático é exibido no console do Amazon S3, na página Properties (Propriedades) em Static website hosting (Hospedagem de site estático). Para obter mais informações, consulte Usar um bucket do Amazon S3 configurado como um endpoint do site.

  • Se você configurou o Amazon S3 Transfer Acceleration para seu bucket, não especifique o endpoint s3-accelerate para Origin domain (Domínio de origem).

  • Se você estiver usando um bucket de uma conta da AWS diferente e ele não estiver configurado como um site, digite o nome no seguinte formato:

    bucket-name.s3.region.amazonaws.com

    Se o bucket estiver em uma região dos EUA e você quiser que o Amazon S3 direcione as solicitações para uma instalação no Norte da Virgínia, use o seguinte formato:

    bucket-name.s3.us-east-1.amazonaws.com

  • Os arquivos devem ser legíveis ao público, a menos que você proteja o conteúdo no Amazon S3 usando um controle de acesso à origem do CloudFront. Para obter mais informações sobre controle do acesso, consulte Restringir o acesso a uma origem do Amazon S3.

Importante

Se a origem for um bucket do Amazon S3, o nome do bucket deverá seguir os requisitos de nomenclatura do DNS. Para obter mais informações, acesse Restrições e limitações de bucket no Guia do usuário do Amazon Simple Storage Service.

Ao alterar o valor de Origin domain (Domínio de origem) de uma origem, o CloudFront começará imediatamente a replicar a alteração para seus locais de borda. Enquanto a configuração de distribuição não for atualizada em determinado local de borda, o CloudFront continuará a encaminhar solicitações à origem anterior. Assim que a configuração da distribuição for atualizada no local de borda, o CloudFront começará a encaminhar solicitações à nova origem.

A alteração da origem não requer que o CloudFront preencha os locais de borda de caches novamente com objetos da nova origem. Contanto que as solicitações do visualizador em sua aplicação não tenham sido alteradas, o CloudFront continuará a fornecer objetos que já estão em um ponto de presença de caches até o TTL de cada objeto expirar ou até objetos solicitados raramente serem removidos.

Protocolo (somente origens personalizadas)

nota

Isto se aplica apenas a origens personalizadas.

A política de protocolo a ser usada pelo CloudFront ao obter objetos de sua origem.

Escolha um dos seguintes valores:

  • HTTP only (Somente HTTP): o CloudFront usa somente HTTP para acessar a origem.

    Importante

    HTTP only (Somente HTTP) é a configuração padrão quando a origem é um endpoint de hospedagem de site estático do Amazon S3, porque o Amazon S3 não comporta conexões HTTPS para endpoint de hospedagem de site estático. O console do CloudFront não oferece suporte à alteração dessa configuração para endpoints de hospedagem de sites estáticos do Amazon S3.

  • HTTPS only (Somente HTTP): o CloudFront usa somente HTTPS para acessar a origem.

  • Match viewer (Corresponder visualizador): o CloudFront se comunica com sua origem usando HTTP ou HTTPS, dependendo do protocolo da solicitação do visualizador. Observe que o CloudFront armazenará o objeto em cache somente uma vez se os visualizadores fizerem solicitações usando protocolos HTTP e HTTPS.

    Importante

    Para solicitações HTTPS do visualizador que o CloudFront encaminha para essa origem, um dos nomes de domínio no certificado SSL/TLS de seu servidor de origem deverá corresponder ao nome de domínio especificado para Origin domain (Domínio de origem). Do contrário, o CloudFront responderá às solicitações do visualizador com um código de status HTTP 502 (Gateway inválido), em vez de retornar o objeto solicitado. Para obter mais informações, consulte Requisitos para usar certificados SSL/TLS com o CloudFront.

Porta HTTP

nota

Isto se aplica apenas a origens personalizadas.

(Opcional) É possível especificar a porta HTTP na qual a origem personalizada escuta. Os valores válidos incluem as portas 80, 443 e 1024 a 65535. O valor padrão é a porta 80.

Importante

A porta 80 é a configuração padrão quando a origem é um endpoint de hospedagem de site estático do Amazon S3, porque ele só oferece suporte à porta 80 para endpoints de hospedagem de site estático. O console do CloudFront não oferece suporte à alteração dessa configuração para endpoints de hospedagem de sites estáticos do Amazon S3.

Porta HTTPS

nota

Isto se aplica apenas a origens personalizadas.

(Opcional) É possível especificar a porta HTTPS na qual a origem personalizada escuta. Os valores válidos incluem as portas 80, 443 e 1024 a 65535. O valor padrão é a porta 443. Quando Protocol (Protocolo) é definido como HTTP only (Somente HTTP), não é possível especificar um valor para HTTPS port (Porta HTTPS).

Protocolo SSL de origem mínimo

nota

Isto se aplica apenas a origens personalizadas.

Escolha o protocolo TLS/SSL mínimo que o CloudFront poderá usar ao estabelecer uma conexão HTTPS com a origem. Protocolos TLS mais baixos são menos seguros, portanto, recomendamos que você escolha o protocolo TLS mais recente compatível com a origem. Quando Protocol (Protocolo) é definido como HTTP only (Somente HTTP), não é possível especificar um valor para Minimum origin SSL protocol (Protocolo SSL de origem mínimo).

Se você usar a API do CloudFront para definir o protocolo TLS/SSL para uso do CloudFront, não será possível definir um protocolo mínimo. Em vez disso, especifique todos os protocolos TLS/SSL que o CloudFront poderá usar com sua origem. Para mais informações, consulte OriginSslProtocols na Referência da API do Amazon CloudFront.

Caminho de origem

Se desejar que o CloudFront solicite seu conteúdo de um diretório em sua origem, insira o caminho do diretório, começando com uma barra (/). O CloudFront acrescenta o caminho do diretório no valor de Origin domain (Domínio de origem). Por exemplo, cf-origin.example.com/production/images. Não adicione barra (/) no fim do caminho.

Por exemplo, imagine que você especificou os seguintes valores para sua distribuição:

  • Origin domain (Domínio de origem): um bucket do Amazon S3 denominado amzn-s3-demo-bucket

  • Origin path (Caminho da origem): /production

  • Nomes de domínio alternativos (CNAMEs): example.com

Quando um usuário insere example.com/index.html no navegador, o CloudFront envia uma solicitação de amzn-s3-demo-bucket/production/index.html para o Amazon S3.

Quando um usuário insere example.com/acme/index.html no navegador, o CloudFront envia uma solicitação de amzn-s3-demo-bucket/production/acme/index.html para o Amazon S3.

Name

Nome é uma string que identifica exclusivamente essa origem nessa distribuição. Se criar comportamentos de cache além do comportamento de cache padrão, você poderá usar o nome especificado aqui para identificar a origem para a qual o CloudFront encaminhará uma solicitação quando ela tiver o mesmo padrão de caminho desse comportamento de cache.

Acesso à origem (somente origens do Amazon S3)

nota

Isso se aplica somente às origens de bucket do Amazon S3 (aquelas que não estão usando o endpoint de site estático do S3).

Selecione Origin access control settings (recommended) [Configurações de controle de acesso à origem (recomendado)] se você quiser tornar possível restringir o acesso a uma origem de bucket do Amazon S3 somente a distribuições específicas do CloudFront.

Selecione Public (Pública) se a origem do bucket do Amazon S3 for acessível ao público.

Para obter mais informações, consulte Restringir o acesso a uma origem do Amazon S3.

Para obter informações sobre como exigir que os usuários acessem objetos em uma origem personalizada usando somente URLs do CloudFront, consulte Restringir o acesso a arquivos em origens personalizadas.

Adicionar cabeçalho personalizado

Se você quiser que o CloudFront inclua cabeçalhos personalizados sempre que encaminhar uma solicitação para sua origem, especifique o nome do cabeçalho e o respectivo valor. Para obter mais informações, consulte Adicionar cabeçalhos personalizados às solicitações de origem.

Para saber o número máximo de cabeçalhos personalizados que você pode adicionar, o tamanho máximo do nome e valor de um cabeçalho personalizado e o tamanho total de todos os nomes e valores de cabeçalho, consulte Cotas.

Habilitar o Origin Shield

Escolha Yes (Sim) para habilitar o CloudFront Origin Shield. Para obter mais informações sobre o Origin Shield, consulte Usar o Amazon CloudFront Origin Shield.

Tentativas de conexão

É possível definir o número de vezes que o CloudFront tenta se conectar à origem. É possível especificar 1, 2 ou 3 como o número de tentativas. O número padrão (caso nenhum seja especificado) é 3.

Use essa configuração com o Connection timeout (Tempo limite da conexão) para especificar o período que o CloudFront deve esperar antes de tentar se conectar à origem secundária ou retornar uma resposta de erro ao visualizador. Por padrão, o CloudFront aguarda até 30 segundos (3 tentativas de 10 segundos cada) antes de tentar se conectar à origem secundária ou retornar uma resposta de erro. É possível reduzir esse tempo especificando menos tentativas, um tempo limite de conexão mais curto ou ambos.

Se houver falha de conexão no número de tentativas especificado, o CloudFront executará um dos seguintes procedimentos:

  • Se a origem fizer parte de um grupo de origens, o CloudFront tentará se conectar à origem secundária. Se houver falha de conexão no número de tentativas especificado para a origem secundária, o CloudFront retornará uma resposta de erro ao visualizador.

  • Se a origem não fizer parte de um grupo de origens, o CloudFront retornará uma resposta de erro ao visualizador.

Para uma origem personalizada (incluindo um bucket do Amazon S3 configurado com hospedagem de site estático), essa configuração também especifica o número de vezes que o CloudFront tenta obter uma resposta da origem. Para obter mais informações, consulte Tempo limite de resposta.

Tempo limite da conexão

Tempo limite de conexão é o número de segundos que o CloudFront aguarda ao tentar estabelecer conexão com a origem. É possível especificar um número de segundos entre 1 e 10 (inclusive). O tempo limite padrão (caso nenhum seja especificado) é 10 segundos.

Use essa configuração com Connection attempts (Tentativas de conexão) para especificar o período que o CloudFront deve esperar antes de tentar se conectar à origem secundária ou antes de retornar uma resposta de erro ao visualizador. Por padrão, o CloudFront aguarda até 30 segundos (3 tentativas de 10 segundos cada) antes de tentar se conectar à origem secundária ou retornar uma resposta de erro. É possível reduzir esse tempo especificando menos tentativas, um tempo limite de conexão mais curto ou ambos.

Se o CloudFront não estabelecer uma conexão com a origem dentro do número especificado de segundos, ele fará o seguinte:

  • Se o número especificado de Connection attempts (Tentativas de conexão) for maior que 1, o CloudFront tentará estabelecer uma conexão novamente. O CloudFront tentará até três vezes, conforme determinado pelo valor de Connection attempts (Tentativas de conexão).

  • Se houver falha em todas as tentativas de conexão e a origem fizer parte de um grupo de origens, o CloudFront tentará se conectar à origem secundária. Se houver falha de conexão no número de tentativas especificado para a origem secundária, o CloudFront retornará uma resposta de erro ao visualizador.

  • Se houver falha em todas as tentativas de conexão e a origem não fizer parte de um grupo de origens, o CloudFront retornará uma resposta de erro ao visualizador.

Tempo limite de resposta

O tempo limite da resposta de origem, também conhecido como tempo limite da leitura de origem ou tempo limite da solicitação de origem, aplica-se a estes dois valores:

  • O período (em segundos) que o CloudFront aguarda uma resposta após o encaminhamento de uma solicitação à origem.

  • O período (em segundos) que o CloudFront aguarda após o recebimento de um pacote de uma resposta da origem e antes do recebimento do próximo pacote.

dica

Se você quiser aumentar o valor de tempo limite porque os visualizadores estão com erros de código de status HTTP 504, considere explorar outras maneiras de eliminar esses erros antes de alterar o valor de tempo limite. Consulte as sugestões para solução de problemas em Código de status HTTP 504 (tempo limite do gateway).

O comportamento do CloudFront depende do método HTTP na solicitação de visualizador:

  • Solicitações GET e HEAD: se a origem não responder ou parar de responder dentro da duração do tempo limite da resposta, o CloudFront interromperá a conexão. O CloudFront tentará se conectar novamente de acordo com o valor de Tentativas de conexão.

  • Solicitações DELETE, OPTIONS, PATCH, PUT e POST: se a origem não responder dentro da duração do tempo limite da leitura, o CloudFront interromperá a conexão e não tentará entrar em contato com a origem novamente. O cliente pode reenviar a solicitação, se necessário.

Tempo limite de conclusão da resposta

nota

O tempo limite de conclusão da resposta não é compatível com o recurso de implantação contínua.

O tempo (em segundos) em que uma solicitação do CloudFront para a origem pode permanecer aberta e aguardar uma resposta. Se a resposta completa não for recebida da origem até esse momento, o CloudFront encerrará a conexão.

Ao contrário do Tempo limite de resposta, que é o tempo de espera para pacotes de resposta individuais, o Tempo limite de conclusão da resposta é o tempo máximo permitido que o CloudFront espera pela conclusão da resposta. Você pode usar essa configuração para garantir que o CloudFront não espere indefinidamente por uma origem lenta ou sem resposta, mesmo que outras configurações de tempo limite permitam uma espera mais longa.

Esse tempo limite máximo inclui o que você especificou para outras configurações de tempo limite e o número de Tentativas de conexão para cada nova tentativa. Você pode usar essas configurações em conjunto para especificar quanto tempo o CloudFront espera pela solicitação completa e quando finalizar a solicitação, independentemente de ela estar concluída ou não.

Por exemplo, se você definir as seguintes configurações:

  • Tentativas de conexão são 3.

  • O Tempo limite da conexão é de 10 segundos

  • O Tempo limite de resposta é de 30 segundos

  • O Tempo limite de conclusão da resposta é de 60 segundos

Isso significa que o CloudFront tentará se conectar à origem (até 3 tentativas no total), com o tempo limite de cada tentativa de conexão em 10 segundos. Uma vez conectado, o CloudFront aguardará até 30 segundos para que a origem responda à solicitação até receber o último pacote da resposta.

Independentemente do número de tentativas de conexão ou do tempo limite de resposta, o CloudFront encerrará a conexão se a resposta completa da origem levar mais de 60 segundos para ser concluída. O CloudFront então retornará ao visualizador uma resposta de erro Código de status HTTP 504 (tempo limite do gateway) ou uma resposta de erro personalizada, se você especificar uma.

Observações
  • Se você definir um valor para o tempo limite de conclusão da resposta, o valor deverá ser igual ou maior que o valor do tempo limite de resposta (tempo limite de leitura de origem).

  • Se você não definir um valor para o tempo limite de conclusão da resposta, o CloudFront não aplicará um valor máximo.

Tempo limite de keep alive (somente origens de VPC e personalizadas)

O tempo limite de keep-alive é o período (em segundos) em que o CloudFront tentará manter uma conexão com a origem personalizada depois de obter o último pacote de uma resposta. A manutenção de uma conexão persistente economiza o tempo necessário para restabelecer a conexão TCP e executar outro handshake TLS para solicitações subsequentes. O aumento do tempo limite da conexão keep alive ajuda a melhorar a métrica da solicitação por conexão nas distribuições.

nota

Para que o valor Keep-alive timeout (Tempo limite keep alive) entre em vigor, a origem deverá ser configurada para permitir conexões persistentes.

Cotas de tempo limite de resposta e manutenção

Se você solicitar um aumento de tempo limite para a Conta da AWS, atualize as origens da distribuição para os valores de tempo limite de resposta e de manutenção que você deseja. Um aumento de cota para sua conta não atualiza automaticamente as origens. Por exemplo, se você estiver usando uma função do Lambda@Edge para definir um tempo limite de manutenção de 90 segundos, a origem já deverá ter um tempo limite de manutenção de 90 segundos ou mais. Caso contrário, a função do Lambda@Edge poderá falhar na execução.

Para obter mais informações sobre cotas de distribuição, incluindo como solicitar um aumento, consulte Cotas gerais para distribuições.