What is Amazon Relational Database Service (Amazon RDS)? - Amazon Relational Database Service
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

What is Amazon Relational Database Service (Amazon RDS)?

Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the Amazon Web Services Cloud. It provides cost-efficient, resizable capacity for an industry-standard relational database and manages common database administration tasks.

Note

This guide covers Amazon RDS database engines other than Amazon Aurora. For information about using Amazon Aurora, see the Amazon Aurora User Guide.

If you are new to Amazon products and services, begin learning more with the following resources:

Overview of Amazon RDS

Why do you want to run a relational database in the Amazon Web Services Cloud? Because Amazon takes over many of the difficult and tedious management tasks of a relational database.

Amazon EC2 and on-premises databases

Amazon Elastic Compute Cloud (Amazon EC2) provides scalable computing capacity in the Amazon Web Services Cloud. Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy applications faster.

When you buy an on-premises server, you get CPU, memory, storage, and IOPS, all bundled together. With Amazon EC2, these are split apart so that you can scale them independently. If you need more CPU, less IOPS, or more storage, you can easily allocate them.

For a relational database in an on-premises server, you assume full responsibility for the server, operating system, and software. For a database on an Amazon EC2 instance, Amazon manages the layers below the operating system. In this way, Amazon EC2 eliminates some of the burden of managing an on-premises database server.

In the following table, you can find a comparison of the management models for on-premises databases and Amazon EC2.

Feature

On-premises management

Amazon EC2 management

Application optimization

Customer

Customer

Scaling

Customer

Customer

High availability

Customer

Customer

Database backups

Customer

Customer

Database software patching

Customer

Customer

Database software install

Customer

Customer

Operating system (OS) patching

Customer

Customer

OS installation

Customer

Customer

Server maintenance

Customer

Amazon

Hardware lifecycle

Customer

Amazon

Power, network, and cooling

Customer

Amazon

Amazon EC2 isn't a fully managed service. Thus, when you run a database on Amazon EC2, you're more prone to user errors. For example, when you update the operating system or database software manually, you might accidentally cause application downtime. You might spend hours checking every change to identify and fix an issue.

Amazon RDS and Amazon EC2

Amazon RDS is a managed database service. It's responsible for most management tasks. By eliminating tedious manual tasks, Amazon RDS frees you to focus on your application and your users. We recommend Amazon RDS over Amazon EC2 as your default choice for most database deployments.

In the following table, you can find a comparison of the management models in Amazon EC2 and Amazon RDS.

Feature

Amazon EC2 management

Amazon RDS management

Application optimization

Customer

Customer

Scaling

Customer

Amazon

High availability

Customer

Amazon

Database backups

Customer

Amazon

Database software patching

Customer

Amazon

Database software install

Customer

Amazon

OS patching

Customer

Amazon

OS installation

Customer

Amazon

Server maintenance

Amazon

Amazon

Hardware lifecycle

Amazon

Amazon

Power, network, and cooling

Amazon

Amazon

Amazon RDS provides the following specific advantages over database deployments that aren't fully managed:

  • You can use the database products you are already familiar with: Db2, MariaDB, Microsoft SQL Server, MySQL, Oracle, and PostgreSQL.

  • Amazon RDS manages backups, software patching, automatic failure detection, and recovery.

  • You can turn on automated backups, or manually create your own backup snapshots. You can use these backups to restore a database. The Amazon RDS restore process works reliably and efficiently.

  • You can get high availability with a primary instance and a synchronous secondary instance that you can fail over to when problems occur. You can also use read replicas to increase read scaling.

  • In addition to the security in your database package, you can help control who can access your RDS databases. To do so, you can use Amazon Identity and Access Management (IAM) to define users and permissions. You can also help protect your databases by putting them in a virtual private cloud (VPC).

Amazon RDS Custom for Oracle and Microsoft SQL Server

Amazon RDS Custom is an RDS management type that gives you full access to your database and operating system.

You can use the control capabilities of RDS Custom to access and customize the database environment and operating system for legacy and packaged business applications. Meanwhile, Amazon RDS automates database administration tasks and operations.

In this deployment model, you can install applications and change configuration settings to suit your applications. At the same time, you can offload database administration tasks such as provisioning, scaling, upgrading, and backup to Amazon. You can take advantage of the database management benefits of Amazon RDS, with more control and flexibility.

For Oracle Database and Microsoft SQL Server, RDS Custom combines the automation of Amazon RDS with the flexibility of Amazon EC2. For more information on RDS Custom, see Working with Amazon RDS Custom.

With the shared responsibility model of RDS Custom, you get more control than in Amazon RDS, but also more responsibility. For more information, see Shared responsibility model in RDS Custom.

Amazon RDS on Amazon Outposts

Amazon RDS on Amazon Outposts extends RDS for SQL Server, RDS for MySQL, and RDS for PostgreSQL databases to Amazon Outposts environments. Amazon Outposts uses the same hardware as in public Amazon Web Services Regions to bring Amazon services, infrastructure, and operation models on-premises. With RDS on Outposts, you can provision managed DB instances close to the business applications that must run on-premises. For more information, see Working with Amazon RDS on Amazon Outposts.

DB instances

A DB instance is an isolated database environment in the Amazon Web Services Cloud. The basic building block of Amazon RDS is the DB instance.

Your DB instance can contain one or more user-created databases. You can access your DB instance by using the same tools and applications that you use with a standalone database instance. You can create and modify a DB instance by using the Amazon Command Line Interface (Amazon CLI), the Amazon RDS API, or the Amazon Web Services Management Console.

DB engines

A DB engine is the specific relational database software that runs on your DB instance. Amazon RDS currently supports the following engines:

  • Db2

  • MariaDB

  • Microsoft SQL Server

  • MySQL

  • Oracle

  • PostgreSQL

Each DB engine has its own supported features, and each version of a DB engine can include specific features. Support for Amazon RDS features varies across Amazon Web Services Regions and specific versions of each DB engine. To check feature support in different engine versions and Regions, see Supported features in Amazon RDS by Amazon Web Services Region and DB engine.

Additionally, each DB engine has a set of parameters in a DB parameter group that control the behavior of the databases that it manages.

DB instance classes

A DB instance class determines the computation and memory capacity of a DB instance. A DB instance class consists of both the DB instance type and the size. Each instance type offers different compute, memory, and storage capabilities. For example, db.m6g is a general-purpose DB instance type powered by Amazon Graviton2 processors. Within the db.m6g instance type, db.m6g.2xlarge is a DB instance class.

You can select the DB instance that best meets your needs. If your needs change over time, you can change DB instances. For information, see DB instance classes.

Note

For pricing information on DB instance classes, see the Pricing section of the Amazon RDS product page.

DB instance storage

Amazon EBS provides durable, block-level storage volumes that you can attach to a running instance. DB instance storage comes in the following types:

  • General Purpose (SSD)

  • Provisioned IOPS (PIOPS)

  • Magnetic

The storage types differ in performance characteristics and price. You can tailor your storage performance and cost to the needs of your database.

Each DB instance has minimum and maximum storage requirements depending on the storage type and the database engine it supports. It's important to have sufficient storage so that your databases have room to grow. Also, sufficient storage makes sure that features for the DB engine have room to write content or log entries. For more information, see Amazon RDS DB instance storage.

Amazon Virtual Private Cloud (Amazon VPC)

You can run a DB instance on a virtual private cloud (VPC) using the Amazon Virtual Private Cloud (Amazon VPC) service. When you use a VPC, you have control over your virtual networking environment. You can choose your own IP address range, create subnets, and configure routing and access control lists. The basic functionality of Amazon RDS is the same whether it's running in a VPC or not. Amazon RDS manages backups, software patching, automatic failure detection, and recovery. There's no additional cost to run your DB instance in a VPC. For more information on using Amazon VPC with RDS, see Amazon VPC VPCs and Amazon RDS.

Amazon RDS uses Network Time Protocol (NTP) to synchronize the time on DB instances.

Amazon Regions and Availability Zones

Amazon cloud computing resources are housed in highly available data center facilities in different areas of the world (for example, North America, Europe, or Asia). Each data center location is called an Amazon Region.

Each Amazon Region contains multiple distinct locations called Availability Zones, or AZs. Each Availability Zone is engineered to be isolated from failures in other Availability Zones. Each is engineered to provide inexpensive, low-latency network connectivity to other Availability Zones in the same Amazon Region. By launching instances in separate Availability Zones, you can protect your applications from the failure of a single location. For more information, see Regions, Availability Zones, and Local Zones.

You can run your DB instance in several Availability Zones, an option called a Multi-AZ deployment. When you choose this option, Amazon automatically provisions and maintains one or more secondary standby DB instances in a different Availability Zone. Your primary DB instance is replicated across Availability Zones to each secondary DB instance. This approach helps provide data redundancy and failover support, eliminate I/O freezes, and minimize latency spikes during system backups. In a Multi-AZ DB clusters deployment, the secondary DB instances can also serve read traffic. For more information, see Configuring and managing a Multi-AZ deployment.

Security

A security group controls the access to a DB instance. It does so by allowing access to IP address ranges or Amazon EC2 instances that you specify.

For more information about security groups, see Security in Amazon RDS.

Amazon RDS monitoring

There are several ways that you can track the performance and health of a DB instance. You can use the Amazon CloudWatch service to monitor the performance and health of a DB instance. CloudWatch performance charts are shown in the Amazon RDS console. You can also subscribe to Amazon RDS events to be notified about changes to a DB instance, DB snapshot, or DB parameter group. For more information, see Monitoring metrics in an Amazon RDS instance.

How to work with Amazon RDS

There are several ways that you can interact with Amazon RDS.

Amazon Web Services Management Console

The Amazon Web Services Management Console is a simple web-based user interface. You can manage your DB instances from the console with no programming required. To access the Amazon RDS console, sign in to the Amazon Web Services Management Console and open the Amazon RDS console at https://console.amazonaws.cn/rds/.

Command line interface

You can use the Amazon Command Line Interface (Amazon CLI) to access the Amazon RDS API interactively. To install the Amazon CLI, see Installing the Amazon Command Line Interface. To begin using the Amazon CLI for RDS, see Amazon Command Line Interface reference for Amazon RDS.

Amazon RDS APIs

If you are a developer, you can access the Amazon RDS programmatically using APIs. For more information, see Amazon RDS API reference.

For application development, we recommend that you use one of the Amazon Software Development Kits (SDKs). The Amazon SDKs handle low-level details such as authentication, retry logic, and error handling, so that you can focus on your application logic. Amazon SDKs are available for a wide variety of languages. For more information, see Tools for Amazon web services .

Amazon also provides libraries, sample code, tutorials, and other resources to help you get started more easily. For more information, see Sample code & libraries.

How you are charged for Amazon RDS

When you use Amazon RDS, you can choose to use on-demand DB instances or reserved DB instances. For more information, see DB instance billing for Amazon RDS.

For Amazon RDS pricing information, see the Amazon RDS product page.

What's next?

The preceding section introduced you to the basic infrastructure components that RDS offers. What should you do next?

Getting started

Create a DB instance using instructions in Getting started with Amazon RDS.

Topics specific to database engines

You can review information specific to a particular DB engine in the following sections:

Amazon RDS shared responsibility model

Amazon RDS is responsible for hosting the software components and infrastructure of DB instances and DB cluster. You are responsible for query tuning, which is the process of adjusting SQL queries to improve performance. Query performance is highly dependent on database design, data size, data distribution, application workload, and query patterns, which can vary greatly. Monitoring and tuning are highly individualized processes that you own for your RDS databases. You can use Amazon RDS Performance Insights and other tools to identify problematic queries.