web-dev-qa-db-fra.com

Quand utiliser Amazon Cloudfront ou S3

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

201
Kamo

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

Amazon CloudFront est un réseau de distribution de contenu (Content Delivery Network, CDN) qui proxy et met en cache les données Web sur des emplacements Edge aussi proches que possible des utilisateurs.

Lorsque les utilisateurs finaux demandent un objet en utilisant ce nom de domaine, ils sont automatiquement routés vers l'emplacement Edge le plus proche pour une diffusion hautes performances de votre contenu. ( Amazon )

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

Si votre base d'utilisateurs est localisée, vous ne verrez pas trop de différence si vous utilisez S3 ou CloudFront (vous devez toutefois choisir le bon emplacement pour votre compartiment S3: États-Unis, Europe, APAC). Si votre base d'utilisateurs est étendue globalement et que la vitesse est importante, CloudFront peut être une meilleure option.

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

CloudFront supporte également CORS à partir de 2014 (merci sergiopantoja).

* Remarque: S3 peut désormais se répliquer automatiquement dans des régions supplémentaires à partir de 2015.

335
eillarra

CloudFront et S3 Bucket ne sont pas identiques . En termes simples: CloudFront vous permet d'accélérer la livraison du contenu de votre contenu Web via Content Delivery Network (CDN) dans les emplacements Edge, alors que les compartiments S3 sont l'emplacement où vous stockez vos fichiers réels. Les sources CloudFront ne proviennent pas nécessairement de S3, mais pour faciliter la visualisation de l’intégration de S3 avec CloudFront: enter image description here

36
mel3kings

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

Cela vous évite de dupliquer vos actifs, comme vous le feriez lorsque vous utilisiez Amazon S3.

Cependant, après l’expiration d’un fichier, CloudFront le récupèrera de nouveau sur votre site actif (moyennant un coût). Le nuage est donc préférable pour les fichiers fréquemment consultés et moins pour les fichiers rarement consultés.

Une des façons de définir l’expiration du fichier pour Apache consiste à utiliser .htaccess. Par exemple

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

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

Amazon S est un service de stockage dans lequel nous pouvons stocker des fichiers statiques tels que:

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

Amazon CloudFront est un intermédiaire qui se situe entre un utilisateur demandant un fichier auprès d'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 comprendre par un exemple: -

Par exemple, votre S3 est situé dans la région AWS US West (Virginie du Nord), qui est un emplacement de centre de données pour stocker vos fichiers.

Si un utilisateur indien tente d'accéder à un fichier à partir d'un serveur AWS situé en Virginie, il devra alors accéder à cet emplacement spécifique avec une requête, ce qui prendra beaucoup de temps.

Ce que CloudFront fait, c'est qu'il constitue un middleware entre l'utilisateur et AWS S3.


Les fichiers les plus souvent utilisés peuvent être mis en cache sur CloudFront. Ce faisant, ils sont répliqués sur les emplacements Edge (pour fournir du contenu aux utilisateurs finaux avec une latence inférieure, Amazon CloudFront utilise un réseau mondial d'emplacements Edge pour la livraison du contenu).

Si le contenu se trouve déjà à l'emplacement Edge avec la latence la plus faible, CloudFront le fournit immédiatement. Si le contenu ne se trouve pas actuellement dans cet emplacement Edge, CloudFront le extrait d'un compartiment Amazon S3 et le fournit à l'utilisateur aussi vite que possible.

Chaque requête reçoit un nouveau DNS de CloudFront vers le S3, ce qui entraînerait un trafic inférieur et un traitement plus parallèle des requêtes.

Voici la liste des emplacements Edge actuels en juillet 2016: -

États-Unis

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

Europe

  • Amsterdam, Pays-Bas (2)

  • Dublin, Irlande

  • Francfort, Allemagne (3)

  • Londres, Angleterre (3)

  • Madrid, Espagne

  • Marseille

  • Milan, Italie

  • Paris, France (2)

  • Stockholm, Suède

  • Warsaw, Pologne

Asie

  • Chennai, Inde

  • Hong Kong (2)

  • Mumbai, Inde

  • Manille, les 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

Vous pouvez donc en conclure que si les utilisateurs sont limités appartiennent à la même région que votre S3 est hébergé, vous n’avez pas besoin de choisir CloudFront, et si le nombre d’utilisateurs est augmenté au niveau mondial, vous devez absolument utiliser CloudFront. pour une meilleure latence et un meilleur contrôle du trafic.

15
Patrick R

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

12
rgubby

Amazon S3 est un service de stockage simple, qui permet d’utiliser une grande quantité d’informations, notamment des vidéos, des images, PDF etc.).

CloudFront est un réseau de distribution de contenu (Content Delivery Network) plus proche de l'utilisateur final et utilisé pour rendre les informations disponibles sur Amazon S3 le plus rapidement possible.

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

  1. Vous stockez vos vidéos au même 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 sur les emplacements Edge. Cela peut être utilisé pour fournir du contenu à l'utilisateur final. L'emplacement est automatiquement sélectionné en fonction de l'emplacement Edge physique le plus proche. Il y a actuellement environ 51 emplacements Edge.

Certains avantages de l'utilisation de CloudFront pour un cas d'utilisation approprié:

  1. Latence améliorée - Meilleure expérience utilisateur.
  2. Possibilité de réduction des coûts de transfert de données. Comme les données ne sont pas toujours transférées du même compartiment S3 dans une région AWS particulière.

Autres cas d'utilisation possibles:

  1. Streaming en direct
  2. Jeu
  3. Accélération de site Web
7

Un aspect oublié ici est:

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

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

  • Considérant que s3 est plus d’un magasin de ressources par utilisateur moins utilisé (images d’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 compile et stocke les images et le script Java. Le stockage sur s3 signifie que l'encombrement de la mémoire de votre serveur est réduit )

Ex: Sur Heroku Slug (les tailles d'applications compatibles peuvent être réduites en utilisant s3 et en l'encapsulant avec un CDN en nuage améliorera le débit)

4
Abs

En tant que première, je voudrais expliquer qu'Amazon S3 est le cloud. Storage et que Cloud Front est le réseau de diffusion de contenu (CDN).

Ainsi, vous pouvez utiliser pour stocker les fichiers sur S3 et créer la distribution pour diffuser le contenu sur Internet. En plus, vous pouvez créer une distribution pour des régions spécifiques.

1
Kailash Malav

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

1
JStorage

Vous pouvez voir une comparaison entre Amazon S3 et Amazon Cloudfront à partir d'ici: http://www.bucketexplorer.com/documentation/cloudfront--Amazon-s3-vs-Amazon-cloudfront.html

[Divulgation: Bucket Explorer])

1
Ronak