AWS EFS vs EBS vs S3 (différences et quand utiliser?)

315

Selon le titre de cette question, quelles sont les différences pratiques entre AWS EFS, EBS et S3?

Ma compréhension de chacun:

  • S3 est une installation de stockage accessible partout
  • EBS est un appareil que vous pouvez monter sur EC2
  • EFS est un système de fichiers que vous pouvez monter sur EC2

Alors pourquoi devrais-je utiliser EBS sur EFS? On dirait qu'ils ont les mêmes cas d'utilisation mais des différences sémantiques mineures? Bien que EFS soit répliqué sur les AZ, alors qu'EBS n'est qu'un périphérique monté. Je suppose que ma compréhension de l'EBS fait défaut, je ne peux donc pas faire de distinction.

Pourquoi choisir S3 plutôt qu'EFS? Ils stockent tous deux des fichiers, évoluent et sont répliqués. Je suppose qu'avec S3, vous devez utiliser le SDK où, comme EFS est un système de fichiers, vous pouvez utiliser des méthodes d'E / S standard à partir du langage de programmation de votre choix pour créer des fichiers. Mais est-ce la seule vraie différence?

Intégriste
la source
2
EFS est comme NFS. EBS est essentiellement un SAN. S3 est un peu comme WebDav. Glacier est probablement blueray DVD storagemojo.com/2014/04/25/amazons-glacier-secret-bdxl
Neil McGuigan

Réponses:

466

Réponse en un mot: ARGENT: D

1 Go à stocker aux États-Unis-Est-1: (mis à jour le 2016.dec.20)

  • Glacier: 0,004 $ / mois (Remarque: baisse importante des prix en 2016)
  • S3: 0,023 $ / mois
  • S3-IA (annoncé en 2015.09): 0,0125 $ / mois (+ 0,01 $ / frais de récupération de gig)
  • EBS: 0,045-0,1 $ / mois (dépend de la vitesse - SSD ou non) + coûts IOPS
  • EFS: 0,3 $ / mois

Autres options de stockage, qui peuvent être utilisées pour stocker temporairement des données pendant / avant leur traitement:

  • SNS
  • SQS
  • Flux Kinesis
  • DynamoDB, SimpleDB

Les coûts ci-dessus ne sont que des échantillons. Il peut y avoir des différences par région, et cela peut changer à tout moment. Il y a aussi des frais supplémentaires pour le transfert de données (sur Internet). Ils montrent cependant un rapport entre les prix des services .

Il y a beaucoup plus de différences entre ces services:

EFS c'est:

  • Généralement disponible (hors aperçu), mais peut-être pas encore disponible dans votre région
  • Système de fichiers réseau (cela signifie qu'il peut avoir une plus grande latence mais il peut être partagé entre plusieurs instances, même entre les régions)
  • Il est cher par rapport à EBS (~ 10 fois plus) mais il offre des fonctionnalités supplémentaires.
  • C'est un service hautement disponible.
  • C'est un service géré
  • Vous pouvez attacher le stockage EFS à une instance EC2
  • Accessible simultanément par plusieurs instances EC2
  • Depuis 2016.dec.20, il est possible de connecter votre stockage EFS directement à des serveurs sur site via Direct Connect. ()

EBS c'est:

  • Un stockage en bloc (vous devez donc le formater). Cela signifie que vous pouvez choisir le type de système de fichiers que vous souhaitez.
  • Comme il s'agit d'un stockage en bloc, vous pouvez utiliser le Raid 1 (ou 0 ou 10) avec plusieurs stockages de blocs
  • C'est vraiment rapide
  • C'est relativement bon marché
  • Avec les nouvelles annonces d'Amazon, vous pouvez stocker jusqu'à 16 To de données par stockage sur des SSD.
  • Vous pouvez prendre un instantané d'un EBS (alors qu'il est toujours en cours d'exécution) pour des raisons de sauvegarde
  • Mais il n'existe que dans une région particulière. Bien que vous puissiez le migrer vers une autre région, vous ne pouvez pas simplement y accéder entre les régions (uniquement si vous le partagez via l'EC2; mais cela signifie que vous avez un serveur de fichiers)
  • Vous avez besoin d'une instance EC2 pour l'attacher à
  • Nouvelle fonctionnalité (2017.Feb.15): Vous pouvez désormais augmenter la taille du volume, ajuster les performances ou changer le type de volume pendant que le volume est en cours d'utilisation. Vous pouvez continuer à utiliser votre application pendant que la modification prend effet.

S3 c'est:

  • Un magasin d'objets (pas un système de fichiers).
  • Vous pouvez stocker des fichiers et des "dossiers" mais ne pouvez pas avoir de verrous, d'autorisations, etc. comme vous le feriez avec un système de fichiers traditionnel
  • Cela signifie que, par défaut, vous ne pouvez pas simplement monter S3 et l'utiliser comme serveur Web
  • Mais il est parfait pour stocker vos images et vidéos pour votre site Web
  • Idéal pour l'archivage à court terme (par exemple quelques semaines). C'est également bon pour l'archivage à long terme, mais Glacier est plus rentable.
  • Idéal pour stocker des journaux
  • Vous pouvez accéder aux données de chaque région (des frais supplémentaires peuvent s'appliquer)
  • Hautement disponible, redondant. Fondamentalement, la perte de données n'est pas possible (durabilité de 99,999999999%, SLA de disponibilité de 99,9)
  • Beaucoup moins cher que l'EBS.
  • Vous pouvez servir le contenu directement sur Internet, vous pouvez même avoir un site Web complet (statique) fonctionnant directement à partir de S3, sans instance EC2

Le glacier c'est:

  • Stockage d'archives à long terme
  • Extrêmement bon marché à stocker
  • Récupération potentiellement très coûteuse
  • Prend jusqu'à 4 heures pour "relire" vos données (donc ne stockez que les éléments que vous savez que vous n'aurez pas besoin de récupérer pendant longtemps)

Comme cela a été mentionné dans le commentaire de JDL, il existe plusieurs aspects intéressants en termes de prix. Par exemple, Glacier, S3, EFS alloue le stockage pour vous en fonction de votre utilisation, tandis que chez EBS, vous devez prédéfinir le stockage alloué. Ce qui signifie que vous devez surestimer. (Cependant, il est facile d'ajouter plus de stockage à vos volumes EBS, cela nécessite une certaine ingénierie, ce qui signifie que vous "surpayez" toujours votre stockage EBS, ce qui le rend encore plus cher.)

Source: AWS Storage Update - Nouvelle option de stockage S3 à moindre coût et réduction des prix des glaciers

Adam Ocsvari
la source
8
Glacier est extrêmement cher si les données doivent être restaurées rapidement liangzan.net/aws-glacier-calculator
Anatoly
6
Pas d'accord, c'est S3moins cher que EBS. Avec S3vous ne pouvez avoir que 2000 PUT et 20 000 GET gratuitement. Avec EBSvous, 2 000 000 d'opérations d'E / S sont gratuites. Voici mon QA stackoverflow.com/questions/34048866/…
Green
2
2 000 000 coûts de lecture S3 ~ 0,4 $, 2 000 000 coûts d'écriture ~ 5 $ ... Mais l'essentiel est que vous devez choisir le bon stockage pour la tâche. S3 est (la plupart du temps) le meilleur pour les gros fichiers qui ne changent pas trop souvent mais qui sont largement accessibles. (avec beaucoup d'exceptions: D)
Adam Ocsvari
2
Bonne comparaison. Mais une autre différence majeure entre EBS et EFS, EBS est une quantité fixe de stockage. Alors oui, la comparaison de 1 Go est différente, mais pourquoi voudriez-vous créer une partition EBS de 1 Go? Au minimum, si vous souhaitez créer une partition de 10 Go, vous recherchez entre 0,5 et 1,0 $ pour les mêmes 1 Go de données stockées sur les 10 Go de données. Selon la vitesse à laquelle votre besoin de stockage de données augmentera et la quantité d'espace inutilisé que vous souhaitez continuer à payer, EFS peut être une meilleure option.
JDL
3
A noter également: EFS ne fonctionne actuellement qu'avec Linux, pas Windows.
Andrew Clark
110

Je me demande pourquoi les gens ne mettent pas en évidence la raison la plus convaincante en faveur de l'EFS. EFS peut être monté sur plusieurs instances EC2 en même temps, ce qui permet d'accéder aux fichiers sur EFS en même temps.

(Modifier 2020 mai, EBS prend également en charge le montage sur plusieurs EC2 en même temps, voir: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html )

Kabeer
la source
Moi aussi. Les personnes qui ont posé la question ou voté la question (pas la réponse) n'ont tout simplement aucune idée de la différence entre le système UFS et NFS.
BMW
5
De même, c'est une différence entre l'utilisation de S3 et EBS - S3 et EFS fonctionnent bien pour les données partagées sur plusieurs serveurs, contrairement à EBS.
Geoffrey Wiseman
EFS ne peut pas non plus être utilisé comme origine pour CDN, S3 est meilleur pour ce rôle. Si vous avez beaucoup d'actifs qui doivent être disponibles pour CDN, mieux vaut utiliser S3
Moses Liao GZ
71

Correction de la comparaison:

  • S3 est une installation de stockage accessible partout
  • EBS est un appareil que vous pouvez monter sur EC2
  • EFS est un système de fichiers que vous pouvez monter sur plusieurs instances EC2 en même temps

À ce stade, il est un peu prématuré de comparer EFS et EBS - les performances d'EFS ne sont pas connues, ni sa fiabilité connue.

Pourquoi utiliseriez-vous S3?

  • Vous n'avez pas besoin que les fichiers soient «locaux» pour une ou plusieurs instances EC2.
  • (effectivement) capacité infinie
  • service Web intégré, authentification
tedder42
la source
2
J'ai récemment installé un volume EFS car il est maintenant disponible dans West-2. Il semble que j'aie des problèmes d'écriture avec des fichiers volumineux. Par exemple, la création d'un conteneur Docker échoue avec «fichier trop volumineux» et la création d'une base de données sqlite échoue également. Je n'ai pas eu ces problèmes sur le volume EBS que j'utilisais. Donc oui, EFS peut avoir des problèmes de convivialité / fiabilité qui doivent être "corrigés" en ce moment.
DKebler
7

Pour ajouter à la comparaison: (rafale) les performances en lecture / écriture sur EFS dépendent des crédits collectés. La collecte de crédits dépend de la quantité de données que vous y stockez. Plus de date -> plus de crédits. Cela signifie que lorsque vous n'avez besoin que de quelques Go de stockage qui sont souvent lus ou écrits, vous manquerez de crédits très rapidement et le débit tombera à environ 50 kb / s. La seule façon de résoudre ce problème (dans mon cas) était d'ajouter de gros fichiers factices pour augmenter le taux de crédits gagnés. Cependant plus de stockage -> plus de coûts.

user1677120
la source
2
C'est fou et lent. Au début, je pensais que c'était une erreur de OP, mais après avoir vérifié la documentation, elle est correcte (à partir de 2017)
Jakobovski
7

Outre le prix et les fonctionnalités, le débit varie également considérablement (comme mentionné par user1677120):

EBS

Extrait de la documentation EBS :

| EBS volume | Throughput |           Throughput          |
|    type    |   MiB/s    |         dependent on..        |
|------------|------------|-------------------------------|
| gp2 (SSD)  | 128-160    | volume size                   |
| io1 (SSD)  | 0.25-500   | IOPS (256Kib/s per IOPS)      |
| st1 (HDD)  | 20-500     | volume size (40Mib/s per TiB) |
| sc1 (HDD)  | 6-250      | volume size (12Mib/s per TiB) |

Notez que pour io1, st1 et sc1, vous pouvez faire éclater le trafic de débit à au moins 125 Mo / s, mais à 500 Mo / s, selon la taille du volume.

Vous pouvez augmenter encore le débit par exemple déployant volumes EBS en tant que RAID0

EFS

Extrait des documents EFS

| Filesystem |    Base    |   Burst    |
|    Size    | Throughput | Throughput |
|    GiB     |   MiB/s    |   MiB/s    |
|------------|------------|------------|
|         10 |        0.5 |        100 |
|        256 |       12.5 |        100 |
|        512 |       25.0 |        100 |
|       1024 |       50.0 |        100 |
|       1536 |       75.0 |        150 |
|       2048 |      100.0 |        200 |
|       3072 |      150.0 |        300 |
|       4096 |      200.0 |        400 |

Le débit de base est garanti, le débit de rafale utilise les crédits que vous avez accumulés tout en étant inférieur au débit de base (vous n'aurez donc cela que pour un temps limité, voir ici pour plus de détails.

S3

S3 est une chose totalement différente, donc il ne peut pas vraiment être comparé à EBS et EFS. Plus: il n'y a pas de métriques de débit publiées pour S3. Vous pouvez améliorer le débit en téléchargeant en parallèle (j'ai lu quelque part dans AWS que vous auriez un débit pratiquement illimité de cette façon), ou en ajoutant CloudFront au mélange

hansaplast
la source
2

En termes simples

Amazon EBS fournit un stockage de niveau bloc.

Amazon EFS fournit un stockage de fichiers partagé connecté au réseau.

Amazon S3 fournit un stockage d'objets.

Mandrek
la source
1

EBS est un stockage de niveau bloc simple qui peut être attaché à une instance du même AZ et peut survivre indépendamment de la durée de vie de l'instance.

Cependant, une différence intéressante se situe entre EFS et S3, et pour identifier les cas d'utilisation appropriés pour cela.

Coût: EFS coûte environ 10 fois plus cher que S3.

Cas d'utilisation:

  • Chaque fois que nous avons des milliers d'instances qui doivent traiter un fichier simultanément, EFS est recommandé par rapport à S3.
  • Notez également que S3 est un stockage basé sur des objets tandis qu'EFS est basé sur des fichiers, cela implique que chaque fois que nous avons besoin que les fichiers soient mis à jour en continu (actualisés), nous devons utiliser EFS.
  • S3 est finalement cohérent tandis que EFS est fortement cohérent. Dans le cas où vous ne pouvez pas vous permettre une cohérence éventuelle, vous devez utiliser EFS
Tejas
la source
0

Amazon EBS fournit un stockage de niveau bloc - Il est utilisé pour créer un système de fichiers dessus et stocker des fichiers. Amazon EFS - son système de stockage partagé similaire à NAS / SAN. Vous devez le monter sur un serveur Unix et l'utiliser. Amazon S3 - Il s'agit d'un stockage basé sur des objets où chaque élément est stocké avec une URL http.

L'une des différences est que EBS peut être attaché à 1 instance à la fois et EFS peut être attaché à plusieurs instances, ce qui explique le stockage partagé. Le stockage d'objets simples S2 ne peut pas être monté.

Suresh Chandra Joshi
la source
0

EFS & S3 ont le même objectif, vous pouvez stocker tout type d'objet ou de fichiers.

Mais pour moi, la seule différence est qu'EFS vous permet d'avoir un système de fichiers traditionnel dans le cloud VM (EC2) avec plus de flexibilité comme vous pouvez l'attacher à plusieurs instances.

S3, d'autre part, est un serveur flexible et élastique distinct pour vos objets. Il peut être utilisé pour vos fichiers statiques, images, vidéos ou même héberger une application statique (js).

EBS est évidemment pour le stockage en bloc où vous pouvez installer le système d'exploitation ou tout ce qui concerne votre système d'exploitation.

Marjun
la source