Administración de cuánto tiempo se mantiene el contenido en una caché (vencimiento)
Puede controlar cuánto tiempo se mantienen los archivos en una caché de CloudFront antes de que CloudFront reenvíe otra solicitud al origen. Reducir la duración le permite ofrecer contenido dinámico. Aumentar la duración implica que sus usuarios podrán disfrutar de un mejor rendimiento ya que es más probable que sus archivos se ofrezcan directamente desde la caché perimetral. Una mayor duración también reduce la carga en el origen.
Normalmente, CloudFront ofrece un archivo desde una ubicación de borde durante el tiempo de almacenamiento en caché especificado por usted, es decir, hasta que el archivo venza. Después de que venza, la próxima vez que la ubicación de borde reciba una solicitud de un archivo por parte de un usuario, CloudFront reenviará la solicitud al servidor de origen para comprobar que la caché contiene la versión más reciente del archivo. La respuesta del origen depende de si el archivo ha cambiado:
-
Si la caché de CloudFront ya tiene la versión más reciente, el origen devuelve un código de estado
304 Not Modified
. -
Si la caché de CloudFront no tiene la versión más reciente, el origen devuelve un código de estado
200 OK
y la versión más reciente del archivo.
Si un archivo de una ubicación de borde no se solicita con frecuencia, es posible que CloudFront lo desaloje (lo elimine antes de su fecha de vencimiento) con el fin de dejar espacio para otros archivos que se hayan solicitado más recientemente.
De forma predeterminada, cada archivo caduca automáticamente después de 24 horas, pero puede cambiar el comportamiento predeterminado de dos maneras:
-
Para cambiar la duración del almacenamiento en caché de todos los archivos que coinciden con el mismo patrón de ruta, puede cambiar la configuración de CloudFront para Minimum TTL (TTL mínimo), Maximum TTL (TTL máximo) y Default TTL (TTL predeterminado) de un comportamiento de la caché. Para obtener información sobre los ajustes individuales, consulte Minimum TTL (TTL mínimo), Maximum TTL (TTL máximo) y Default TTL (TTL predeterminado) en Valores que deben especificarse al crear o actualizar una distribución. Para utilizar estos ajustes, debe elegir la opción Customize (Personalizar) para la configuración Object Caching (Almacenamiento de objetos en caché) al crear o actualizar la distribución de CloudFront. Para obtener más información, consulte Almacenamiento de objetos en caché en Valores que deben especificarse al crear o actualizar una distribución.
-
Para cambiar la duración del almacenamiento en caché de un archivo individual, puede configurar el origen para agregar una política
Cache-Control max-age
oCache-Control s-maxage
o un campo de encabezadoExpires
en el archivo. Para obtener más información, consulte Utilizar encabezados para controlar la duración del almacenamiento en caché de objetos individuales.
Para obtener más información acerca de cómo Minimum TTL (TTL mínimo), Default TTL (TTL predeterminado) y Maximum TTL (TTL máximo) interactúan con las políticas Cache-Control
max-age
y Cache-Control s-maxage
y con el campo de encabezado Expires
, consulte Especificar durante cuánto tiempo CloudFront almacena en caché objetos para distribuciones
web.
También puede controlar durante cuánto tiempo los errores (como 404, Not Found
) permanecen en una caché de CloudFront antes de que CloudFront intente obtener de
nuevo el objeto solicitado reenviando otra solicitud al origen. Para obtener más información,
consulte Cómo CloudFront procesa y almacena en caché los códigos de estado HTTP 4xx y 5xx desde
el origen.
Temas
- Utilizar encabezados para controlar la duración del almacenamiento en caché de objetos individuales
- Especificar durante cuánto tiempo CloudFront almacena en caché objetos para distribuciones web
- Especificar el tiempo mínimo durante el cual CloudFront almacena en caché objetos para distribuciones RTMP
- Agregar encabezados a los objetos con la consola de Amazon S3
Utilizar encabezados para controlar la duración del almacenamiento en caché de objetos individuales
Puede utilizar los encabezados Cache-Control
y Expires
para controlar durante cuánto tiempo permanecen los objetos en la caché. La configuración
de Minimum TTL (Tiempo de vida mínimo), Default TTL (Tiempo de vida predeterminado) y Maximum TTL (Tiempo de vida máximo) también afecta la duración del almacenamiento en caché, pero a continuación encontrará
información general acerca de cómo los encabezados pueden influir en la duración de
la caché:
-
La política
Cache-Control max-age
le permite especificar durante cuánto tiempo (en segundos) desea que un objeto permanezca en la caché antes de que CloudFront obtenga el objeto de nuevo del servidor de origen. El tiempo de vencimiento mínimo admitido por CloudFront es de 0 segundos para distribuciones web y 3600 segundos para distribuciones RTMP. El valor máximo es 100 años. Especifique el valor en el siguiente formato:Cache-Control: max-age=
segundos
Por ejemplo, la siguiente política indica a CloudFront que debe mantener el objeto asociado en la caché durante 3600 segundos (una hora):
Cache-Control: max-age=3600
Si desea que los objetos permanezcan en las cachés de borde de CloudFront por un tiempo distinto del que permanecen en las cachés de navegadores, puede utilizar las políticas
Cache-Control max-age
yCache-Control s-maxage
de forma conjunta. Para obtener más información, consulte Especificar durante cuánto tiempo CloudFront almacena en caché objetos para distribuciones web. -
El campo del encabezado
Expires
le permite especificar una fecha y hora de vencimiento con el formato indicado en RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1 Section 3.3.1, Full Date, por ejemplo: Sat, 27 Jun 2015 23:59:59 GMT
Le recomendamos que utilice la directiva Cache-Control max-age
en lugar del campo de encabezado Expires
para controlar el almacenamiento de objetos en caché. Si especifica valores para
Cache-Control max-age
y para Expires
, CloudFront utiliza solo el valor de Cache-Control max-age
.
Para obtener más información, consulte Especificar durante cuánto tiempo CloudFront almacena en caché objetos para distribuciones web.
No puede utilizar los campos de encabezado HTTP Cache-Control
ni Pragma
en una solicitud GET
de un lector para obligar a CloudFront a volver al servidor de origen para obtener
el objeto. CloudFront ignora los campos de encabezado de las solicitudes de los lectores.
Para obtener más información acerca de los campos de encabezado Cache-Control
y Expires
, visite las siguientes secciones de RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1:
Para obtener un ejemplo de cómo agregar campos de encabezado Cache-Control
y Expires
utilizando AWS SDK para PHP, consulte Cargar un objeto mediante AWS SDK para PHP en la Guía para desarrolladores de Amazon Simple Storage Service. También hay herramientas de terceros que pueden añadir estos campos.
Especificar durante cuánto tiempo CloudFront almacena en caché objetos para distribuciones web
Para distribuciones web, puede utilizar encabezados Cache-Control
o Expires
y valores de TTL mínimos, máximos y predeterminados de CloudFront para controlar
durante cuántos segundos CloudFront mantiene un objeto en la caché antes de reenviar
otra solicitud al origen. Los valores del encabezado también determinan durante cuánto
tiempo un navegador mantiene un objeto en la caché antes reenviar otra solicitud a
CloudFront.
Si configura CloudFront para reenviar todos los encabezados al origen para un comportamiento de la caché, CloudFront nunca almacenará en caché los objetos asociados. En su lugar, CloudFront reenviará todas las solicitudes de esos objetos al origen. En dicha configuración, el valor de Minimum TTL (Tiempo de vida mínimo) deberá ser 0. Para obtener más información, consulte Almacenamiento en caché de contenido en función de encabezados de solicitud.
Para especificar valores de Minimum TTL (TTL mínimo), Maximum TTL (TTL máximo) y Default TTL (TTL predeterminado), debe elegir la opción Customize (Personalizar) para la configuración de Object Caching (Almacenamiento de objetos en caché).
Configuración de origen | Minimum TTL = 0 Seconds | Minimum TTL > 0 Seconds |
---|---|---|
El origen agrega una política de |
Almacenamiento en caché de CloudFront CloudFront almacena en caché los objetos durante el menor de estos dos valores: el
de la política Almacenamiento en caché de navegadores Los navegadores almacenan en caché objetos según el valor de la directiva |
Almacenamiento en caché de CloudFront El almacenamiento en caché de CloudFront depende de los valores del TTL mínimo y TTL
máximo de CloudFront y de la política
Almacenamiento en caché de navegadores Los navegadores almacenan en caché objetos según el valor de la directiva |
El origen no agrega una política |
Almacenamiento en caché de CloudFront CloudFront almacena en caché los objetos por el valor del TTL predeterminado de CloudFront. Almacenamiento en caché de navegadores Depende del navegador. |
Almacenamiento en caché de CloudFront CloudFront almacena en caché los objetos por el mayor valor del TTL mínimo de CloudFront o TTL predeterminado. Almacenamiento en caché de navegadores Depende del navegador. |
El origen agrega políticas |
Almacenamiento en caché de CloudFront CloudFront almacena en caché los objetos durante el menor de estos dos valores: el
de la política Almacenamiento en caché de navegadores Los navegadores almacenan en caché objetos según el valor de la directiva |
Almacenamiento en caché de CloudFront El almacenamiento en caché de CloudFront depende de los valores del TTL mínimo y TTL
máximo de CloudFront y de la política
Almacenamiento en caché de navegadores Los navegadores almacenan en caché objetos según el valor de la directiva |
El origen añade un encabezado |
Almacenamiento en caché de CloudFront CloudFront almacena en caché los objetos hasta la fecha del encabezado Almacenamiento en caché de navegadores Los navegadores almacenan objetos en la caché hasta la fecha del encabezado |
Almacenamiento en caché de CloudFront El almacenamiento en caché de CloudFront depende de los valores de los TTL mínimo
y máximo de CloudFront y del encabezado
Almacenamiento en caché de navegadores Los navegadores almacenan objetos en la caché hasta la fecha y hora del encabezado
|
El origen agrega políticas |
CloudFront y los navegadores respetan los encabezados. Para obtener una excepción de cómo CloudFront gestiona el encabezado |
Almacenamiento en caché de CloudFront CloudFront almacena en caché los objetos por el valor del TTL mínimo de CloudFront. Almacenamiento en caché de navegadores Los navegadores respetan los encabezados. |
Para obtener información acerca de cómo cambiar la configuración de distribuciones web mediante la consola de CloudFront, consulte Actualización de una distribución. Para obtener información acerca de cómo cambiar la configuración de distribuciones web con la API de CloudFront consulte PUT Config.
Especificar el tiempo mínimo durante el cual CloudFront almacena en caché objetos para distribuciones RTMP
Para distribuciones RTMP, CloudFront almacena objetos en cachés de borde durante 24
horas de forma predeterminada. Puede agregar encabezados Cache-Control
o Expires
a los objetos para cambiar la cantidad de tiempo que CloudFront mantiene objetos
en cachés de borde antes de reenviar otra solicitud al origen. La duración mínima
es de 3 600 segundos (una hora). Si especifica un valor inferior, CloudFront utiliza
3600 segundos.
Agregar encabezados a los objetos con la consola de Amazon S3
En la consola de Amazon S3, solo puede agregar encabezados a un objeto a la vez, pero
algunas herramientas de terceros le permiten agregar encabezados a varios objetos
de Amazon S3 a la vez. Para obtener más información acerca de las herramientas de
terceros compatibles con Amazon S3, busque en la web de AWS S3 third party tools
.
Para agregar un campo de encabezado Cache-Control
o Expires
a objetos de Amazon S3 mediante la consola de Amazon S3
-
Inicie sesión en la consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3
. -
En la consola de Amazon S3, en la lista Bucket name (Nombre del bucket), elija el nombre del bucket que contiene los archivos.
-
En la lista Name (Nombre), seleccione el nombre del objeto al que desea añadir un encabezado.
-
Seleccione Properties (Propiedades) y luego Metadata (Metadatos).
-
Seleccione Add Metadata (Añadir metadatos) y, a continuación, en el menúKey (Clave), elija Cache-Control (Control de caché) o Expires (Caduca).
-
En el campo Value (Valor), escriba una de las siguientes opciones:
-
En un campo
Cache-Control
, escriba:max-age=
number of seconds that you want objects to stay in a CloudFront edge cache
-
En un campo Expires, escriba una fecha y hora en formato HTML.
-
-
Seleccione Save.