

# Quotas and constraints for Amazon RDS
<a name="CHAP_Limits"></a>

Following, you can find a description of the resource quotas and naming constraints for Amazon RDS.

**Topics**
+ [

## Quotas in Amazon RDS
](#RDS_Limits.Limits)
+ [

## Naming constraints in Amazon RDS
](#RDS_Limits.Constraints)
+ [

## Maximum number of database connections
](#RDS_Limits.MaxConnections)
+ [

## File size limits in Amazon RDS
](#RDS_Limits.FileSize)

## Quotas in Amazon RDS
<a name="RDS_Limits.Limits"></a>

Each AWS account has quotas, for each AWS Region, on the number of Amazon RDS resources that can be created. After a quota for a resource has been reached, additional calls to create that resource fail with an exception.

The following table lists the resources and their quotas per AWS Region.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html)

**Note**  
By default, you can have up to a total of 40 DB instances. RDS DB instances, Aurora DB instances, Amazon Neptune instances, and Amazon DocumentDB instances apply to this quota.  
The following limitations apply to the Amazon RDS DB instances:  
10 for each SQL Server edition (Enterprise, Standard, Web, and Express) under the "license-included" model
10 for Oracle under the "license-included" model
40 for Db2 under the "bring-your-own-license" (BYOL) licensing model
40 for MySQL, MariaDB, or PostgreSQL
40 for Oracle under the "bring-your-own-license" (BYOL) licensing model
If your application requires more DB instances, you can request additional DB instances by opening the [Service Quotas console](https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/dashboard). In the navigation pane, choose **AWS services**. Choose **Amazon Relational Database Service (Amazon RDS)**, choose a quota, and follow the directions to request a quota increase. For more information, see [Requesting a quota increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-increase.html) in the *Service Quotas User Guide*.  
For RDS for Oracle, you can create up to 15 read replicas per source DB instance in each Region, but we recommend limiting replicas to 5 to minimize replication lag.  
Backups managed by AWS Backup are considered manual DB snapshots, but don't count toward the manual snapshot quota. For information about AWS Backup, see the [https://docs.aws.amazon.com/aws-backup/latest/devguide](https://docs.aws.amazon.com/aws-backup/latest/devguide).

Note that the default quota for cross-Region automated backups is 20 for an AWS account, the default quota for the number of concurrent snapshot copy requests is 20 for each Region for an AWS account, and the default quota for the number of concurrent cross-Region read replica requests is 20 for each Region for an AWS account.

If you use any RDS API operations and exceed the default quota for the number of calls per second, the Amazon RDS API issues an error like the following one.

ClientError: An error occurred (ThrottlingException) when calling the *API\$1name* operation: Rate exceeded. 

Here, reduce the number of calls per second. The quota is meant to cover most use cases. If higher quotas are needed, you can request a quota increase by using one of the following options:
+ From the console, open the [Service Quotas console](https://us-east-1.console.aws.amazon.com/servicequotas/home/).
+ From the AWS CLI, use the [request-service-quota-increase](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/request-service-quota-increase.html) AWS CLI command.

For more information, see the [https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).

## Naming constraints in Amazon RDS
<a name="RDS_Limits.Constraints"></a>

The naming constraints in Amazon RDS are as follows:
+ DB instance identifier:
  + Must contain 1–63 alphanumeric characters or hyphens.
  + First character must be a letter.
  + Can't end with a hyphen or contain two consecutive hyphens.
  + Must be unique for all DB instances per AWS account, per AWS Region.
+ Initial database name:
  + Database name constraints differ for each database engine. For more information, see the available settings when creating each DB instance.
  + SQL Server – Create your databases after creating your DB instance.
+ Master username – Master username constraints differ for each database engine. For more information, see the available settings when creating the DB instance.
+ Master password:
  + The password for the database master user can include any printable ASCII character except `/`, `'`, `"`, `@`, or a space.

    For Oracle, `&` is an additional character limitation.
  + The password can contain the following number of printable ASCII characters depending on the DB engine:
    + Db2: 8–255
    + MariaDB and MySQL: 8–41
    + Oracle: 8–30
    + SQL Server and PostgreSQL: 8–128
+ DB parameter group:
  + Must contain 1–255 alphanumeric characters.
  + First character must be a letter.
  + Hyphens are allowed, but the name cannot end with a hyphen or contain two consecutive hyphens.
+ DB subnet group:
  + Must contain 1–255 characters.
  + Alphanumeric characters, spaces, hyphens, underscores, and periods are allowed.

## Maximum number of database connections
<a name="RDS_Limits.MaxConnections"></a>

The maximum number of simultaneous database connections varies by the DB engine type and the memory allocation for the DB instance class. The maximum number of connections is generally set in the parameter group associated with the DB instance. The exception is Microsoft SQL Server, where it is set in the server properties for the DB instance in SQL Server Management Studio (SSMS).

Database connections consume memory. Setting one of these parameters too high can cause a low memory condition that might cause a DB instance to be placed in the **incompatible-parameters** status. For more information, see [Diagnosing and resolving incompatible parameters status for a memory limit](CHAP_Troubleshooting.md#CHAP_Troubleshooting.incompatible-parameters-memory).

If your applications frequently open and close connections, or keep a large number of long-lived connections open, we recommend that you use Amazon RDS Proxy. RDS Proxy is a fully managed, highly available database proxy that uses connection pooling to share database connections securely and efficiently. To learn more about RDS Proxy, see [Amazon RDS Proxy](rds-proxy.md).

**Note**  
For Oracle, you set the maximum number of user processes and user and system sessions.  
For Db2, you can't set maximum connections. The limit is 64000.

The following table shows information about the maximum database connections for different DB engines.


| DB engine | Parameter | Allowed values | Default value | Description | 
| --- | --- | --- | --- | --- | 
| MariaDB | max\$1connections | 1–100000 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html)  | Number of simultaneous client connections allowed | 
| MySQL | max\$1connections | 1–100000 |  \$1DBInstanceClassMemory/12582880\$1 The formula is effectively equivalent to MB/12.  | Number of simultaneous client connections allowed | 
| Oracle | processes | 80–20000 | LEAST(\$1DBInstanceClassMemory/9868951\$1, 20000) | User processes | 
| Oracle | sessions | 100–65535 | Not applicable | User and system sessions | 
| PostgreSQL | max\$1connections | 6–262143 | LEAST(\$1DBInstanceClassMemory/9531392\$1, 5000) | Maximum number of concurrent connections | 
| SQL Server | user connections | 0–32767 | 0 (unlimited) | Maximum number of concurrent connections. For more information, see [Configure the user connections (server configuration option)](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-user-connections-server-configuration-option?view=sql-server-ver16). | 

`DBInstanceClassMemory` is in bytes. For details about how this value is calculated, see [Specifying DB parameters](USER_ParamValuesRef.md). Because of memory reserved for the operating system and RDS management processes, this memory size is smaller than the value in gibibytes (GiB) shown in [Hardware specifications for DB instance classes](Concepts.DBInstanceClass.Summary.md).

For example, some DB instance classes have 8 GiB of memory, which is 8,589,934,592 bytes. For a MySQL DB instance running on a DB instance class with 8 GiB of memory, such as db.m7g.large, the equation that uses the total memory would be `8589934592/12582880=683`. However, the variable `DBInstanceClassMemory` automatically subtracts the amounts reserved to the operating system and the RDS processes that manage the DB instance. The remainder of the subtraction is then divided by 12,582,880. This calculation results in approximately 630 for the value of `max_connections` instead of 683. This value depends on the DB instance class and DB engine.

When a MariaDB or MySQL DB instance is running on a small DB instance class, such as db.t3.micro or db.t3.small, the total memory available is low. For these DB instance classes, RDS reserves a significant portion of the available memory, which affects the value `max_connections`. For example, the default maximum number of connections for a MySQL DB instance running on a db.t3.micro DB instance class is approximately 60. You can determine the `max_connections` value for your DB MariaDB or MySQL DB instance by connecting to it and running the following SQL command:

```
SHOW GLOBAL VARIABLES LIKE 'max_connections';
```

## File size limits in Amazon RDS
<a name="RDS_Limits.FileSize"></a>

File size limits apply to certain Amazon RDS DB instances. For more information, see the following engine-specific limits:
+ [MariaDB file size limits in Amazon RDS](CHAP_MariaDB.Limitations.md#RDS_Limits.FileSize.MariaDB)
+ [MySQL file size limits in Amazon RDS](MySQL.KnownIssuesAndLimitations.md#MySQL.Concepts.Limits.FileSize)
+ [Oracle file size limits in Amazon RDS](Oracle.Concepts.limitations.md#Oracle.Concepts.file-size-limits)