S3 или DynamoDb для пользовательского хранилища?

Я хотел бы использовать AWS Lambda и Cognito в бессерверной архитектуре, и мне было любопытно, что люди думают об использовании корзины S3 для хранилища пользовательских данных, а не чего-то вроде DynamoDb? Какие будут плюсы/минусы?


comment
Для небольших объемов данных, возможно, вы могли бы изучить наборы данных Cognito? Cognito позволяет сохранять данные конечного пользователя в наборах данных, содержащих пары ключ-значение. Данные связаны с удостоверением Amazon Cognito, их можно синхронизировать и получать к ним доступ с разных учетных записей и устройств. Он также имеет автономную поддержку.   -  person jarmod    schedule 30.08.2017


Ответы (2)


Вы можете использовать один из них или оба в зависимости от различных типов пользовательских данных и запросов. Кроме того, вы также можете хранить основные данные профиля пользователя в магазине Cognito Sync.

АВС S3

  • Это полностью управляемая служба хранения и поиска файлов.
  • Очень подходит для хранения изображения профиля пользователя, загрузки файлов и т. д.
  • Вы можете хранить пользовательские атрибуты в файле JSON или в нескольких файлах. Одна из проблем заключается в том, что вам нужно получить весь файл даже для чтения одного атрибута или сохранить весь файл, чтобы сохранить один атрибут.
  • Необходимо создать соглашения об именах файлов, чтобы найти файлы напрямую для более быстрого поиска или перечисления файлов, а чтение каждого файла для поиска внутреннего содержимого требует больших затрат с точки зрения производительности.
  • С точки зрения стоимости это будет более дешевый вариант по сравнению с Dynamodb.
  • Не подходит для хранения динамически изменяющихся пользовательских данных, которые могут повлиять на производительность приложения.

AWS Dynamodb

  • Это полностью управляемая база данных NOSQL.
  • Рекомендуется хранить пользовательские атрибуты для быстрых запросов, обновлений и поиска.
  • Имеет встроенную поддержку запросов и условные обновления.
  • Возможно делать частичные обновления.
  • Подходит, если вам нужно запросить несколько пользователей и обновить.
  • Как правило, дороже, чем S3.

Их обычно используют вместе, чтобы получить максимальную отдачу от стоимости и производительности, сохраняя файлы в S3 и метаданные файлов и часто запрашивая атрибуты в Dynamodb для быстрых запросов. Также вы можете настроить управляемые событиями шаблоны для обновления Dynamodb при изменениях в S3.

person Ashan    schedule 30.08.2017

Вы хотите быстро индексировать, запрашивать и обновлять данные (DynamoDB)?

Или вы просто хотите сохранить его в плоском файле, который должен быть полностью перезаписан всякий раз, когда он обновляется, и его содержимое не может быть легко запрошено (S3)?

person Mark B    schedule 29.08.2017