Database configuration, backup, and failover
Many web applications contain some form of persistence, usually in the form of a
relational or non-relational database
Table 1 — Relational and non-relational database solutions
Relational Database Solutions | NoSQL Solutions | |
---|---|---|
Managed database service |
Amazon RDS for MySQL |
Amazon DynamoDB |
Self-managed | Hosting a relational database management system (DBMS) on an Amazon EC2 |
Hosting a non-relational database solution on an EC2 instance |
Amazon RDS
Amazon Relational Database Service
Amazon RDS Multi-AZ deployments increase your database availability and protect your database against unplanned outages. Amazon RDS Read Replicas provide read-only replicas of your database, so you can scale out beyond the capacity of a single database deployment for read-heavy database workloads. As with all AWS services, no upfront investments are required, and you pay only for the resources you use.
Hosting a relational database management system (RDBMS) on an Amazon EC2 instance
In addition to the managed Amazon RDS offering, you can install your choice of RDBMS (such as MySQL, Oracle, SQL Server, or DB2) on an EC2 instance and manage it yourself. AWS customers hosting a database on Amazon EC2 successfully use a variety of primary/standby and replication models, including mirroring for read-only copies and log shipping for always-ready passive replicas.
When managing your own database software directly on Amazon EC2, you should also consider
the availability of fault-tolerant and persistent storage. For this purpose, we recommend
that databases running on Amazon EC2 use Amazon Elastic Block Store
For EC2 instances running a database, you should place all database data and logs on EBS volumes. These will remain available even if the database host fails. This configuration allows for a simple failover scenario, in which a new EC2 instance can be launched if a host fails, and the existing EBS volumes can be attached to the new instance. The database can then pick up where it left off.
EBS volumes automatically provide redundancy within the Availability Zone. If the performance of a single EBS volume is not sufficient for your databases needs, volumes can be striped to increase input/output operations per second (IOPS) performance for your database.
For demanding workloads, you can also use EBS Provisioned IOPS, where you specify the IOPS required. If you use Amazon RDS, the service manages its own storage so you can focus on managing your data.
Non-relational databases
In addition to support for relational databases, AWS also offers a number of managed non-relational databases:
-
Amazon DynamoDB
is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. Using the AWS Management Console or the DynamoDB API, you can scale capacity up or down without downtime or performance degradation. Because DynamoDB handles the administrative burdens of operating and scaling distributed databases to AWS, you don’t have to worry about hardware provisioning, setup and configuration, replication, software patching, or cluster scaling. -
Amazon DocumentDB
(with MongoDB compatibility) is a database service that is purpose-built for JSON data management at scale, fully managed and runs on AWS, and enterprise-ready with high durability. -
Amazon Keyspaces
(for Apache Cassandra ) is a scalable, highly available, and managed Apache Cassandra-compatible database service. With Amazon Keyspaces, you can run your Cassandra workloads on AWS using the same Cassandra application code and developer tools that you use today. -
Amazon Neptune
is a fast, reliable, fully managed graph database service that makes it easy to build and run applications that work with highly connected datasets. The core of Amazon Neptune is a purpose-built, high-performance graph database engine optimized for storing billions of relationships and querying the graph with milliseconds latency. -
Amazon Quantum Ledger Database (Amazon QLDB)
(QLDB) is a fully managed ledger database that provides a transparent, immutable, and cryptographically verifiable transaction log owned by a central trusted authority. QLDB can be used to track each and every application data change and maintains a complete and verifiable history of changes over time. -
Amazon Timestream
is a fast, scalable, and serverless time series database service for IoT and operational applications that makes it easy to store and analyze trillions of events per day up to 1,000 times faster and at as little as 1/10th the cost of relational databases.
Additionally, you can use Amazon EC2 to host other non-relational database technologies you may be working with.