No-SQL databases
There are many No-SQL databases available on the AWS Marketplace, but they can be quite difficult to navigate through since they’re all slightly different from one another.
Considering so many different options, how does one know which one to choose? Use this handy guide to help you figure out which No-SQL database will be the best fit for your needs.
AWS service: Amazon DynamoDB
Amazon DynamoDB is a high-performance NoSQL database that provides consistent single-digit millisecond latency to all applications with high scalability requirements.
It is fully managed by Amazon and is designed to store documents and key-value information. It has a robust, adjustable data model and the throughput automatically scales, making it great for a wide variety of applications such as mobile, web, gaming, and advertisement technologies.
New capacity is automatically added where needed so there is no additional administrative burden associated with scaling capacity up or down.
As your traffic and data storage needs grow, you can simply add more capacity without downtime or interruption to service.
And the costs are predictable and easy to understand—you only pay for what you use. You never have to guess how much capacity you’ll need again.
When you exceed your provisioned throughput limit, your request will fail immediately rather than being queued until capacity is available.
You can start small and easily burst up as needed without incurring long-term commitments or upfront expenses.
Additionally, Amazon DynamoDB offers global replication across three different regions—US East (N. Virginia), US West (Oregon), and EU (Ireland)—and requires no hardware setup, software installation, or system maintenance tasks.
AWS service: Amazon DocumentDB, DynamoDB
Amazon DocumentDB is a fully managed, scalable, and fast document database service that supports traditional and non-relational data models.
With Amazon DocumentDB, you can create highly available databases with consistent low latency access to your data.
Amazon DocumentDB automatically spreads replicas across multiple Availability Zones to protect against data loss.
You can use either SQL or Gremlin to query your documents with immediate high availability access. Amazon DynamoDB provides tables for storing JSON documents, which can be queried using a subset of the full SQL language.
DynamoDB’s scale (up to 400 TB) allows for any workload from transactional processing to analytics in the same system without performance degradation.
Plus, it takes seconds to provision a new instance. Unlike most other services, it also offers in-place encryption at rest and in transit by default.
It has zero downtime as well as elasticity when scaling up/down on demand while maintaining consistency of data.
Its main downside is that there are no indexing features such as secondary indexes or composite indexes, but this is more than made up for by its ability to auto-shard based on size.
AWS service: Amazon Keyspaces (for Apache Cassandra)
Amazon EC2 is a key service for running Cassandra clusters. Amazon EMR helps Cassandra users quickly and easily process large amounts of data by enabling Hadoop and other distributed applications to run on AWS infrastructure.
Amazon RDS is designed to help customers save time and effort when deploying, managing, and scaling relational databases in the cloud.
Amazon DynamoDB is a fully managed database service that provides fast and predictable performance with seamless scalability.
It offers single-digit millisecond latency at any scale. It also has integrated high availability, automatic backup, point-in-time recovery, encryption at rest, web hosting integration, monitoring capabilities as well as comprehensive APIs that can be used to manage DynamoDB resources programmatically via SDKs or command line tools (such as AWS CloudTrail).
A variety of computing power is available: Single instances up to 16 virtual cores. Moreover, it supports read and writes capacity units which help regulate costs.
AWS service: Amazon Neptune
Amazon Neptune is a fast, reliable, managed service for graph databases that makes it easy to run apps with highly connected datasets.
With Amazon Neptune, you pay only for storage and throughput capacity. You can get started with just a few clicks using your existing Amazon Web Services (AWS) account and then expand to hundreds of gigabytes or petabytes as your workload demands.
Built on top of AWS’s highly available and scalable storage infrastructure, Amazon Neptune is a great fit for building distributed applications over very large datasets that incorporate both relational and non-relational data sources.
These include machine learning algorithms, fraud detection and prevention systems, recommendations engines, smart chatbots, recommender systems, and more.
If you’re building a highly connected system, but don’t require ACID transactional support, Neptune may be a good fit.
Neptune is natively integrated with Amazon Kinesis Data Streams, which provides real-time data ingestion, transformation, and movement of data in motion.
With Amazon Kinesis Data Firehose, you can easily load streaming data into Amazon S3 for fast and cost-effective archiving.
AWS service: Amazon Timestream
Amazon Timestream is a fully managed service that makes it easy to ingest, store, and analyze billions of data points—order records, financial transactions, IT logs, location data, and more.
The service handles common use cases like real-time analytics for IoT and machine learning or alerting for fraud detection.
And you don’t need to worry about managing hardware, scaling resources up or down when your workload changes—the service scales automatically and provisions capacity on demand.
Amazon Timestream supports both SQL and NoSQL data models using Apache Parquet as its default storage format. You can also configure the following NoSQL data models: Cassandra, MongoDB, Couchbase Server, and Elasticsearch Service with either standard or encrypted SSL support.
For example, if you have many customers who share the same interests and needs, you might use a document database such as MongoDB to serve them.
If you need advanced querying capabilities over time series data or relational structures such as graphs, social networks, and geospatial information; or powerful analytic tools such as text mining or sentiment analysis; then look at Elasticsearch Service with one of our secure S3 buckets.
It gives you highly scalable search capabilities while providing control over index management via REST API’s/SDKs
AWS service: Amazon Quantum Ledger Database (QLDB)
QLDB is a highly scalable, low-latency, immutable, and cryptographically verifiable ledger database that can be used to track high-volume financial transactions.
It’s designed to handle millions of transactions per second while maintaining an audit trail. This database will write entries into multiple tables with a common primary key.
It can efficiently scale to support thousands of concurrent users. Users can create new tables or modify existing ones; however, at least one table must exist for your database to be operational.
The user has full control over which columns are present and their data types when creating new tables. You can also change the column names by specifying the column name: new_column_name.
You can use this feature to rename fields without having to retype all the data from scratch.