web-dev-qa-db-fra.com

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

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 n'importe où
  • 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? Vous semblez avoir les mêmes cas d'utilisation mais des différences sémantiques mineures? Bien que EFS soit répliqué sur plusieurs zones de disponibilité, EBS n'étant qu'un périphérique monté. J'imagine que ma compréhension d'EBS est insuffisante et je suis donc incapable de faire la distinction.

Pourquoi choisir S3 plutôt que EFS? Ils stockent tous les deux des fichiers, sont mis à l'échelle et sont répliqués. Je suppose qu'avec S3, vous devez utiliser le SDK, où, comme EFS étant 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 différence réelle?

286
Integralist

Un mot de réponse: ARGENT: D

1 Go à stocker dans US-East-1: (Mise à jour le 2016.dec.20)

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

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

  • SNS
  • SQS
  • Kinesis stream
  • 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. En outre, le transfert de données (sur Internet) entraîne des coûts supplémentaires. Cependant, ils affichent un rapport entre les prix des services .

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

EFS 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 que sa latence peut être plus grande mais qu'il peut être partagé entre plusieurs instances, même entre régions)
  • C'est cher comparé à EBS (~ 10x plus) mais il donne 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.
  • Peut être consulté simultanément par plusieurs instances EC2
  • Depuis 2016.dec.20, il est possible d'associer votre stockage EFS directement à serveurs sur site via Direct Connect. ()

EBS est:

  • Un bloc de stockage (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 bloc de stockage, vous pouvez utiliser le Raid 1 (ou 0 ou 10) avec plusieurs blocs de stockage.
  • 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 SSD-s.
  • Vous pouvez capturer un EBS (pendant qu'il est toujours en cours d'exécution) pour des raisons de sauvegarde
  • Mais il n’existe que dans une région donnée. Bien que vous puissiez le migrer vers une autre région, vous ne pouvez pas y accéder simplement d'une région à l'autre (uniquement si vous le partagez via l'EC2; cela signifie que vous disposez d'un serveur de fichiers).
  • Vous avez besoin d'une instance EC2 pour la joindre
  • Nouvelle fonctionnalité (2017.Feb.15): Vous pouvez maintenant augmenter la taille du volume, ajuster les performances ou modifier le type de volume lorsque celui-ci est utilisé. Vous pouvez continuer à utiliser votre application pendant que la modification prend effet.

S3 est:

  • Un magasin d'objets (pas un système de fichiers).
  • Vous pouvez stocker des fichiers et des "dossiers", mais vous ne pouvez pas avoir de verrous, autorisations, 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 c'est parfait pour stocker vos images et vidéos pour votre site web
  • Idéal pour l'archivage à court terme (quelques semaines, par exemple). C'est bon aussi pour l'archivage à long terme, mais Glacier est plus rentable.
  • Idéal pour stocker les journaux
  • Vous pouvez accéder aux données de chaque région (des frais supplémentaires peuvent s'appliquer)
  • Hautement disponible, redondant. En gros, la perte de données n’est pas possible (99,999999999% de durabilité, 99,9 heures de disponibilité).
  • Beaucoup moins cher que 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

Glacier est:

  • Stockage d'archives à long terme
  • Extrêmement bon marché à stocker
  • Potentiellement très coûteux à récupérer
  • Prend jusqu'à 4 heures pour "relire" vos données (afin de ne stocker que les articles 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 en fonction de votre utilisation, tandis qu’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 "payez toujours trop" votre stockage EBS, ce qui le rend encore plus cher.)

Source: Mise à jour du stockage AWS - Nouvelle option de stockage S3 à prix réduit et réduction du prix des glaciers

434
Adam Ocsvari

Je me demande pourquoi les gens ne soulignent pas la raison la plus convaincante en faveur de EFS. EFS peut être monté sur plusieurs instances EC2 à la fois, ce qui permet d'accéder simultanément aux fichiers sur EFS.

101
Kabeer

Fixer la comparaison:

  • S3 est une installation de stockage accessible n'importe où
  • EBS est un appareil que vous pouvez monter sur EC2
  • EFS est un système de fichiers sur lequel vous pouvez monter plusieurs instances EC2 simultanément

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

Pourquoi voudriez-vous utiliser S3?

  • Vous n'avez pas besoin que les fichiers soient "locaux" pour une ou plusieurs instances EC2.
  • (effectivement) capacité infinie
  • serveur Web intégré, authentification
65
tedder42

Pour ajouter à la comparaison: (rafale) les performances de 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 stockez dessus. Plus de date -> plus de crédits. Cela signifie que lorsque vous n'avez besoin que de quelques Go de stockage lu et écrit, vous manquerez de crédits très rapidement et le débit passera à 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.

6
user1677120

Outre le prix et les fonctionnalités, le débit varie également considérablement (comme indiqué par l'utilisateur 1677120):

EBS

Extrait de EBS docs :

| 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 augmenter le trafic de traitement à au moins 125 Mb/s, mais à 500 Mb/s, en fonction de la taille du volume.

Vous pouvez encore augmenter le débit, par exemple déploiement de volumes EBS en tant que RAID

EFS

Tiré de 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 en rafale utilise les crédits que vous avez collectés tout en étant inférieur au débit de base (pour que vous ne l'ayez que pendant 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 (je lis quelque part les états AWS où vous auriez un débit pratiquement illimité de cette façon), ou en ajoutant CloudFront au mixage.

6
hansaplast

En mots simples

Amazon EBS fournit un stockage au niveau du bloc.

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

Amazon S3 fournit un stockage d'objets.

0
Mandrek

Amazon EBS fournit un stockage de niveau bloc. Il est utilisé pour créer un système de fichiers 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, dans lequel chaque élément est stocké avec une URL http.

Une des différences est la suivante: EBS peut être associé à une instance à la fois et EFS peut être associé à plusieurs instances pour lesquelles le stockage partagé est nécessaire. Le stockage d'objets sains S2 ne peut pas être monté.

0
suresh joshi