Relational databases store a collection of data with predefined relationships between them. SQL, Structured Query Language, is the primary interface designed to communicate with Relational Databases (RDS) and support referential integrity and data consistency. Relational databases are used for ERP, CRM, e-commerce applications.
AWS resources for relational databases include Amazon RDS and Amazon Redshift. In an earlier article we covered Amazon Redshift and its pricing. In this article we will focus on Amazon RDS DB instances.
Amazon Relational Database Service
Amazon RDS automates administrative tasks such as hardware provisioning, database setup, patching and backups. It is available for use on the following database engines: Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database, and Microsoft SQL Server.
Web and mobile applications that operate at very large scale and need a database with high throughput, massive storage scalability, and high availability.
Ecommerce applications that need a flexible, secure, scalable database solution at low cost.
Mobile and online games that need a database platform with high throughput and high availability. Amazon RDS provides a database infrastructure that fully manages the provisioning, scaling, and monitoring of servers for game developers.
What are the different RDS DB instance classesGeneral purpose and memory optimized instances are designed for flexibility to build the required mix of database resources for relational database applications. They come in different combinations of CPU, memory, storage, and networking capacity. Each instance type includes a number of sizes allowing your database to scale to meet your workload requirements.
Amazon RDS DB Instance Types
General Purpose Database Instances
T3 and T2 Instances
These are burstable instances that can withstand sudden bursts in CPU performance beyond a baseline level. They accumulate CPU credits when a workload is operating below the baseline, to be used at times of burstable performance. T3 instances are configured for unlimited mode that allow them to burst beyond the baseline over a 24-hour period at an additional charge which ensures high performance during peak periods.
- Test and staging databases
M6g instances are powered by Arm-based AWS Graviton2 processors with 64-bit Arm Neoverse cores. They support enhanced networking bandwidths of up to 25 Gbps. M6G instances are EBS-optimized by default.
M5 and M4 instances
M5 and M4 instances are designed for a wide range of open source and enterprise applications in the cloud that use compute, memory and networking resources in equal parts. They are EBS-optimized by default. The latest generation M5 offers up to 96 vCPUs and 384 GiB of memory, and up to 25 Gbps network bandwidth through enhanced networking.
Memory Optimized Database Instances
R6g instances are powered by AWS Graviton2 processors, custom designed by AWS for Arm architecture, with 64-bit Arm Neoverse cores.
R5 and R4 Instances
R5 and R4 Instances are optimized for memory-intensive applications. They are powered by the AWS Nitro System and EBS optimized.
X1e and X1 instances
X1e and X1 instances are memory optimized for high-performance databases.
Z1d instances deliver the fastest memory optimized instances that are best utilized for relational database workloads with high per-core licensing costs.
What database storage options are thereAmazon RDS storage uses block-level Amazon EBS service for the following dbase engines: MySQL, MariaDB, PostgreSQL, Oracle, and SQL Server. There are three volume types on Amazon EBS: General Purpose (SSD), Provisioned IOPS (SSD), and Magnetic. General Purpose (SSD) is the default volume for a wide range of database workloads. Provisioned IOPS (SSD) volumes are designed for I/O intensive database workloads for storage with consistent and low-latency performance. Magnetic volumes offer a low cost per gigabyte alternative for backwards compatibility.
Storage on Amazon Aurora offers a distributed, fault-tolerant service that can auto-scale up to 64TB per database instance and delivers high performance and availability.
Does every instance type support every database engine?Not every instance is supported by all database engines. For a detailed match-up of database instances to database engines please consult the AWS documentation. A summary of database engines that support specific instances is below.
- Microsoft SQL Server supports all dbase instance classes and types depending on the exact version and edition of SQL Server. SQL Server does not support AWS Graviton powered instance types, m6g and r5g.
- Maria DB supports all general purpose instances except Arm based m6g instances, and it supports all memory optimized instance types, except z1d and x1, depending on the exact version of MariaDB
- MySQL supports all general purpose and memory optimized instances, depending on the exact version,except z1d and x1 instances
- Oracle: All dbase instance classes, except AWS Graviton-based r5g, are supported by Oracle, based on the exact version and edition
- PostgreSQL: Depending on the exact version all general purpose and memory optimized instance types are supported for Amazon RDS PostgreSQL, except z1d and x1.
Optimize Your Database Utilization with an Automated Tool
Building and running your cloud architecture with the appropriate mix of database instance types requires a thorough consideration of your application requirements and their pricing implications. Parquantix will develop a strategic AWS cost management strategy based on your relational database demand and usage. Our automated tool will procure and manage instances with the pricing model that guarantees the highest performance and value for your applications in the cloud.
Are you ready to start optimizing your database applications on AWS?