Cuándo usar Amazon Cloudfront o S3

232

¿Hay casos de uso que se prestan mejor a Amazon Cloudfront sobre s3 o al revés? Estoy tratando de entender la diferencia entre los 2 a través de ejemplos.

Kamo
fuente
1
Si está sirviendo archivos, solo CloudFront le permite tener HTTPS en un dominio personalizado. Eso lo selló para nosotros.
mlissner

Respuestas:

373

Amazon S3 está diseñado para el almacenamiento de archivos de gran capacidad y bajo costo en una región geográfica específica. * Los costos de almacenamiento y ancho de banda son bastante bajos.

Amazon CloudFront es una red de entrega de contenido (CDN) que representa y almacena en caché los datos web en ubicaciones periféricas lo más cercanas posible a los usuarios.

Cuando los usuarios finales solicitan un objeto con este nombre de dominio, se enrutan automáticamente a la ubicación de borde más cercana para la entrega de alto rendimiento de su contenido. ( Amazon )

Los datos servidos por CloudFront pueden o no provenir de S3. Como está más optimizado para la velocidad de entrega, el ancho de banda cuesta un poco más.

Si su base de usuarios está localizada , no verá demasiada diferencia trabajando con S3 o CloudFront (pero debe elegir la ubicación correcta para su depósito S3: EE. UU., UE, APAC). Si su base de usuarios se extiende a nivel mundial y la velocidad es importante, CloudFront puede ser una mejor opción.

Tanto S3 y CloudFront permiten alias de dominio, sin embargo CloudFront permite múltiples alias de modo que d1.mystatics.com, d2.mystatics.comy d3.mystatics.compodría apuntan a la misma ubicación aumentar la capacidad de descargas paralelas (esto solía ser recomendado por Google , pero con la introducción de SPDY y HTTP / 2 es de menor importancia).

CloudFront también es compatible con CORS a partir de 2014 (gracias sergiopantoja).

* Nota: S3 ahora puede replicarse automáticamente en regiones adicionales a partir de 2015.

eillarra
fuente
10
Gracias, gran respuesta.
Kamo
3
Hay una diferencia para las fuentes web debido a que CloudFront no es totalmente compatible con CORS. Almacena en caché los encabezados en la respuesta S3, pero para un soporte completo de CORS, algunos encabezados deberían variar según el servidor solicitante (origen). Solución
Cymen
11
Para mantener esto actualizado, CloudFront admite CORS ahora: aws.amazon.com/about-aws/whats-new/2014/06/26/…
sergiopantoja
Tenga en cuenta que Cloudfront desaloja el contenido muy rápidamente. Establecer la edad máxima en más de un día no significa que su contenido no será desalojado si no se ha tocado durante 61 minutos. No se usa mucho el contenido específico del usuario, ya que eso equivale a un acceso poco frecuente.
BobB
53

CloudFront y S3 Bucket no son lo mismo . En términos simples: CloudFront le permite acelerar la entrega de contenido de sus contenidos web a través de Content Delivery Network (CDN) en ubicaciones de borde, mientras que S3 Buckets es donde almacena sus archivos reales. Las fuentes de CloudFront pueden no ser necesariamente de S3, pero para una visualización más fácil de la integración de S3 con CloudFront: ingrese la descripción de la imagen aquí

mel3kings
fuente
¡Gracias! Este diagrama demuestra la diferencia claramente.
Rajan Sharma
28

Otra diferencia importante es que CloudFront le permite duplicar el sitio en su servidor. Cloudfront luego almacena en caché los archivos como imágenes, mp3 o video usando su red de entrega de contenido.

Esto le ahorra tener que duplicar sus activos como lo haría cuando usa Amazon S3.

Sin embargo, después de que un archivo caduque, CloudFront lo recuperará nuevamente de su sitio en vivo (con costo). Por lo tanto, el frente de la nube es mejor para los archivos a los que se accede con frecuencia, y menos para los que se accede con poca frecuencia.

Una forma de establecer la caducidad del archivo para apache es en .htaccess. Por ejemplo

<filesMatch "\\.(mp3|mp4)$">
Header set Cache-Control "max-age=648000, private"
</filesMatch>
dwenaus
fuente
20

Amazon CLOUDFRONT y S3 son dos servicios diferentes proporcionados por Amazon Web Services.

Amazon S3 es un servicio de almacenamiento en el que podemos almacenar archivos estáticos como:

css, imágenes, javascripts, videos, etc.

Amazon CloudFront es un middleware que se interpone entre un usuario que solicita un archivo de AWS y el centro de datos de S3 en una región específica, CloudFront se utiliza para acelerar la distribución de su contenido web estático y dinámico de S3 al usuario.

Puedes entenderlo mejor con un ejemplo: -

Por ejemplo, su S3 se encuentra en la región de AWS EE. UU. Este (N. Virginia), que es una ubicación del centro de datos para almacenar sus archivos.

Si un usuario de la India intenta acceder a un archivo desde un servidor de AWS en Virginia, el usuario deberá ir a esa ubicación específica con una solicitud, y esto llevará mucho tiempo.

Lo que hace CloudFront es que se erige como un middleware entre el usuario y AWS S3.


Los archivos más utilizados se pueden almacenar en caché en CloudFront y lo que hace es replicar esos archivos en ubicaciones de borde (para entregar contenido a usuarios finales con menor latencia, Amazon CloudFront utiliza una red global de ubicaciones de borde para la entrega de contenido).

Si el contenido ya está en la ubicación de borde con la latencia más baja, CloudFront lo entrega de inmediato. Si el contenido no se encuentra actualmente en esa ubicación de borde, CloudFront lo recupera de un bucket de Amazon S3 y se lo proporciona al usuario lo más rápido posible.

Cada solicitud recibe un nuevo DNS de CloudFront al S3, por lo que esto generaría un menor tráfico y un procesamiento de solicitudes más paralelo.

La siguiente es la lista de ubicaciones de borde actuales para julio-2016: -

Estados Unidos

  • Ashburn, VA (3)
  • Atlanta, Georgia
  • Chicago, IL
  • Dallas / Fort Worth, TX (2)
  • Hayward, CA
  • Jacksonville, FL
  • Los Ángeles, CA (2)
  • Miami, Florida
  • Nueva York, NY (3)
  • Newark, NJ
  • Palo Alto, CA
  • San jose, ca
  • Seattle, WA
  • South Bend, IN
  • St. Louis, MO

Europa

  • Ámsterdam, Países Bajos (2)

  • Dublín, Irlanda

  • Fráncfort, Alemania (3)

  • Londres, Inglaterra (3)

  • Madrid, España

  • Marsella, Francia

  • Milán, Italia

  • París, Francia (2)

  • Estocolmo, Suiza

  • Varsovia, Polonia

Asia

  • Chennai, India

  • Hong Kong (2)

  • Mumbai, India

  • Manila, Filipinas

  • Nueva Delhi, India

  • Osaka, Japón

  • Seúl, Corea (3)

  • Singapur (2)

  • Taipei, Taiwán

  • Tokio, Japón (2)

Australia

  • Melbourne, Australia

  • Sydney, Australia

Sudamerica

  • São Paulo, Brasil

  • Rio de Janeiro, Brasil

A partir de esto, puede concluir que si los usuarios son limitados y pertenecen a la misma región en la que está alojado su S3, entonces no necesita ir a CloudFront, y si la cantidad de usuarios aumenta a nivel global, definitivamente debería usar CloudFront para una mejor latencia y control de tráfico.

Patrick R
fuente
1
esta es la mejor respuesta
João Otero
14

Otro caso para usar CloudFront sobre S3 es que puede usar un certificado SSL para un dominio personalizado en CloudFront, mientras que no puede hacerlo en S3. Una muy buena razón en mi humilde opinión!

rgubby
fuente
2
¡Y con el nuevo Certificate Manager es incluso fácil!
phatmann
7

Amazon S3 es un servicio de almacenamiento simple, se puede utilizar una gran cantidad de información, es decir, videos, imágenes, PDF, etc.

CloudFront es una red de entrega de contenido, que está más cerca del usuario final y se utiliza para hacer que la información esté disponible en Amazon S3 en el menor tiempo posible.

Un caso de uso de muestra es Video on Demand.

  1. Almacena tus videos en un solo lugar. S3 almacena todos los videos pregrabados en diferentes formatos.
  2. Tienes un caso de usuario global
  3. CloudFront se utiliza para almacenar en caché el video en ubicaciones de borde. Esto se puede usar para entregar contenido al usuario final. La ubicación se recoge automáticamente en función de la ubicación del borde físico más cercano. Actualmente hay alrededor de 51 ubicaciones de borde.

Algunas ventajas de usar CloudFront para el caso de uso correcto:

  1. Latencia mejorada: mejor experiencia del usuario final.
  2. Posible costo de transferencia de datos reducido. Como los datos no se transfieren cada vez desde el mismo grupo S3 en una región de AWS en particular.

Otros posibles casos de uso:

  1. Transmisión en vivo
  2. Juego de azar
  3. Aceleración de sitios web
Gurmeet_BlazeClan
fuente
4

Un aspecto perdido aquí es:

Amazon Cloudfront también ofrece precios más bajos que Amazon S3 en niveles de uso más altos.

  • Cloudfront CDN es para la distribución de contenido en múltiples servidores distribuidos geográficamente (CSS, JS)

  • Mientras que s3 es más un almacén de recursos menos utilizado por usuario (imágenes de usuario, PDF).

Puede servir sus recursos de Cloudfront desde un bucket s3 sin pasar por alto su servidor web.

( Útil en situaciones en las que su servidor web precompila y almacena imágenes y secuencias de comandos Java. Almacenarlas en s3 significa que la huella de memoria de su servidor se reduce )

Por ejemplo: en Heroku Slugs (los tamaños de aplicación cumplidos se pueden reducir usando s3 y envolviéndolo con CDN en la nube mejorará el rendimiento)

Abdominales
fuente
2

Como primera, me gustaría explicar que Amazon S3 es el almacenamiento en la nube y Cloud Front es la red de entrega de contenido (CDN).

Por lo tanto, puede usar para almacenar los archivos en S3 y puede crear la distribución para servir el contenido a través de Internet. Además, puede crear una distribución para las regiones específicas.

Kailash Malav
fuente
1

Amazon S3 es una excelente plataforma de almacenamiento de objetos si está buscando un sistema de almacenamiento distribuido a nivel mundial para protegerlo contra la caída de regiones / zonas. También es ideal para contenido estático / fijo que no es transaccional y cambiante, como imágenes, videos, imágenes, copias de seguridad, etc. ¡Espero que ayude!

JStorage
fuente