Aumentar a proporção de solicitações fornecidas diretamente de caches do CloudFront (taxa de acertos do cache)
É possível melhorar a performance aumentando a taxa de solicitações do visualizador fornecidas diretamente do cache do CloudFront, em vez de acessar os servidores de origem em busca de conteúdo. Isso é conhecido como melhorar a taxa de acertos de cache.
As seções a seguir explicam como melhorar sua taxa de acertos do cache.
Tópicos
- Especificar o tempo durante o qual o CloudFront armazena os objetos em cache
- Usar o Origin Shield
- Armazenar em cache com base em parâmetros de string de consulta
- Armazenar em cache com base nos valores dos cookies
- Armazenar em cache com base nos cabeçalhos de solicitação
- Remova o cabeçalho Accept-Encoding quando a compactação não for necessária
- Disponibilize conteúdo de mídia via HTTP
Especificar o tempo durante o qual o CloudFront armazena os objetos em cache
Para aumentar sua taxa de acertos do cache, é possível configurar sua origem para adicionar uma diretiva Cache-Control max-agemax-age
. Quanto menor for a duração do cache, maior será a frequência com que o CloudFront enviará solicitações para a origem a fim de determinar se um objeto foi alterado e para obter a versão mais recente. Você pode complementar max-age
com as diretivas stale-while-revalidate
e stale-if-error
para melhorar ainda mais a taxa de acerto do cache sob certas condições. Para obter mais informações, consulte Gerenciar o tempo de permanência do conteúdo no cache (expiração).
Usar o Origin Shield
O CloudFront Origin Shield pode ajudar a melhorar a taxa de acertos do cache da distribuição do CloudFront, pois ele fornece uma camada adicional de cache à frente da origem. Ao usar o Origin Shield, todas as solicitações de todas as camadas de cache do CloudFront para a origem são recebidas de um único local. O CloudFront pode recuperar cada objeto usando uma única solicitação do Origin Shield, e todas as outras camadas do cache do CloudFront (pontos de presença e caches de borda regionais) podem recuperar o objeto do Origin Shield.
Para obter mais informações, consulte Usar o Amazon CloudFront Origin Shield.
Armazenar em cache com base em parâmetros de string de consulta
Configurar o CloudFront para armazenamento em cache com base nos parâmetros de string de consulta poderá melhorar o armazenamento se você fizer o seguinte:
-
Configurar o CloudFront para encaminhar somente os parâmetros de string de consulta para os quais a origem retorna objetos exclusivos.
-
Usar as mesmas letras (maiúsculas e minúsculas) para todas as instâncias do mesmo parâmetro. Por exemplo, se uma solicitação contiver
parameter1=A
e outra,parameter1=a
, o CloudFront encaminhará solicitações separadas para sua a quando uma solicitação contiverparameter1=A
eparameter1=a
. Depois, o CloudFront armazena separadamente em cache os objetos correspondentes retornados pela origem, mesmo que eles sejam idênticos. Se você usar apenasA
oua
, o CloudFront encaminhará menos solicitações para a origem. -
Indique os parâmetros na mesma ordem. Assim como ocorre com diferenças nas letras, se uma solicitação de um objeto contiver a string de consulta
parameter1=a¶meter2=b
e outra solicitação do mesmo objeto contiverparameter2=b¶meter1=a
, o CloudFront encaminhará as duas para a origem e armazenará os objetos correspondentes separadamente, mesmo que sejam idênticos. Se você sempre usar a mesma ordem para parâmetros, o CloudFront encaminhará menos solicitações para a origem.
Para obter mais informações, consulte Conteúdo em cache com base em parâmetros de string de consulta. Para revisar as strings de consulta que o CloudFront encaminha para a origem, consulte os valores na coluna cs-uri-query
dos arquivos de log do CloudFront. Para obter mais informações, consulte Configurar e usar logs padrão (logs de acesso).
Armazenar em cache com base nos valores dos cookies
Se você configurar o CloudFront para armazenamento em cache baseado nos valores dos cookies, poderá melhorar o armazenamento em cache se:
-
Configurar o CloudFront para encaminhar apenas os cookies especificados, em vez de todos os cookies. Para os cookies configurados pelo CloudFront para serem encaminhados à origem, o CloudFront encaminha todas as combinações de nome e valor de cookie. Depois, armazenará separadamente em cache os objetos retornados pela origem, mesmo se todos forem idênticos.
Por exemplo, imagine que os visualizadores incluam dois cookies em cada solicitação, cada cookie tenha três valores possíveis e todas as combinações de valor de cookie sejam possíveis. O CloudFront encaminha até seis solicitações diferentes para a origem de cada objeto. Se a origem retornar diferentes versões de um objeto com base apenas em um dos cookies, o CloudFront encaminhará mais solicitações para a origem do que o necessário e armazenará em cache várias versões do objeto desnecessariamente.
-
Crie comportamentos de cache separados para conteúdo estático e dinâmico, e configure o CloudFront para encaminhar cookies para a origem apenas para conteúdo dinâmico.
Por exemplo, suponha que você tenha apenas um comportamento de cache para a distribuição e que esteja usando a distribuição para conteúdo dinâmico, como arquivos
.js
, e para arquivos.css
, que raramente são alterados. O CloudFront armazena versões separadas dos seus arquivos.css
em cache com base nos valores de cookie, de modo que cada ponto de presença do CloudFront encaminhe uma solicitação para a origem de cada novo valor ou combinação de valores de cookie.Se você criar um comportamento de cache para o qual o padrão de caminho é
*.css
e que o CloudFront não armazena em cache com base nos valores de cookie, o CloudFront encaminhará solicitações de arquivos.css
para sua origem apenas para a primeira solicitação recebida por um ponto de presença de um arquivo.css
e para a primeira solicitação após a expiração de um arquivo.css
. -
Se possível, crie comportamentos de cache separados para conteúdo dinâmico quando os valores de cookie forem exclusivos para cada usuário (como um ID de usuário) e que varie com base em um número menor de valores exclusivos.2
Para obter mais informações, consulte Conteúdo em cache com base em cookies. Para revisar os cookies que o CloudFront encaminha para a origem, consulte os valores na coluna cs(Cookie)
dos arquivos de log do CloudFront. Para obter mais informações, consulte Configurar e usar logs padrão (logs de acesso).
Armazenar em cache com base nos cabeçalhos de solicitação
Se você configurar o CloudFront para armazenamento em cache com base nos cabeçalhos de solicitação, poderá melhorar o armazenamento se:
-
Configure o CloudFront para encaminhar e armazenar em cache com base somente em cabeçalhos específicos, não em todos. Para os cabeçalhos especificados, o CloudFront encaminhará todas as combinações de nome e valor de cabeçalho. Depois, armazenará separadamente em cache os objetos retornados pela origem, mesmo se todos forem idênticos.
nota
O CloudFront sempre encaminha para sua origem os cabeçalhos especificados nos seguintes tópicos:
-
Como o CloudFront processa e encaminha solicitações para o servidor de origem do Amazon S3 > Cabeçalhos de solicitação HTTP removidos ou atualizados pelo CloudFront
-
Como o CloudFront processa e encaminha solicitações para seu servidor de origem personalizado > Cabeçalhos de solicitação HTTP e comportamento do CloudFront (origens do Amazon S3 e personalizadas)
Ao configurar o CloudFront para armazenamento em cache com base nos cabeçalhos da solicitação, você não altera os cabeçalhos encaminhados por ele, apenas se ele armazenar os objetos com base nos valores de cabeçalho.
-
-
Tente evitar o armazenamento em cache com base nos cabeçalhos de solicitação com um grande número de valores exclusivos.
Por exemplo, para fornecer diferentes tamanhos de uma imagem com base no dispositivo do usuário, não configure o CloudFront para armazenamento em cache com base no cabeçalho
User-Agent
, que tem um grande número de valores possíveis. Em vez disso, configure o CloudFront para cache com base nos cabeçalhos do tipo de dispositivo do CloudFrontCloudFront-Is-Desktop-Viewer
,CloudFront-Is-Mobile-Viewer
,CloudFront-Is-SmartTV-Viewer
eCloudFront-Is-Tablet-Viewer
. Além disso, se você estiver retornando a mesma versão da imagem para tablets e desktops, encaminhe somente o cabeçalhoCloudFront-Is-Tablet-Viewer
, não oCloudFront-Is-Desktop-Viewer
.
Para obter mais informações, consulte Conteúdo em cache com base nos cabeçalhos de solicitação.
Remova o cabeçalho Accept-Encoding
quando a compactação não for necessária
Se a compactação não estiver habilitada, porque a origem não é compatível, o CloudFront não é compatível ou o conteúdo não é compactável, você poderá aumentar a taxa de acertos do cache associando um comportamento de cache na distribuição a uma origem que defina o Custom Origin Header da seguinte forma:
-
Header name (Nome do cabeçalho:
Accept-Encoding
-
Header value (Valor do cabeçalho): (mantenha em branco)
Ao usar essa configuração, o CloudFront remove o cabeçalho Accept-Encoding
da chave de cache e não o inclui em solicitações de origem. Essa configuração se aplica a todo o conteúdo fornecido pelo CloudFront com a distribuição dessa origem.
Disponibilize conteúdo de mídia via HTTP
Para obter informações sobre como otimizar o conteúdo de vídeo sob demanda (VOD) e de vídeo por streaming, consulte Vídeo sob demanda e vídeo de transmissão ao vivo com o CloudFront.