Stocker beaucoup d'images S3 vs DynamoDB
Je suis en train de travailler sur un projet qui a besoin de stocker une grande quantité d'images par seconde. Et je suis un peu confus si je doit stocker mes images en S3 ou dans DynamoDB. Ma confusion est parce qu'il semble que le S3 ne prennent pas en charge des demandes de lots et je dois être en mesure d'obtenir toutes les images dans un lot,si nécessaire; d'autre part, je ne suis pas sûr si c'est une bonne idée de stocker toutes ces images dans une table dynamoDB. Quelle serait la meilleure approche?
source d'informationauteur PachinSV
Vous devez vous connecter pour publier un commentaire.
Réponse courte: Utiliser S3.
Réponse longue: DynamoDB limites des enregistrements individuels à 64 KO, donc vous avez probablement ne peut pas utilisation DynamoDB, à moins que vos images sont de minuscules, de toute façon.
Vous mentionnez envie de lire vos images dans un lot de demande, mais DynamoDB des demandes de lots de retour jusqu'à 100 enregistrements ou 1 MO -- celui qui est le moins -- de sorte qu'il n'est pas comme vous pouvez récupérer toutes vos images à la fois de toute façon. Vous pourriez vider tout de DynamoDB par la lecture d'une page à la fois, ce qui veut dire beaucoup de demandes, l'une après l'autre. Pas rapide.
DynamoDB est une latence inférieure à celle S3, et il prend en charge configurable débit. Cependant, S3 supporte autant de simultanéité que vous voulez hors de la boîte. Souhaitez télécharger 1000 images à la fois? Allez-y! Il n'a pas d'importance si chaque objet prend 400 ms à écrire puisque vous pouvez transmettre autant que vous le souhaitez en même temps. De même, vous pouvez vider tout de S3 par l'obtention d'une liste de tout dans le seau, puis la récupération de tous les objets en parallèle.
D'autres raisons d'utiliser S3:
La situation que je sache où DynamoDB peut faire sens pour le stockage des images est si vos images sont petites, changeant fréquemment, et vous êtes très sensible à la lecture de la latence. Autre que cela, utiliser S3.
De stocker les images dans S3. Le DynamoDB limitations ont été décrites par willglynn. Cependant, vous pouvez stocker les url des images et autres métadonnées dans votre DynamoDB.
Un peu de mise en garde sur DynamoDB, il peut être très coûteux. Passant de libre-niveau peut facilement coûter quelques centaines de dollars pour une douzaine de débit unités. Si vous avez utilisé pour stocker des éléments de grande taille (près de 64 KO, tels que des images) qui a besoin de bien plus grande capacité, il est très probable que vous finissez par payer des milliers de dollars. Pour le stockage des métadonnées avec AWS, vous voudrez peut-être vérifier SimpleDB.