Amazon DynamoDB vs Amazon Redshift vs Amazon S3

Need advice about which tool to choose?Ask the StackShare community!

Amazon DynamoDB

3.7K
3.2K
+ 1
195
Amazon Redshift

1.5K
1.4K
+ 1
108
Amazon S3

52.5K
39.3K
+ 1
2K

Amazon DynamoDB vs Amazon Redshift vs Amazon S3: What are the differences?

Introduction

When choosing between Amazon DynamoDB, Amazon Redshift, and Amazon S3 for your data storage needs, it's crucial to understand their key differences to make an informed decision.

  1. Data Structure: Amazon DynamoDB is a fully-managed NoSQL database service that is best suited for handling large amounts of unstructured data with flexible schema requirements, making it perfect for applications with high scalability needs. On the other hand, Amazon Redshift is a fully-managed data warehouse service that is designed for handling structured data for analytical purposes where fast querying is essential. Meanwhile, Amazon S3 is an object storage service that is ideal for storing and retrieving large amounts of unstructured data like images, videos, and backups in a simple and cost-effective manner.

  2. Querying Capabilities: Amazon DynamoDB is best suited for applications that require high-speed, single-digit millisecond latency for queries on small to medium datasets. In contrast, Amazon Redshift is optimized for complex queries on large datasets for data warehousing and analytics, providing lightning-fast performance by utilizing columnar storage and advanced compression techniques. Amazon S3, on the other hand, is not optimized for querying data directly but excels in storing and retrieving large objects efficiently.

  3. Storage and Pricing: Amazon DynamoDB charges for the provisioned throughput capacity and the amount of data stored, making it cost-effective for applications with variable traffic patterns. In comparison, Amazon Redshift pricing is based on the type and number of nodes provisioned, making it suitable for applications with predictable query loads and requiring high performance. Amazon S3 pricing is based on the storage capacity used and the number of requests made to the service, providing a flexible and scalable pricing model for storing large amounts of data.

  4. Data Size and Retention: Amazon DynamoDB is suitable for handling small to medium-sized datasets that require high availability and low latency, making it ideal for real-time applications. Amazon Redshift is designed for handling massive datasets ranging from terabytes to petabytes for analytical processing and historical data retention. Amazon S3, on the other hand, can handle virtually unlimited data storage capacity, making it perfect for applications with large storage requirements.

  5. Data Processing Capabilities: Amazon DynamoDB offers limited built-in data processing capabilities for simple operations like filtering and sorting within the database. In contrast, Amazon Redshift provides advanced data processing capabilities through integrations with business intelligence tools like Amazon QuickSight and the ability to perform complex queries with SQL analytics functions. Amazon S3, while not a data processing tool, can integrate with various data processing frameworks like Amazon EMR for processing large datasets stored in the service.

  6. Consistency and Durability: Amazon DynamoDB provides configurable consistency models to ensure data consistency and offer high durability through automatic multi-region replication. Amazon Redshift offers high durability with continuous backups and snapshots for data recovery but may not provide the same level of consistency as Amazon DynamoDB. Amazon S3 is designed for 99.999999999% durability by automatically replicating data across multiple availability zones, ensuring high data availability and durability for stored objects.

In Summary, Amazon DynamoDB, Amazon Redshift, and Amazon S3 cater to different data storage and processing needs, with varying strengths in handling data structure, querying capabilities, storage and pricing models, data size, data processing capabilities, and consistency and durability.

Advice on Amazon DynamoDB, Amazon Redshift, and Amazon S3

Hello! I have a mobile app with nearly 100k MAU, and I want to add a cloud file storage service to my app.

My app will allow users to store their image, video, and audio files and retrieve them to their device when necessary.

I have already decided to use PHP & Laravel as my backend, and I use Contabo VPS. Now, I need an object storage service for my app, and my options are:

  • Amazon S3 : It sounds to me like the best option but the most expensive. Closest to my users (MENA Region) for other services, I will have to go to Europe. Not sure how important this is?

  • DigitalOcean Spaces : Seems like my best option for price/service, but I am still not sure

  • Wasabi: the best price (6 USD/MONTH/TB) and free bandwidth, but I am not sure if it fits my needs as I want to allow my users to preview audio and video files. They don't recommend their service for streaming videos.

  • Backblaze B2 Cloud Storage: Good price but not sure about them.

  • There is also the self-hosted s3 compatible option, but I am not sure about that.

Any thoughts will be helpful. Also, if you think I should post in a different sub, please tell me.

See more
Replies (2)
Michira Griffins
Software Developer at Codeshares Ltd · | 1 upvotes · 114.4K views

If pricing is the issue i'd suggest you use digital ocean, but if its not use amazon was digital oceans API is s3 compatible

See more
Recommends
on
Cloudways Cloudways

Hello Mohammad, I am using : Cloudways >> AWS >> Bahrain for last 2 years. This is best I consider out of my 10 year research on Laravel hosting.

See more

We are building a social media app, where users will post images, like their post, and make friends based on their interest. We are currently using Cloud Firestore and Firebase Realtime Database. We are looking for another database like Amazon DynamoDB; how much this decision can be efficient in terms of pricing and overhead?

See more
Replies (1)
William Frank
Data Science and Engineering at GeistM · | 2 upvotes · 108.3K views
Recommends

Hi, Akash,

I wouldn't make this decision without lots more information. Cloud Firestore has a much richer metamodel (document-oriented) than Dynamo (key-value), and Dynamo seems to be particularly restrictive. That is why it is so fast. There are many needs in most applications to get lightning access to the members of a set, one set at a time. Dynamo DB is a great choice. But, social media applications generally need to be able to make long traverses across a graph. While you can make almost any metamodel act like another one, with your own custom layers on top of it, or just by writing a lot more code, it's a long way around to do that with simple key-value sets. It's hard enough to traverse across networks of collections in a document-oriented database. So, if you are moving, I think a graph-oriented database like Amazon Neptune, or, if you might want built-in reasoning, Allegro or Ontotext, would take the least programming, which is where the most cost and bugs can be avoided. Also, managed systems are also less costly in terms of people's time and system errors. It's easier to measure the costs of managed systems, so they are often seen as more costly.

See more

We need to perform ETL from several databases into a data warehouse or data lake. We want to

  • keep raw and transformed data available to users to draft their own queries efficiently
  • give users the ability to give custom permissions and SSO
  • move between open-source on-premises development and cloud-based production environments

We want to use inexpensive Amazon EC2 instances only on medium-sized data set 16GB to 32GB feeding into Tableau Server or PowerBI for reporting and data analysis purposes.

See more
Replies (3)
John Nguyen
Recommends
on
AirflowAirflowAWS LambdaAWS Lambda

You could also use AWS Lambda and use Cloudwatch event schedule if you know when the function should be triggered. The benefit is that you could use any language and use the respective database client.

But if you orchestrate ETLs then it makes sense to use Apache Airflow. This requires Python knowledge.

See more
Recommends
on
AirflowAirflow

Though we have always built something custom, Apache airflow (https://airflow.apache.org/) stood out as a key contender/alternative when it comes to open sources. On the commercial offering, Amazon Redshift combined with Amazon Kinesis (for complex manipulations) is great for BI, though Redshift as such is expensive.

See more
Recommends

You may want to look into a Data Virtualization product called Conduit. It connects to disparate data sources in AWS, on prem, Azure, GCP, and exposes them as a single unified Spark SQL view to PowerBI (direct query) or Tableau. Allows auto query and caching policies to enhance query speeds and experience. Has a GPU query engine and optimized Spark for fallback. Can be deployed on your AWS VM or on prem, scales up and out. Sounds like the ideal solution to your needs.

See more
Decisions about Amazon DynamoDB, Amazon Redshift, and Amazon S3

Minio is a free and open source object storage system. It can be self-hosted and is S3 compatible. During the early stage it would save cost and allow us to move to a different object storage when we scale up. It is also fast and easy to set up. This is very useful during development since it can be run on localhost.

See more
Julien Lafont

Cloud Data-warehouse is the centerpiece of modern Data platform. The choice of the most suitable solution is therefore fundamental.

Our benchmark was conducted over BigQuery and Snowflake. These solutions seem to match our goals but they have very different approaches.

BigQuery is notably the only 100% serverless cloud data-warehouse, which requires absolutely NO maintenance: no re-clustering, no compression, no index optimization, no storage management, no performance management. Snowflake requires to set up (paid) reclustering processes, to manage the performance allocated to each profile, etc. We can also mention Redshift, which we have eliminated because this technology requires even more ops operation.

BigQuery can therefore be set up with almost zero cost of human resources. Its on-demand pricing is particularly adapted to small workloads. 0 cost when the solution is not used, only pay for the query you're running. But quickly the use of slots (with monthly or per-minute commitment) will drastically reduce the cost of use. We've reduced by 10 the cost of our nightly batches by using flex slots.

Finally, a major advantage of BigQuery is its almost perfect integration with Google Cloud Platform services: Cloud functions, Dataflow, Data Studio, etc.

BigQuery is still evolving very quickly. The next milestone, BigQuery Omni, will allow to run queries over data stored in an external Cloud platform (Amazon S3 for example). It will be a major breakthrough in the history of cloud data-warehouses. Omni will compensate a weakness of BigQuery: transferring data in near real time from S3 to BQ is not easy today. It was even simpler to implement via Snowflake's Snowpipe solution.

We also plan to use the Machine Learning features built into BigQuery to accelerate our deployment of Data-Science-based projects. An opportunity only offered by the BigQuery solution

See more
Gabriel Pa

We offer our customer HIPAA compliant storage. After analyzing the market, we decided to go with Google Storage. The Nodejs API is ok, still not ES6 and can be very confusing to use. For each new customer, we created a different bucket so they can have individual data and not have to worry about data loss. After 1000+ customers we started seeing many problems with the creation of new buckets, with saving or retrieving a new file. Many false positive: the Promise returned ok, but in reality, it failed.

That's why we switched to S3 that just works.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Amazon DynamoDB
Pros of Amazon Redshift
Pros of Amazon S3
  • 62
    Predictable performance and cost
  • 56
    Scalable
  • 35
    Native JSON Support
  • 21
    AWS Free Tier
  • 7
    Fast
  • 3
    No sql
  • 3
    To store data
  • 2
    Serverless
  • 2
    No Stored procedures is GOOD
  • 1
    ORM with DynamoDBMapper
  • 1
    Elastic Scalability using on-demand mode
  • 1
    Elastic Scalability using autoscaling
  • 1
    DynamoDB Stream
  • 41
    Data Warehousing
  • 27
    Scalable
  • 17
    SQL
  • 14
    Backed by Amazon
  • 5
    Encryption
  • 1
    Cheap and reliable
  • 1
    Isolation
  • 1
    Best Cloud DW Performance
  • 1
    Fast columnar storage
  • 590
    Reliable
  • 492
    Scalable
  • 456
    Cheap
  • 329
    Simple & easy
  • 83
    Many sdks
  • 30
    Logical
  • 13
    Easy Setup
  • 11
    REST API
  • 11
    1000+ POPs
  • 6
    Secure
  • 4
    Plug and play
  • 4
    Easy
  • 3
    Web UI for uploading files
  • 2
    Faster on response
  • 2
    Flexible
  • 2
    GDPR ready
  • 1
    Easy to use
  • 1
    Plug-gable
  • 1
    Easy integration with CloudFront

Sign up to add or upvote prosMake informed product decisions

Cons of Amazon DynamoDB
Cons of Amazon Redshift
Cons of Amazon S3
  • 4
    Only sequential access for paginate data
  • 1
    Scaling
  • 1
    Document Limit Size
    Be the first to leave a con
    • 7
      Permissions take some time to get right
    • 6
      Requires a credit card
    • 6
      Takes time/work to organize buckets & folders properly
    • 3
      Complex to set up

    Sign up to add or upvote consMake informed product decisions

    What is Amazon DynamoDB?

    With it , you can offload the administrative burden of operating and scaling a highly available distributed database cluster, while paying a low price for only what you use.

    What is Amazon Redshift?

    It is optimized for data sets ranging from a few hundred gigabytes to a petabyte or more and costs less than $1,000 per terabyte per year, a tenth the cost of most traditional data warehousing solutions.

    What is Amazon S3?

    Amazon Simple Storage Service provides a fully redundant data storage infrastructure for storing and retrieving any amount of data, at any time, from anywhere on the web

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Amazon DynamoDB?
    What companies use Amazon Redshift?
    What companies use Amazon S3?

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Amazon DynamoDB?
    What tools integrate with Amazon Redshift?
    What tools integrate with Amazon S3?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Amazon DynamoDB, Amazon Redshift, and Amazon S3?
    Google Cloud Datastore
    Use a managed, NoSQL, schemaless database for storing non-relational data. Cloud Datastore automatically scales as you need it and supports transactions as well as robust, SQL-like queries.
    MongoDB
    MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
    Amazon SimpleDB
    Developers simply store and query data items via web services requests and Amazon SimpleDB does the rest. Behind the scenes, Amazon SimpleDB creates and manages multiple geographically distributed replicas of your data automatically to enable high availability and data durability. Amazon SimpleDB provides a simple web services interface to create and store multiple data sets, query your data easily, and return the results. Your data is automatically indexed, making it easy to quickly find the information that you need. There is no need to pre-define a schema or change a schema if new data is added later. And scale-out is as simple as creating new domains, rather than building out new servers.
    MySQL
    The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.
    Cassandra
    Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL.
    See all alternatives