Usar origens, canais MediaPackage e origens personalizadas do Amazon S3 para distribuições na web - Amazon CloudFront

Usar origens, canais MediaPackage e origens personalizadas do Amazon S3 para distribuições na web

Ao criar uma distribuição na , especifique onde o CloudFront enviará solicitações para os arquivos. O CloudFront oferece suporte a vários recursos da AWS como origens. Por exemplo, você pode especificar um bucket do Amazon S3 ou um contêiner do MediaStore, um canal do MediaPackage ou uma origem personalizada, como uma instância do Amazon EC2 ou seu próprio servidor web HTTP.

Usar buckets do Amazon S3 para sua origem

Ao usar o Amazon S3 como origem para sua distribuição, coloque os objetos que deseja que o CloudFront entregue em um bucket do Amazon S3. É possível usar qualquer método compatível com o Amazon S3 para colocar os objetos nele, por exemplo, o console ou a API do Amazon S3 ou uma ferramenta de terceiros. É possível criar uma hierarquia em seu bucket para armazenar os objetos, da mesma forma que faria com qualquer outro bucket do Amazon S3.

Usar um bucket do Amazon S3 existente como seu servidor de origem do CloudFront não altera o bucket. Ainda é possível usá-lo normalmente como você faria para armazenar e acessar objetos do Amazon S3 no preço padrão do Amazon S3. Você será cobrado o valor normal do Amazon S3 para armazenar os objetos no bucket. Para mais informações sobre as cobranças de uso do CloudFront, consulte Relatórios do CloudFront no console.

Importante

Para que seu bucket funcione com o CloudFront, o nome deve estar de acordo com os requisitos de nomenclatura do DNS. Para obter mais informações, acesse Regras de atribuição de nomes de buckets no Manual do usuário do Amazon Simple Storage Service.

Ao especificar o bucket do Amazon S3 do qual você deseja que o CloudFront obtenha objetos, recomendamos que você use o seguinte formato para acessar o bucket:

bucket-name.s3.region.amazonaws.com

Outra opção pode ser usar o seguinte formato mais geral, mas lembre-se de que esse formato não funciona para Regiões iniciadas em 2019 ou posterior:

bucket-name.s3.amazonaws.com

Ao especificar o nome do bucket nesse formato, é possível usar os seguintes recursos do CloudFront:

Não especifique o bucket usando os seguintes formatos:

  • O estilo de caminho do Amazon S3, s3.amazonaws.com/bucket-name

  • O CNAME do Amazon S3, se houver

Usar buckets do Amazon S3 configurados como endpoints de site para sua origem

É possível configurar um bucket do Amazon S3 como um endpoint de site como a origem personalizada com o CloudFront.

  • Ao configurar a distribuição do CloudFront, para a origem, insira o endpoint de hospedagem de site estático do Amazon S3 para seu bucket. Esse valor é exibido no console do Amazon S3, na guia Properties (Propriedades), no painel Static website hosting (Hospedagem de site estático). Por exemplo:

    http://bucket-name.s3-website-region.amazonaws.com

Para obter mais informações sobre como especificar endpoints de site estáticos do Amazon S3, consulte Endpoints de site no Manual do usuário do Amazon Simple Storage Service.

Ao especificar o nome do bucket nesse formato como sua origem, é possível usar redirecionamentos e documentos de erro personalizados do Amazon S3. Para mais informações sobre os recursos do Amazon S3, consulte a documentação do Amazon S3. (O CloudFront também fornece páginas de erro personalizadas.) Para obter mais informações, consulte Criar uma página de erro personalizada para códigos de status HTTP específicos.)

Usar um bucket do Amazon S3 como seu servidor de origem do CloudFront não o altera de forma alguma. Ainda é possível usá-lo como você faria normalmente e o Amazon S3 será cobrado pelos valores normais. Para mais informações sobre os encargos para usar o CloudFront, consulte Definição de preços do CloudFront.

nota

Se usar a API do CloudFront para criar sua distribuição com um bucket do Amazon S3 que está configurado como o endpoint de um site, você deverá configurá-lo usando CustomOriginConfig, mesmo que o site esteja hospedado em um bucket do Amazon S3. Para mais informações sobre a criação de distribuições usando a API do CloudFront, consulte CreateDistribution na Referência da API do Amazon CloudFront.

Usar um contêiner do MediaStore ou um canal do MediaPackage para sua origem

Para transmitir vídeo usando o CloudFront, é possível configurar um bucket do Amazon S3 como um contêiner do MediaStore ou criar um canal e endpoints com o MediaPackage. Depois, você poderá criar e configurar uma distribuição no CloudFront para transmitir o vídeo.

Para obter mais informações e instruções de todas as etapas, consulte os tópicos a seguir:

Usar o Amazon EC2 ou outras origens personalizadas

Uma origem personalizada é um servidor HTTP, por exemplo, um servidor da web. O servidor HTTP pode ser uma instância do Amazon Elastic Compute Cloud (Amazon EC2) ou um servidor HTTP que você gerencia de forma privada. Uma origem do Amazon S3 configurada como um endpoint do site também é considerada como uma origem personalizada.

Ao usar uma origem personalizada que seja seu próprio servidor HTTP, especifique o nome DNS do servidor, além das portas HTTP e HTTPS e o protocolo a ser usado pelo CloudFront para obter objetos na sua origem.

A maioria dos recursos do CloudFront são compatíveis ao usar uma origem personalizada, com as seguintes exceções:

  • Conteúdo privado: embora seja possível usar um signed URL para distribuir conteúdo de uma origem personalizada, para que o CloudFront acesse a origem personalizada, ela deve permanecer publicamente acessível. Para obter mais informações, consulte Veicular conteúdo privado com signed URLs e cookies.

Siga essas diretrizes de como usar instâncias do Amazon EC2 e outras origens personalizadas com o CloudFront.

  • Hospede e forneça o mesmo conteúdo em todos os servidores que estão fornecendo conteúdo da mesma origem do CloudFront. Para obter mais informações, consulte Configurações de origemValores especificados ao criar ou atualizar uma distribuição na no tópico.

  • Registre em log as entradas do cabeçalho X-Amz-Cf-Id em todos os servidores. O CloudFront requer essas informações para depuração.

  • Restrinja o acesso de solicitações às portas HTTP e HTTPS que sua origem personalizada atende.

  • Sincronizar os relógios de todos os servidores na sua implementação. Observe que o CloudFront usa o Tempo Universal Coordenado (UTC) para signed URLs e signed cookies para acessar logs e relatórios. Além disso, se você monitorar a atividade do CloudFront usando métricas do CloudWatch. Observe que o CloudWatch também usa UTC.

  • Use servidores redundantes para lidar com falhas.

  • Para obter informações sobre como usar uma origem personalizada para fornecer conteúdo privado, consulte Restringir o acesso a arquivos em origens personalizadas.

  • Para obter informações sobre o comportamento da solicitação e da resposta e os códigos de status HTTP compatíveis, consulte Comportamento de solicitações e respostas.

Se você usa o Amazon EC2 para suas origens personalizadas, recomendamos que faça o seguinte:

  1. Use uma imagem de máquina da Amazon que instala automaticamente o software para um servidor da web. Para mais informações, consulte a documentação do Amazon EC2.

  2. Use um balanceador de carga do Elastic Load Balancing para lidar com o tráfego em várias instâncias do Amazon EC2 e isolar sua aplicação das alterações nas instâncias do Amazon EC2. Por exemplo, se usar um balanceador de carga, você poderá adicionar e excluir instâncias do Amazon EC2 sem alterar a aplicação. Para mais informações, consulte a documentação do Elastic Load Balancing.

  3. Ao criar sua distribuição do CloudFront, especifique o URL do balanceador de carga para o nome de domínio do seu servidor de origem. Para obter mais informações, consulte Criar uma distribuição.

Usar grupos de origem do CloudFront

É possível especificar um grupo de origens para sua origem do CloudFront se, por exemplo, você quiser configurar o failover de origem para cenários quando precisar de alta disponibilidade. Use o failover de origem para designar uma origem principal para o CloudFront mais uma segunda origem para o qual p CloudFront muda automaticamente quando a origem primária retorna respostas específicas de falha com código de status HTTP.

Para ver as etapas para configurar um grupo de origens e para obter mais informações, consulte Otimizar a alta disponibilidade com o failover de origem do CloudFront.

Adicionar o CloudFront quando você já está distribuindo conteúdo pelo Amazon S3

Se armazenar os objetos em um bucket do Amazon S3, você poderá fazer com que os usuários os obtenham diretamente no S3 ou poderá configurar o CloudFront para obtê-los no S3 e distribuí-los para seus usuários.

nota

Para saber mais sobre como usar buckets do Amazon S3 para sua origem com o CloudFront, inclusive quando você tem um bucket do Amazon S3 configurado como um endpoint de site, consulte Usar origens, canais MediaPackage e origens personalizadas do Amazon S3 para distribuições na web.

Usar o CloudFront pode ser mais econômico se os seus usuários acessarem seus objetos com frequência. Com um uso maior, o preço da transferência de dados do CloudFront é menor que o do Amazon S3. Além disso, os downloads são mais rápidos com o CloudFront do que só com o Amazon S3 porque seus objetos são armazenados mais próximos dos usuários.

nota

Se quiser que o CloudFront respeite as configurações de compartilhamento de recursos entre origens do Amazon S3, configure o CloudFront para encaminhar o cabeçalho Origin para o Amazon S3. Para obter mais informações, consulte Armazenar conteúdo em cache com base nos cabeçalhos de solicitação.

Se você distribui conteúdo diretamente do bucket do Amazon S3 usando seu próprio nome de domínio (como example.com) em vez do nome de domínio do bucket do Amazon S3 (como DOC-EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com), é possível adicionar o CloudFront sem interrupção usando o procedimento a seguir.

Como adicionar o CloudFront quando você já estiver distribuindo seu conteúdo pelo Amazon S3

  1. Crie uma distribuição na do CloudFront. Para obter mais informações, consulte Etapas para criar uma distribuição (visão geral).

    Ao criar a distribuição, especifique o nome do seu bucket do Amazon S3 como o servidor de origem.

    Importante

    Para que seu bucket funcione com o CloudFront, o nome deve estar de acordo com os requisitos de nomenclatura do DNS. Para obter mais informações, consulte Restrições e limitações de bucket no Manual do usuário do Amazon Simple Storage Service.

    Se estiver usando um CNAME com o Amazon S3, especifique-o para a distribuição.

  2. Crie uma página da web de teste que contenha links para objetos publicamente legíveis no bucket do Amazon S3 e teste os links. Para esse teste inicial, use o nome de domínio do CloudFront da distribuição nos URLs dos objetos, por exemplo, http://d111111abcdef8.cloudfront.net/images/image.jpg.

    Para mais informações sobre o formato dos URLs do CloudFront, consulte Personalizar o formato do URL para arquivos no CloudFront.

  3. Se estiver usando CNAMEs do Amazon S3, a aplicação usará seu nome de domínio (por exemplo, exemplo.com) para fazer referência aos objetos do bucket do Amazon S3, em vez de usar o nome do bucket (por exemplo, DOC-EXAMPLE-BUCKET1.s3.amazonaws.com). Para continuar usando seu nome de domínio para fazer referência aos objetos, em vez do nome de domínio do CloudFront para sua distribuição (por exemplo, d111111abcdef8.cloudfront.net), é necessário atualizar as configurações com seu provedor de serviço de DNS.

    Para que os CNAMEs do Amazon S3 funcionem, o provedor de serviço de DNS deve ter um conjunto de registros de recurso CNAME para seu domínio que encaminhe consultas para o domínio do seu bucket do Amazon S3. Por exemplo, se um usuário solicitar este objeto:

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

    A solicitação será roteada novamente de forma automática, e o usuário verá este objeto:

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

    Para rotear consultas para a distribuição do CloudFront, em vez do bucket do Amazon S3, use o método fornecido por seu provedor de serviço de DNS para atualizar o conjunto de registros de recurso CNAME do seu domínio. Esse registro CNAME atualizado começará a redirecionar consultas de DNS do seu domínio para o nome de domínio do CloudFront da sua distribuição. Para obter mais informações, consulte a documentação fornecida por seu provedor de serviço de DNS.

    nota

    Se estiver usando o Route 53 como o serviço de DNS, você poderá usar um conjunto de registros de recurso CNAME ou um conjunto de registros de recurso de alias. Para obter informações sobre como editar conjuntos de registros de recurso, consulte Editar conjuntos de registros de recursos. Para obter informações sobre conjuntos de registros de recurso de alias, consulte Escolher entre conjuntos de registros de recursos de alias e não alias. Ambos os tópicos estão no Guia do desenvolvedor do Amazon Route 53.

    Para mais informações sobre como usar CNAMEs com o CloudFront, consulte Uso de URLs personalizados adicionando nomes de domínio alternativos (CNAMEs).

    Depois de atualizar o conjunto de registros de recurso CNAME, pode levar até 72 horas para que as alterações sejam propagadas em todo o sistema DNS, embora normalmente ocorra mais rápido. Durante esse período, algumas solicitações do seu conteúdo continuarão sendo roteadas para o bucket do Amazon S3 e outras serão direcionadas para o CloudFront.

Mover um bucket do Amazon S3 para uma região diferente

Se estiver usando o Amazon S3 como a origem de uma distribuição do CloudFront e mover o bucket para uma região diferente, o CloudFront, você poderá levar até uma hora para atualizar os registros e incluir a alteração de região quando ocorrer o seguinte:

  • Você estiver usando uma identidade de acesso de origem (OAI) do CloudFront para restringir o acesso ao bucket

  • Você mover o bucket para uma região do Amazon S3 que requer o Signature versão 4 para autenticação.

Quando estiver usando OAIs, o CloudFront você usará a região (entre outros valores) para calcular a assinatura usada para solicitar objetos do seu bucket. Para obter mais informações sobre OAIs, consulte Restringir acesso ao conteúdo do Amazon S3 usando uma identidade do acesso de origem (OAI). Para obter uma lista das regiões do Amazon S3 e as versões de assinatura compatíveis com elas, consulte Amazon Simple Storage Service (Amazon S3) no capítulo “Regiões e endpoints” da Referência geral da Amazon Web Services.

Para forçar uma atualização mais rápida dos registros do CloudFront, é possível atualizar sua distribuição do CloudFront, por exemplo, atualizando o campo Comment (Comentário) na guia General (Geral) do console do CloudFront. Ao atualizar uma distribuição, o CloudFront verifica imediatamente a região em que está seu bucket. A propagação da alteração para todos os pontos de presença deve levar menos de 15 minutos.