Como configurar uma distribuição do Amazon CloudFront para o Amazon S3
O Amazon CloudFront funciona perfeitamente com o Amazon Simple Storage Service (Amazon S3) para acelerar a entrega de seu conteúdo Web e reduzir a carga em seus servidores de origem. O Amazon S3 é uma excelente opção para quem deseja armazenar dados na nuvem e entregá-los como conteúdo da Web. Se você preferir oferecer funcionalidade ou conteúdo dinâmico, confira como configurar uma distribuição do Amazon CloudFront para o Amazon Elastic Compute Cloud (Amazon EC2).
Quais são os benefícios de configurar uma distribuição do Amazon CloudFront com o Amazon S3?
Uma distribuição de rede de entrega de conteúdo (CDN) do Amazon CloudFront traz muitos benefícios aos usuários do S3.
Velocidades rápidas de transferência de dados
O CloudFront permite que você ofereça seu conteúdo rapidamente para espectadores em todo o mundo. Os muitos locais da borda do CloudFront armazenam em cache e entregam seu conteúdo mais perto dos usuários, reduzindo a latência e a capacidade de descarga do seu servidor de origem.
Segurança e desempenho aprimorados
O CloudFront também restringe o acesso ao bucket do S3. Ao permitir que apenas os endpoints do CloudFront forneçam acesso ao seu conteúdo, suas aplicações ficarão mais seguras e responsivas.
Transferências de dados econômicas
Os preços do CloudFront permitem que você personalize a entrega de acordo com seu orçamento. A AWS não cobra pela transferências de dados entre uma origem hospedada pela AWS, como S3 e CloudFront, tornando as buscas de origem uma opção econômica.
Acelere sua velocidade de carregamento dinâmico de conteúdo com o CloudFront e o S3
No vídeo, veja como configurar sua origem e começar a testar sua distribuição de CDN do CloudFront em apenas 15 minutos.
Etapa 1. Acesse o Console da AWS | Etapa 2. Criar um bucket do Amazon S3 | Etapa 3. Criar uma distribuição do CloudFront | Etapa 4. Especifique suas configurações de distribuição | Etapa 5. Configure sua origem | Etapa 6. Configurar a identidade do acesso de origem | Etapa 7. Configurar o comportamento padrão do cache | Etapa 8. Configure os TTLs | Etapa 9. Configurar atributos adicionais | Etapa 10. Teste sua distribuição do CloudFront
Etapa 1. Acesse o Console da AWS
Para começar, faça login no Console de Gerenciamento da AWS e selecione Amazon S3 na lista de serviços.
Etapa 2. Criar um bucket do Amazon S3
A partir daí, você pode:
- Crie um bucket do S3 se você ainda não tiver um, selecionando Criar bucket.
- Especifique um nome de bucket compatível com DNS.
- Selecione a região em que você deseja que o bucket esteja localizado.
Em seguida, crie seu bucket. Usando o console ou as APIs do S3, você pode adicionar mais arquivos ao seu bucket ou criar novos buckets, se desejar. Quando você cria inicialmente um bucket do S3, leva algum tempo para propagar a alteração do nome do DNS, geralmente até 15 minutos.
Etapa 3. Criar uma distribuição do CloudFront
Em seguida, acesse o CloudFront na seção Rede e entrega de conteúdo da lista de serviços do Console da AWS. Se você já abriu o CloudFront, ele também poderá estar no seu histórico para um acesso mais rápido. A partir daqui, você pode criar uma nova distribuição na Web clicando em Criar distribuição.
Etapa 4. Especifique suas configurações de distribuição
Agora, você pode começar a inserir suas configurações de distribuição. Isso começa especificando o domínio S3 que você criou no campo Nome do domínio de origem.
Etapa 5. Configure sua origem
Digite seu nome de domínio de origem. Se você criou o bucket S3 na mesma conta da AWS, ele deve aparecer em uma lista suspensa dentro do campo. Se estiver em uma conta diferente, verifique as configurações do bucket para conceder permissões de acesso ao CloudFront.
Conceder permissões de acesso permite que o CloudFront leia os objetos do seu bucket. Você também pode especificar um caminho de origem se colocar todos os seus objetos em uma subpasta.
Etapa 6. Configurar a identidade do acesso de origem
A partir daqui, você pode restringir o acesso à sua origem do Amazon S3. Se você selecionar sim, o sistema solicitará que você crie uma identidade do Origin Access ou selecione uma existente, permitindo que o CloudFront leia os objetos do seu bucket. Você também tem a opção de permitir que o CloudFront atualize a política de bucket para você.
Se você optar por não restringir o acesso, os usuários poderão ignorar seu CloudFront e acessar o conteúdo diretamente por meio da URL do bucket do S3. Para qualquer conteúdo privado ou confidencial, é importante definir as restrições de acesso corretas.
Nesta seção, você também pode especificar um caminho de origem se armazenar todos os seus objetos em uma subpasta. Você pode fornecer um cabeçalho personalizado de origem com um valor especificado que o CloudFront encaminhará para a origem em cada solicitação. Isso é útil para origens personalizadas, pois mostra qual solicitação veio do CloudFront em comparação com outro cliente.
Etapa 7. Configurar o comportamento padrão do cache
Em seguida, você tem várias opções em Configurações padrão de comportamento de cache.
A Política de Protocolo do Visualizador permite que você escolha como lidar com os protocolos HTTP e HTTPS. Você pode optar por redirecionar solicitações HTTP para HTTPS, por exemplo, permitindo que você ofereça suporte a solicitações usando qualquer um dos protocolos. Você também pode especificar o suporte somente para HTTPS. Nesse caso, o tráfego HTTP será descartado. Isso garante que você esteja em conformidade com as melhores práticas de segurança na Web.
O CloudFront permite que você especifique quais métodos HTTP você deseja que ele aceite. A configuração padrão é GET, HEAD. Selecionar qualquer uma das outras opções (GET, HEAD, OPTIONS ou GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE) permitirá que você configure como o CloudFront armazena em cache o método de opções.
Em seguida, você pode especificar quais cabeçalhos HTTP deseja encaminhar para sua origem. Geralmente, é recomendável permitir cabeçalhos de acordo com o comportamento relevante de solicitação e resposta para sua origem no Amazon S3. Se sua origem estiver analisando cabeçalhos HTTP específicos para decidir qual objeto retornar, você deverá permiti-los. Se você encaminhar todos os cabeçalhos HTTP, o CloudFront realmente ignorará as camadas de cache e não tentará armazenar o objeto em cache.
Etapa 8. Configure os TTLs
Na próxima seção, você pode especificar o Time to Live (TTL), gerenciando por quanto tempo o conteúdo permanece no cache antes de expirar. Por padrão, Usar cabeçalhos de cache de origem será selecionado. Como alternativa, você pode personalizar os limites de tempo superior e inferior para que os objetos sejam armazenados no cache do CloudFront.
Se você optar por editar essas configurações, será necessário inserir um TTL mínimo e máximo em segundos. Então, se o cabeçalho retornar um valor fora do seu valor mínimo ou máximo, o CloudFront usará seu TTL mínimo ou máximo. Se estiver dentro desses limites, o CloudFront usará o valor retornado de sua origem.
Se sua origem não retornar nenhum cabeçalho de controle de cache, o TTL padrão será usado em seu lugar. Em nosso vídeo de exemplo, o valor padrão é definido como 86.400 segundos, o que equivale a 24 horas.
Etapa 9. Configurar atributos adicionais
Na próxima seção, você pode optar por armazenar conteúdo em cache com base em cookies e parâmetros de sequência de caracteres de consulta.
Assim como nos cabeçalhos HTTP, a recomendação é permitir somente os cookies ou valores da string de consulta que sejam relevantes para sua origem. Você também pode encaminhá-los e o CDN ainda tentará armazená-los em cache. Tome cuidado ao optar por encaminhar tudo. Isso pode reduzir consideravelmente a taxa de acertos de cache se o CloudFront encaminhar tudo. Como resultado, você pode ter um grande número de objetos armazenados em cache várias vezes devido às diferentes variações possíveis de consultas e valores de cookies.
Em seguida, você tem mais opções nos seguintes campos:
- Você pode selecionar Smooth Streaming se estiver entregando vídeo sob demanda (VOD) com o CloudFront.
- Você pode optar por restringir o acesso do visualizador se os usuários acessarem conteúdo privado no CloudFront.
- Você pode optar por compactar objetos automaticamente se o CloudFront estiver servindo arquivos compactados.
- Você pode criar várias funções para invocar usando a seção Eventos do Lambda@Edge. Para obter mais informações, consulte Personalização na borda com o Lambda@Edge.
Em Configurações de distribuição, você pode especificar quais partes da rede do CloudFront você deseja usar. Por padrão, o CloudFront usará todos os locais da borda para obter o melhor desempenho. Isso ajudará a veicular seu conteúdo o mais rápido possível em todo o mundo.
Se você espera apenas espectadores em regiões específicas, como EUA, Canadá e Europa, especifique somente essas regiões como uma classe de preço mais baixa. Isso não significa que espectadores fora dessas regiões não possam acessar seu conteúdo. O CloudFront simplesmente os direcionaria para o local da borda mais próximo. Se você usar o AWS Web Application Firewall (AWS WAF) com o CloudFront, também poderá definir essas configurações aqui.
Antes de salvar sua distribuição, é importante gerenciar o certificado Secure Sockets Layer (SSL). Há duas opções aqui:
- Use o Certificado padrão do CloudFront.
- Faça upload ou solicite um certificado SSL personalizado do AWS Certificate Manager (ACM) e associe-o à sua distribuição do CloudFront; isso é adequado se você usa um domínio personalizado.
Finalmente, você pode usar as configurações restantes para especificar:
- Quais versões HTTP compatíveis você quer usar.
- Se você usará o Registro em log e qual Bucket para Logs o CloudFront deve usar para armazenar qualquer registro de acesso.
- Se o registro em log de cookies estiver ativo.
A partir daí, você pode inserir uma descrição e criar a distribuição. Depois de salva, a distribuição levará aproximadamente 15 minutos para ser implantada em todo o mundo.
Etapa 10. Teste sua distribuição do CloudFront
Quando a distribuição estiver pronta, você poderá clicar nela para revisar suas configurações. A primeira tela mostrará várias guias e as configurações que você especificou. A partir daí, você pode adicionar outras origens e vários comportamentos de cache, se necessário.
O CloudFront também permite que você crie páginas de erro personalizadas ou altere por quanto tempo as respostas de erro permanecem no cache selecionando Criar resposta de erro do cliente. Você pode adaptar essas configurações para cada código de erro HTTP. Digamos que você queira tentar novamente a cada 403. Você poderá especificar um TTL mínimo de 0 segundos. Por padrão, o CloudFront armazena tudo em cache por 300 segundos para aliviar parte da carga na origem. Você também pode criar respostas de erro personalizadas para cada código de erro, se desejar.
Na guia Restrições, você pode ativar restrições geográficas para permitir ou impedir que espectadores em locais específicos vejam seu conteúdo. A guia Invalidações permitirá que você remova objetos personalizados dos caches da borda do CloudFront. Por fim, você pode usar a guia Tags para aplicar tags personalizadas, ajudando você a organizar e identificar suas distribuições.
Depois de concluído, copie o domínio e cole-o em seu navegador para ver a distribuição em ação. Você também pode aprender a entregar o conteúdo dinâmico do aplicativo usando o CloudFront com uma instância de servidor Web do Amazon EC2.
Modelo do Amazon CloudFormation para ajudar você a começar a usar o CloudFront
O modelo do Amazon CloudFormation também ajudará você a começar a usar o CloudFront. Esse modelo iniciará um bucket do S3 para armazenar seus arquivos estáticos em grande escala e, em seguida, entregará esse conteúdo aos usuários por meio da CDN do CloudFront.
Para obter mais informações, leia a postagem do blog intitulada Amazon S3 + Amazon CloudFront: A Match Made in the Cloud (Amazon S3 + Amazon CloudFront: um encontro nas nuvens) e obtenha o modelo do CloudFormation.
Recursos adicionais sobre entrega de conteúdo com o CloudFront
Não sabe como começar a usar o CloudFront? Consulte nosso guia de introdução às redes de entrega de conteúdo ou acesse o hub de documentação da rede de entrega de conteúdo da Amazon Web Services.
Confira esses recursos sobre como gerenciar sua distribuição do CloudFront no S3 em nosso Centro de Conhecimento de Suporte Premium:
Recursos adicionais
Descubra mais recursos do Amazon CloudFront