Quand utiliser Amazon Cloudfront ou S3

232

Existe-t-il des cas d'utilisation qui se prêtent mieux à Amazon Cloudfront sur s3 ou l'inverse? J'essaie de comprendre la différence entre les 2 à travers des exemples.

Kamo
la source
1
Si vous servez des fichiers, seul CloudFront vous permet d'avoir HTTPS sur un domaine personnalisé. Cela nous a scellé.
mlissner

Réponses:

373

Amazon S3 est conçu pour un stockage de fichiers à grande capacité et à faible coût dans une région géographique spécifique. * Les coûts de stockage et de bande passante sont assez faibles.

Amazon CloudFront est un réseau de distribution de contenu (CDN) qui procède à la mise en cache et à la mise en cache des données Web à des emplacements périphériques aussi proches que possible des utilisateurs.

Lorsque les utilisateurs finaux demandent un objet à l'aide de ce nom de domaine, ils sont automatiquement acheminés vers l'emplacement périphérique le plus proche pour une livraison hautes performances de votre contenu. ( Amazon )

Les données servies par CloudFront peuvent ou non provenir de S3. Puisqu'il est plus optimisé pour la vitesse de livraison, la bande passante coûte un peu plus.

Si votre base d'utilisateurs est localisée , vous ne verrez pas trop de différence avec S3 ou CloudFront (mais vous devez choisir le bon emplacement pour votre compartiment S3: US, EU, APAC). Si votre base d'utilisateurs est répartie dans le monde entier et que la vitesse est importante, CloudFront peut être une meilleure option.

S3 et CloudFront autorisent les alias de domaine, mais CloudFront autorise plusieurs alias de sorte que d1.mystatics.com, d2.mystatics.comet d3.mystatics.compourraient tous pointer vers le même emplacement augmentant la capacité de téléchargements parallèles (cela était recommandé par Google mais avec l'introduction de SPDY et HTTP / 2 est de moindre importance).

CloudFront prend également en charge CORS à partir de 2014 (merci sergiopantoja).

* Remarque: S3 peut désormais se répliquer automatiquement vers d'autres régions à partir de 2015.

eillarra
la source
10
Merci, bonne réponse.
Kamo
3
Il existe une différence pour les polices Web car CloudFront ne prend pas totalement en charge CORS. Il met en cache les en-têtes dans la réponse S3 mais pour une prise en charge complète de CORS, certains en-têtes doivent varier en fonction du serveur demandeur (origine). Solution
Cymen
11
Pour maintenir cette mise à jour, CloudFront prend en charge CORS
sergiopantoja
Sachez que Cloudfront expulse le contenu très rapidement. La définition de max-age sur plus d'une journée ne signifie pas que votre contenu ne sera pas expulsé s'il n'a pas été touché pendant 61 minutes. Pas beaucoup d'utilisation pour le contenu spécifique à l'utilisateur car cela équivaut à un accès peu fréquent.
BobB
53

CloudFront et S3 Bucket ne sont pas les mêmes . En termes simples: CloudFront vous permet d'accélérer la livraison de contenu de votre contenu Web via Content Delivery Network (CDN) dans des emplacements périphériques, tandis que les compartiments S3 sont l'endroit où vous stockez vos fichiers réels. Les sources CloudFront ne proviennent pas nécessairement de S3, mais pour une visualisation plus facile de l'intégration de S3 avec CloudFront: entrez la description de l'image ici

mel3kings
la source
Merci! ce diagramme montre clairement la différence.
Rajan Sharma
28

Une autre différence majeure est que CloudFront vous permet de mettre en miroir le site sur votre serveur. Cloudfront met ensuite en cache les fichiers tels que les images, les mp3 ou les vidéos à l'aide de son réseau de diffusion de contenu.

Cela vous évite d'avoir à dupliquer vos actifs comme vous le feriez lorsque vous utilisez Amazon S3.

Cependant, après l'expiration d'un fichier, CloudFront le récupérera à nouveau de votre site en direct (au prix coûtant). Donc, le cloud front est le meilleur pour les fichiers fréquemment consultés, et moins pour les fichiers rarement utilisés.

Une façon de définir l'expiration du fichier pour apache est dans .htaccess. Par exemple

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

Amazon CLOUDFRONT et S3 sont deux services différents fournis par Amazon Web Services.

Amazon S3 est un service de stockage dans lequel nous pouvons stocker des fichiers statiques comme:

css, images, javascripts, vidéos, etc ...

Amazon CloudFront est un middleware qui se situe entre un utilisateur demandant un fichier à AWS et le centre de données S3 dans une région spécifique, CloudFront est utilisé pour accélérer la distribution de votre contenu Web statique et dynamique de S3 à l'utilisateur.

Vous pouvez mieux le comprendre par un exemple: -

Par exemple, votre S3 est situé dans la région AWS US East (Virginie du Nord) où se trouve un centre de données pour stocker vos fichiers.

Si un utilisateur indien essaie d'accéder à un fichier à partir d'un serveur AWS en Virginie, l'utilisateur devra se rendre à cet emplacement spécifique avec une demande, ce qui prendra beaucoup de temps.

Ce que fait CloudFront, c'est qu'il se présente comme un middleware entre l'utilisateur et AWS S3.


Les fichiers les plus souvent utilisés peuvent être mis en cache sur CloudFront et ce qu'il fait, c'est qu'il réplique ces fichiers sur des emplacements périphériques (pour fournir du contenu aux utilisateurs finaux avec une latence plus faible, Amazon CloudFront utilise un réseau mondial d'emplacements périphériques pour la livraison de contenu).

Si le contenu se trouve déjà à l'emplacement périphérique avec la latence la plus faible, CloudFront le fournit immédiatement. Si le contenu ne se trouve pas actuellement dans cet emplacement périphérique, CloudFront le récupère à partir d'un compartiment Amazon S3 et le fournit à l'utilisateur aussi rapidement que possible.

Chaque demande reçoit un nouveau DNS de CloudFront vers le S3, ce qui entraînerait une baisse du trafic ainsi qu'un traitement des demandes plus parallèle.

Voici la liste des emplacements de bord actuels en juillet-2016: -

États Unis

  • Ashburn, Virginie (3)
  • Atlanta, GA
  • Chicago, IL
  • Dallas / Fort Worth, TX (2)
  • Hayward, CA
  • Jacksonville, FL
  • Los Angeles, Californie (2)
  • Miami, FL
  • New York, État de New York (3)
  • Newark, NJ
  • Palo Alto, Californie
  • San Jose, Californie
  • Seattle, WA
  • South Bend, IN
  • St. Louis, MO

L'Europe 

  • Amsterdam, Pays-Bas (2)

  • Dublin, Irlande

  • Francfort, Allemagne (3)

  • Londres, Angleterre (3)

  • Madrid, Espagne

  • Marseille, France

  • Milan, Italie

  • Paris, France (2)

  • Stockholm, Suède

  • Warsaw, Pologne

Asie

  • Chennai, Inde

  • Hong Kong (2)

  • Mumbai, Inde

  • Manille, Philippines

  • New Delhi, Inde

  • Osaka, Japon

  • Séoul, Corée (3)

  • Singapour (2)

  • Taipei, Taiwan

  • Tokyo, Japon (2)

Australie

  • Melbourne, Australie

  • Sydney, Australie

Amérique du Sud

  • São Paulo, Brésil

  • Rio de Janeiro, Brésil

De cela, vous pouvez conclure que si les utilisateurs sont limités sont de la même région que votre S3 est hébergé, alors vous n'avez pas besoin d'aller pour CloudFront, et si le nombre d'utilisateurs est augmenté au niveau mondial, alors vous devez certainement utiliser CloudFront pour une meilleure latence et un meilleur contrôle du trafic.

Patrick R
la source
1
c'est la meilleure réponse
João Otero
14

Un autre cas d'utilisation de CloudFront sur S3 est que vous pouvez utiliser un certificat SSL pour un domaine personnalisé dans CloudFront alors que vous ne pouvez pas dans S3. Une très bonne raison à mon humble avis!

rgubby
la source
2
Et avec le nouveau gestionnaire de certificats, c'est encore plus simple!
phatmann
7

Amazon S3 est un service de stockage simple, qui peut être utilisé pour une grande quantité d'informations, à savoir des vidéos, des images, des fichiers PDF, etc.

CloudFront est un réseau de diffusion de contenu, plus proche de l'utilisateur final et utilisé pour rendre les informations disponibles sur Amazon S3 dans les plus brefs délais.

Un exemple de cas d'utilisation est la vidéo à la demande.

  1. Vous stockez vos vidéos en un seul endroit. S3 stocke toutes les vidéos préenregistrées dans différents formats.
  2. Vous avez un cas d'utilisateur global
  3. CloudFront est utilisé pour mettre en cache la vidéo dans des emplacements périphériques. Cela peut être utilisé pour fournir du contenu à l'utilisateur final. L'emplacement est récupéré automatiquement en fonction de l'emplacement du bord physique le plus proche. Actuellement, il existe environ 51 emplacements périphériques.

Quelques avantages d'utiliser CloudFront pour un cas d'utilisation correct:

  1. Latence améliorée - Meilleure expérience utilisateur final.
  2. Coût possible de transfert de données réduit. Comme les données ne sont pas toujours transférées à partir du même compartiment S3 dans une région AWS particulière.

Autres cas d'utilisation possibles:

  1. Streaming en direct
  2. Gaming
  3. Accélération du site Web
Gurmeet_BlazeClan
la source
4

Un aspect qui manque ici est:

Amazon Cloudfront propose également des prix inférieurs à ceux d'Amazon S3 à des niveaux d'utilisation plus élevés.

  • Cloudfront CDN est destiné à la distribution de contenu sur plusieurs serveurs répartis géographiquement (CSS, JS)

  • Alors que s3 est plus un magasin de ressources par utilisateur moins utilisé (images utilisateur, PDF).

Vous pouvez servir vos ressources Cloudfront à partir d'un compartiment s3 en contournant complètement votre serveur Web.

( Utile dans les situations où votre serveur Web précompile et stocke les images et le script java. Les stocker sur s3 signifie que l'empreinte mémoire de votre serveur est réduite )

Ex: Sur Heroku Slugs (les tailles d'applications conformes peuvent être réduites en utilisant s3 et en les enveloppant avec du CDN front cloud améliorera le débit)

Abdos
la source
2

En premier lieu, je voudrais expliquer qu'Amazon S3 est le stockage cloud et Cloud Front est le réseau de distribution de contenu (CDN).

Vous pouvez donc utiliser pour stocker les fichiers sur S3 et pouvez créer la distribution pour servir le contenu sur Internet. De plus, vous pouvez créer une distribution pour les régions spécifiques.

Kailash Malav
la source
1

Amazon S3 est une excellente plate-forme de stockage d'objets si vous recherchez un système de stockage distribué mondialement pour vous protéger contre les régions / zones en baisse. Il est également idéal pour le contenu statique / fixe qui n'est pas transactionnel et qui change, comme les images, les vidéos, les images, les sauvegardes, etc. J'espère que cela aide!

JStorage
la source