¿Por qué CloudFront ofrece contenido desactualizado de Amazon S3?

4 minutos de lectura
0

Utilizo Amazon CloudFront para ofrecer objetos almacenados en Amazon Simple Storage Service (Amazon S3). Actualicé mis objetos en Amazon S3, pero mi distribución de CloudFront sigue ofreciendo las versiones anteriores de esos archivos.

Descripción breve

De forma predeterminada, CloudFront almacena en caché una respuesta de Amazon S3 durante 24 horas (TTL predeterminado de 86 400 segundos). Si su solicitud llega a una ubicación periférica que envió la respuesta de Amazon S3 en un plazo de 24 horas, CloudFront utilizará la respuesta en caché. Esto ocurre incluso si ha actualizado el contenido en Amazon S3.

Utilice uno de los siguientes métodos para enviar el contenido actualizado de Amazon S3 desde CloudFront:

Resolución

Invalidar los objetos de Amazon S3

Puede invalidar un objeto de Amazon S3 para eliminarlo de la memoria caché de la distribución de CloudFront. Una vez eliminado el objeto de la memoria caché, la siguiente solicitud recupera el objeto directamente de Amazon S3.

Antes de ejecutar este proceso, tenga en cuenta lo siguiente:

  • No puede invalidar versiones específicas de un objeto que utilice cookies o encabezados para modificar la respuesta. En este caso, CloudFront invalida todas las versiones del objeto.
  • A cada cuenta de AWS se le permiten 1000 rutas de invalidación gratuitas al mes. Para obtener más información, consulte los precios de Amazon CloudFront.

Al crear una invalidación, asegúrese de que las rutas de los objetos cumplan los siguientes requisitos:

  • Las rutas de los objetos deben ser para objetos individuales o terminar con el carácter comodín (*). Por ejemplo, no puede ejecutar una invalidación en una ruta similar a /images/*.jpeg porque la ruta no es para un objeto individual ni termina en un comodín.
  • Las mayúsculas y minúsculas de la ruta especificada deben coincidir exactamente con las de la ruta del objeto. Las solicitudes de invalidación distinguen entre mayúsculas y minúsculas.
  • Para eliminar versiones específicas de un objeto basadas en una cadena de consulta, incluya QueryString en la ruta de invalidación.

Las invalidaciones de objetos suelen tardar entre 10 y 100 segundos en completarse. Puede comprobar el estado de una invalidación visualizando la distribución desde la consola de CloudFront.

Utilizar el control de versiones de objetos

Si actualiza el contenido con frecuencia, se recomienda utilizar el control de versiones de objetos para borrar la memoria caché de la distribución de CloudFront. Si la memoria caché se actualiza frecuentemente, es posible que el uso de versiones de objetos cueste menos que el uso de invalidaciones.

Utilice uno de estos métodos para añadir el control de versiones a sus objetos:

  • Guarde las nuevas versiones del objeto en el origen con el número de versión en el nombre de la clave. Por ejemplo, si actualiza /image_v1.png, almacena una nueva versión del objeto como /image_v2.png.
  • Actualice el objeto en el origen, pero almacene en caché en función de una cadena de consulta que incluya la versión del objeto. Por ejemplo, la cadena de consulta se actualiza desde /image.png?ver=1 a /image.png?ver=2. Puede utilizar una política de caché para especificar qué cadenas de consulta se incluyen en la clave de caché y en las solicitudes de origen.
    Nota: Puede solicitar la versión anterior (/image.png?ver=1) mientras siga disponible en la memoria caché de CloudFront.

Tenga en cuenta las siguientes ventajas y desventajas para cada método de control de versiones de objetos:

  • El almacenamiento de nuevas versiones del objeto en el origen (Amazon S3) permite deshacer los cambios en las versiones anteriores que aún están disponibles con los nombres anteriores. Sin embargo, almacenar varias versiones de un objeto puede aumentar los costes de almacenamiento.
  • Actualizar el objeto en el origen pero almacenarlo en caché en función de la cadena de consulta puede reducir los costes de almacenamiento. Sin embargo, para prepararse para cualquier restauración, se recomienda mantener las versiones anteriores del objeto sin conexión.

Nota: La especificación de nombres de archivos o directorios con versión controlada no está relacionada con el control de versiones de objetos de Amazon S3. El uso de la función de control de versiones de Amazon S3 no actualiza el contenido automáticamente. Debe especificar las rutas de los archivos minuciosamente, ya que no puede cancelar una solicitud de invalidación después de haberla iniciado.

Información relacionada

Administración de cuánto tiempo se mantiene el contenido en una caché (vencimiento)

Reenvío de cadenas de consulta y almacenamiento en caché

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año