Quotas and constraints for Amazon RDS - Amazon Relational Database Service

Quotas and constraints for Amazon RDS

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

Quotas in Amazon RDS

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.

Name Default Adjustable Description
Authorizations per DB security group Each supported Region: 20 No Number of security group authorizations per DB security group
Custom engine versions Each supported Region: 40 Yes The maximum number of custom engine versions allowed in this account in the current Region
DB cluster parameter groups Each supported Region: 50 No The maximum number of DB cluster parameter groups
DB clusters Each supported Region: 40 Yes The maximum number of Aurora clusters allowed in this account in the current Region
DB instances Each supported Region: 40 Yes The maximum number of DB instances allowed in this account in the current Region
DB shard groups Each supported Region: 5 Yes The maximum number of DB shard groups for Aurora Limitless Database in this account in the current Region
DB subnet groups Each supported Region: 50 Yes The maximum number of DB subnet groups
Data API HTTP request body size Each supported Region: 4 Megabytes No The maximum size allowed for the HTTP request body.
Data API maximum concurrent cluster-secret pairs Each supported Region: 30 No The maximum number of unique pairs of Aurora Serverless v1 DB clusters and secrets in concurrent Data API requests for this account in the current AWS Region.
Data API maximum concurrent requests Each supported Region: 500 No The maximum number of Data API requests to an Aurora Serverless v1 DB cluster that use the same secret and can be processed at the same time. Additional requests are queued and processed as in-process requests complete.
Data API maximum result set size Each supported Region: 1 Megabytes No The maximum size of the database result set that can be returned by the Data API.
Data API maximum size of JSON response string Each supported Region: 10 Megabytes No The maximum size of the simplified JSON response string returned by the RDS Data API.
Data API requests per second Each supported Region: 1,000 per second No The maximum number of requests to the Data API per second allowed in this account in the current AWS Region
Event subscriptions Each supported Region: 20 Yes The maximum number of event subscriptions
IAM roles per DB cluster Each supported Region: 5 Yes The maximum number of IAM roles associated with a DB cluster
IAM roles per DB instance Each supported Region: 5 Yes The maximum number of IAM roles associated with a DB instance
Integrations Each supported Region: 100 No The maximum number of integrations allowed in this account in the current AWS Region
Manual DB cluster snapshots Each supported Region: 100 Yes The maximum number of manual DB cluster snapshots
Manual DB instance snapshots Each supported Region: 100 Yes The maximum number of manual DB instance snapshots
Option groups Each supported Region: 20 Yes The maximum number of option groups
Parameter groups Each supported Region: 50 Yes The maximum number of parameter groups
Proxies Each supported Region: 20 Yes The maximum number of proxies allowed in this account in the current AWS Region
Read replicas per primary Each supported Region: 15 Yes The maximum number of read replicas per primary DB instance. This quota cant be adjusted for Amazon Aurora.
Reserved DB instances Each supported Region: 40 Yes The maximum number of reserved DB instances allowed in this account in the current AWS Region
Security groups Each supported Region: 25 Yes The maximum number of DB security groups
Subnets per DB subnet group Each supported Region: 20 No The maximum number of subnets per DB subnet group
Total storage for all DB instances Each supported Region: 100,000 Gigabytes Yes The maximum total storage (in GB) on EBS volumes for all Amazon RDS DB instances added together. This quota does not apply to Amazon Aurora, which has a maximum cluster volume of 128 TiB for each DB cluster.
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. 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 in the Service Quotas User Guide.

For RDS for Oracle, the read replica limit is 5 per source database for each Region.

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 AWS Backup Developer Guide.

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_name 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:

For more information, see the Service Quotas User Guide.

Naming constraints in Amazon RDS

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

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.

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.

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 and MySQL max_connections 1–100000

Default for all MariaDB and MySQL versions except for MariaDB version 10.5 and 10.6:

{DBInstanceClassMemory/12582880}

The formula is effectively equivalent to MB/12.

Default for MariaDB version 10.5 and 10.6:

LEAST({DBInstanceClassMemory/25165760},12000)

The formula is effectively equivalent to MB/25.

In either case, if the default value calculation results in a value greater than 16,000, Amazon RDS sets the limit to 16,000 for MariaDB and MySQL DB instances.

Number of simultaneous client connections allowed
Oracle processes 80–20000 LEAST({DBInstanceClassMemory/9868951}, 20000) User processes
Oracle sessions 100–65535 Not applicable User and system sessions
PostgreSQL max_connections 6–8388607 LEAST({DBInstanceClassMemory/9531392}, 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).

DBInstanceClassMemory is in bytes. For details about how this value is calculated, see Specifying DB parameters. 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.

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

File size limits apply to certain Amazon RDS DB instances. For more information, see the following engine-specific limits: