Week 8 - Databases in Cloud Flashcards
What is a relational database?
A relational database consists of multiple related tables (relations) containing records (rows) and features (columns) in a structured collection of data.
What is Amazon Relational Database Service (Amazon RDS)?
Amazon RDS is a managed service that sets up, operates, and manages relational databases in the cloud.
What are the responsibilities for deploying and maintaining an on-premises database?
For an on-premises database, you are responsible for:
Application optimization
Scaling
High availability
Database backups
Database software patches
Database software installs
Operating system patches and installs
Server maintenance
Rack and stack servers
Power, HVAC, and network
What are the responsibilities for deploying and maintaining a database in Amazon EC2?
For a database in Amazon EC2, you are responsible for:
Application optimization
Scaling
High availability
Database backups
Database software patches
Database software installs
Operating system patches and installs
Server maintenance
AWS is responsible for:
Rack and Stack servers
Power, HVAC, Network
What are the responsibilities for deploying and maintaining a database in Amazon RDS or Amazon Aurora?
For a database in Amazon RDS or Amazon Aurora, you are only responsible for:
Application Optimization
AWS is responsible for:
Scaling
High Availability
Database backups
Database software patches
Database software installs
Operation system patches
Operating system install
Server maintenance
Rack and stack servers
Power, HVAC, network
What are the components of a typical Amazon RDS instance?
A typical Amazon RDS instance includes:
- DB Instance Class: Defines CPU, memory, and network performance
- DB Instance Storage: Options include magnetic, general-purpose SSD, and provisioned IOPS
What are the 6 DB engines that Amazon RDS provides?
Amazon RDS currently supports six database engines:
1. MySQL
2. Amazon Aurora
3. Microsoft SQL Server
4. PostgreSQL
5. MariaDB
6. Oracle
How do database instances and storage options differ in Amazon RDS?
Database instances and storage in Amazon RDS differ in:
- Performance characteristics
- Price, which allows customization of performance and cost based on database needs
How does Amazon RDS ensure high availability in a Multi-AZ deployment?
In a Multi-AZ deployment, Amazon RDS automatically generates a standby copy of the database instance in another Availability Zone within the same VPC. If the main instance fails, Amazon RDS automatically brings the standby instance online as the new main instance.
What happens when the main database instance fails in a Multi-AZ deployment?
If the main database instance fails, Amazon RDS automatically promotes the standby instance to be the new primary, ensuring minimal downtime and continued availability.
What are Amazon RDS Read Replicas?
Amazon RDS Read Replicas offer asynchronous replication and can be promoted to a primary instance if needed.
When should Amazon RDS Read Replicas be used?
RDS Read Replicas are ideal for read-heavy database workloads, as they allow offloading read queries to the replica to improve performance on the primary instance.
What are the use cases of Amazon RDS for web and mobile applications, ecommerce, and mobile/online games?
Amazon RDS is useful for:
- Web and mobile applications: High throughput, massive storage scalability, and high availability
- Ecommerce applications: Low-cost databases, strong data security, and a fully managed solution
- Mobile and online games: Rapidly growing capacity, automatic scaling, and database monitoring
When should you use Amazon RDS for your application?
Use Amazon RDS when your application requires:
- Complex transactions or complex queries
- A medium to high query or write rate (up to 30,000 IOPS: 15,000 reads + 15,000 writes)
- No more than a single worker node or shard
- High durability
When should you not use Amazon RDS for your application?
Do not use Amazon RDS when your application requires:
- Massive read/write rates (e.g., 150,000 writes per second)
- Sharding due to high data size or throughput demands
- Simple GET or PUT requests and queries that a NoSQL database can handle
- Relational database management system (RDBMS) customization