Quotas and constraints for Amazon RDS
Following, you can find a description of the resource quotas and naming constraints for Amazon RDS.
Topics
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
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:
-
From the console, open the Service Quotas console
. -
From the AWS CLI, use the request-service-quota-increase AWS CLI command.
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: