Module-4
AWS Database Services
AWS Database Services
• AWS Database Services,
• Amazon RDS (Relational Database Service),
• RDS Multi-AZ Deployments,
• RDS Read Replicas,
• Amazon Aurora,
• Amazon DynamoDB,
• DynamoDB Streams
INTRODUCTION
• RDS → Managed relational database service.
• Multi-AZ → High availability (HA).
• Read Replicas → Scalability (read-heavy workloads).
• Aurora → High-performance relational DB (MySQL /
PostgreSQL compatible).
• DynamoDB → Fully managed, serverless NoSQL
database.
•DynamoDB Streams → Enables event-driven, real-
time data workflows.
1. RDS – Managed Relational Database Service
•Amazon RDS (Relational Database Service) automates database
management tasks such as provisioning, patching, backups, and
scaling.
•Supports popular relational database engines like MySQL,
PostgreSQL, MariaDB, Oracle, SQL Server, and Amazon Aurora.
•Ideal for transactional and structured data workloads where ACID
compliance is required.
2. Multi-AZ – High Availability (HA)
•Multi-AZ (Availability Zone) deployments automatically replicate
databases across multiple availability zones.
•Ensures minimal downtime during planned maintenance or
hardware failures.
•Provides automated failover to standby instances for increased
reliability and business continuity.
3. Read Replicas – Scalability for Read-Heavy Workloads
•Read Replicas allow you to offload read traffic from the primary
database.
•Multiple replicas can be created to handle high query loads and
improve performance.
•Can be promoted to standalone databases if needed for disaster
recovery or scaling.
4. Amazon Aurora – High-Performance Relational Database
•Aurora is a cloud-optimized relational database compatible with
MySQL and PostgreSQL.
•Delivers up to 5x (MySQL) and 3x (PostgreSQL) performance
compared to standard engines.
•Offers features like fault tolerance, auto-scaling storage, and global
database capabilities.
5. Amazon DynamoDB – Fully Managed, Serverless NoSQL Database
•DynamoDB is designed for high-scale, low-latency applications
needing flexible schema.
•Fully managed with automatic scaling, encryption, and high
durability.
•Ideal for web apps, gaming, IoT, and real-time analytics.
6. DynamoDB Streams – Event-Driven Workflows
•Captures real-time changes (insert, update, delete) to DynamoDB
tables.
•Enables use cases like event sourcing, trigger-based workflows, and
integrations with AWS Lambda for serverless event processing.
•Supports replication and auditing by maintaining ordered change
records.
Relational database defined
A relational database (RDB) is a way of structuring information in
tables, rows, and columns. An RDB has the ability to establish
links—or relationships–between information by joining tables,
which makes it easy to understand and gain insights about the
relationship between various data points.
Amazon Relational Database Service (Amazon RDS)
• Robust Lineup: Amazon offers multiple relational
database options under Amazon RDS.
• Alternative Approach: Possible to install a database on an
EC2 instance and self-manage.
• Recommendation: Self-hosting is rarely advisable unless
there’s a strong business need.
• Cost Perspective:
• Self-management involves hidden costs (e.g., system
administration).
• Amazon RDS often proves more cost-efficient overall.
• Flavors of RDS: Multiple database engines supported
(e.g., MySQL, PostgreSQL, Oracle, SQL Server, MariaDB,
Aurora).
•Purpose: Simplifies management of critical
transactional applications.
•Platform Capabilities: Easy setup, operation, and
scaling of relational databases in the cloud.
•Automation: Handles hardware provisioning,
configuration, patching, and backups.
•Scalability & Cost Efficiency: Provides flexible,
scalable capacity at optimized costs.
•Instance Options: Offers multiple types optimized for
memory, performance, or I/O.
•Supported Engines:
•Amazon Aurora (MySQL & PostgreSQL
compatible)
•MySQL
•PostgreSQL
•MariaDB
•SQL Server
•Oracle
1. AWS Solutions Categories:
I. Unmanaged services
II. Managed services
I. Unmanaged services
• Provisioned in fixed portions by the user.
• User must manage scaling, error handling, and load
changes.
• Example: Amazon EC2 (a virtual server).
• If traffic increases or an instance fails, the user must
configure solutions like AWS Auto Scaling.
• Advantage: fine-grained control by the u.
ii) Managed services
• AWS handles scaling, availability, and fault-
tolerance internally.
• User does minimal configuration.
• Example: Amazon S3 (cloud storage service).
• Hosting a static website on S3 does not need a
web server; AWS handles reliability and scaling.
Unmanaged versus managed services
• Amazon RDS is a managed service that sets up and operates a
relational database in the cloud.
• To address the challenges of running an unmanaged, standalone
relational database, AWS provides a service that sets up, operates,
and scales the database without ongoing administration.
• Amazon RDS offers cost-efficient, resizable capacity while
automating time-consuming administrative tasks.
• Amazon RDS allows you to focus on your application, providing the
performance, high availability, security, and compatibility your
applications need.
• With Amazon RDS, your primary focus is on your data and
optimizing your application.
• When your database is on-premises, the database administrator is
responsible for everything.
• Database administration tasks include optimizing applications and
queries, setting up the hardware, patching the hardware, configuring
networking and power, and managing heating, ventilation, and air
conditioning (HVAC).
• If you move to a database that runs on an Amazon Elastic Compute
Cloud (Amazon EC2) instance, you no longer need to manage the
underlying hardware or handle data center operations.
• However, you are still responsible for patching the operating
system (OS) and handling all software and backup operations.
• If you set up your database on Amazon RDS or Amazon Aurora, you
reduce your administrative responsibilities.
• By moving to the cloud, you can automatically scale your database,
enable high availability, manage backups, and perform patching.
• This allows you to focus on what really matters—optimizing your
application.
Managed services responsibilities
• With Amazon RDS, you focus on optimizing your applications,
while AWS manages tasks such as installing and patching the
operating system, installing and patching the database software,
performing automatic backups, and ensuring high availability.
• AWS also handles resource scaling, power and server
management, and routine maintenance.
• By offloading these operations to the managed Amazon RDS
service, you reduce your operational workload and associated
costs for running a relational database.
• The next step is to explore an overview of the service and some
potential use cases.
• The basic building block of Amazon RDS is the database
instance.
• A database instance is an isolated environment that can
contain multiple user-created databases.
• It can be accessed using the same tools and applications
you use with a standalone database.
• The resources in a database instance are determined by
its instance class, and the storage type is defined by the
type of disks used.
• Database instances and storage options vary in
performance characteristics and price, allowing you to
customize both performance and cost to meet your
needs.
• When creating a database instance, you must first
choose the database engine to run.
• Amazon RDS currently supports six database engines:
MySQL, Amazon Aurora, Microsoft SQL Server,
PostgreSQL, MariaDB, and Oracle.
High availability with Multi-AZ
deployment (2 of 2)
Amazon RDS read replicas
Use cases