

# Amazon RDS のクォータと制約
<a name="CHAP_Limits"></a>

Amazon RDS のリソースのクォータと名前付け制約の説明は次のとおりです。

**Topics**
+ [Amazon RDS のクォータ](#RDS_Limits.Limits)
+ [Amazon RDS の命名に関する制約](#RDS_Limits.Constraints)
+ [データベース接続の最大数](#RDS_Limits.MaxConnections)
+ [Amazon RDS のファイルサイズ制限](#RDS_Limits.FileSize)

## Amazon RDS のクォータ
<a name="RDS_Limits.Limits"></a>

各 AWS アカウントには、AWS リージョン別に、作成できる Amazon RDS リソースの数に適用されるクォータがあります。リソースのクォータに達すると、そのリソースを作成するための追加の呼び出しは、失敗して例外が発生します。

次の表に、AWS リージョンごとのリソースとそのクォータを示します。

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

**注記**  
デフォルトでは、最大で合計 40 の DB インスタンスを持つことができます。RDS DB インスタンス、Aurora DB インスタンス、Amazon Neptune インスタンス、および Amazon DocumentDB インスタンスは、このクォータに該当します。  
Amazon RDS DB インスタンスには、次の制限が適用されます。  
「ライセンス込み」のモデルでは、各 SQL Server のエディション (Enterprise、Standard、Web、および Express) ごとにインスタンスをそれぞれ最大 10 使用することができます。
「ライセンス込み」モデルに基づく Oracle 向けの 10
「Bring-Your-Own-License (BYOL)」ライセンスモデルの Db2 の場合は 40
MySQL、MariaDB、または PostgreSQL では、40 使用できます。
「Bring-Your-Own-License (BYOL)」 モデルの Oracle では、40 使用できます。
アプリケーションでさらに多くの DB インスタンスが必要な場合は、[Service Quotas コンソール](https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/dashboard)を開いて、追加の DB インスタンスをリクエストできます。ナビゲーションペインで、[**AWS のサービス**] を選択します。[**Amazon Relational Database Service (Amazon RDS)**] を選択してクォータを選択し、指示に従ってクォータの引き上げをリクエストします。詳細については、「*Service Quotas ユーザーガイド*」の「[クォータの引き上げのリクエスト](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-increase.html)」を参照してください。  
RDS for Oracle では、各リージョンでソース DB インスタンスごとに最大 15 個のリードレプリカを作成できますが、レプリカを 5 個に制限してレプリケーションの遅延を最小限に抑えることをお勧めします。  
AWS Backup によって管理されるバックアップは手動 DB スナップショットと見なされますが、手動スナップショットクォータにはカウントされません。AWS Backup の詳細については、「[https://docs.aws.amazon.com/aws-backup/latest/devguide](https://docs.aws.amazon.com/aws-backup/latest/devguide)」を参照してください。

クロスリージョン自動バックアップのデフォルトクォータは AWS アカウントごとに 20 であり、スナップショットの同時コピーリクエスト数のデフォルトクォータは AWS アカウントのリージョンごとに 20 であることに注意してください。

いずれかの RDS API オペレーションを使用して、1 秒あたりの呼び出し数のデフォルトのクォータを超えると、Amazon RDS API では次のようなエラーを発行します。

ClientError: *API\$1Name* オペレーションの呼び出し時にエラー (ThrottlingException) が発生しました (レート超過)。

この場合、1 秒あたりのコール回数を減らします。クォータは、ほとんどのユースケースをカバーするようにしてあります。より大きなクォータが必要な場合は、次のいずれかのオプションを使用してクォータの引き上げをリクエストできます。
+ コンソールで、[[Service Quotas コンソール]](https://us-east-1.console.aws.amazon.com/servicequotas/home/) を開きます。
+ AWS CLI で、AWS CLI コマンド [request-service-quota-increase](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/request-service-quota-increase.html) を使用します。

詳細については、[https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)を参照してください。

## Amazon RDS の命名に関する制約
<a name="RDS_Limits.Constraints"></a>

Amazon RDS の命名に関する制約を次に示します。
+ DB インスタンス識別子:
  + 1～63 個の英数字またはハイフンを使用する必要があります。
  + 1 字目は文字である必要があります。
  + 文字列の最後にハイフンを使用したり、ハイフンを 2 つ続けて使用したりすることはできません。
  + 1 つの AWS アカウント、1 つの AWS リージョンにつき、すべての DB インスタンスにおいて一意である必要があります。
+ 初期データベース名:
  + データベース名の制約は、データベースエンジンごとに異なります。詳細については、各 DB インスタンスの作成時に使用できる設定を参照してください。
  + SQL Server – DB インスタンスを作成した後、データベースを作成します。
+ マスターユーザー名 – マスターユーザー名の制約は、データベースエンジンごとに異なります。詳細については、DB インスタンスの作成時に使用できる設定を参照してください。
+ マスターパスワード:
  + データベースのマスターユーザーのパスワードには、すべての印刷可能な ASCII 文字 (`/`、`'`、`"`、`@`、またはスペースを除く) を使用できます。

    Oracle の場合、`&` は追加の文字制限です。
  + パスワードには、DB エンジンに応じて、次の数の印字可能な ASCII 文字を含めることができます:
    + Db2: 8～255
    + MariaDB および MySQL: 8～41 文字
    + Oracle: 8～30 文字
    + SQL Server および PostgreSQL: 8～128 文字
+ DB パラメータグループ:
  + 1～255 個の英数字を使用する必要があります。
  + 1 字目は文字である必要があります。
  + この名前では、ハイフンを使用できますが、末尾に使用したり、2 つ続けて使用したりすることはできません。
+ DB サブネットグループ:
  + 1～255 文字を使用する必要があります。
  + 英数字、スペース、ハイフン、アンダースコア、ピリオドを使用できます。

## データベース接続の最大数
<a name="RDS_Limits.MaxConnections"></a>

同時データベース接続の最大数は、DB エンジンのタイプと DB インスタンスクラスのメモリ割り当てによって異なります。最大接続数は、通常は DB インスタンスに関連付けられたパラメータグループで設定されます。例外は、Microsoft SQL Server Management Studio (SSMS) の DB インスタンスのサーバープロパティで設定される Microsoft SQL Server です。

データベース接続は、メモリを消費します。これらのパラメータのいずれかを高く設定しすぎると、メモリ不足が発生し、DB インスタンスが**互換性のないパラメータ**ステータスになる可能性があります。詳細については、「[メモリ制限と互換性のないパラメータの状態の診断と解決](CHAP_Troubleshooting.md#CHAP_Troubleshooting.incompatible-parameters-memory)」を参照してください。

アプリケーションが頻繁に接続を開いたり閉じたりする場合や、長時間の接続を多数開いたままにする場合は、Amazon RDS Proxy の使用を推奨します。RDS Proxy は、接続プーリングを使用してデータベース接続を安全かつ効率的に共有する、フルマネージドの高可用性データベースプロキシです。RDS Proxy の詳細については、[Amazon RDS Proxy ](rds-proxy.md) を参照してください。

**注記**  
Oracle の場合は、ユーザープロセス、ユーザーセッションとシステムセッションの最大数を設定します。  
Db2 の場合、最大接続数を設定することはできません。上限は 64000 です。

次の表は、さまざまな DB エンジンの最大データベース接続数に関する情報を示しています。


| DB エンジン | Parameter | 許可される値 | デフォルト値 | 説明 | 
| --- | --- | --- | --- | --- | 
| MariaDB | max\$1connections | 1-100000 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_Limits.html)  | 許可されるクライアントの同時接続数 | 
| MySQL | max\$1connections | 1-100000 |  \$1DBInstanceClassMemory/12582880\$1 この式は実質的に MB/12 と同等です。  | 許可されるクライアントの同時接続数 | 
| Oracle | processes | 80-20000 | LEAST(\$1DBInstanceClassMemory/9868951\$1, 20000) | ユーザープロセス | 
| Oracle | sessions | 100-65535 | 該当しない | ユーザーセッションとシステムセッション | 
| PostgreSQL | max\$1connections | 6–262143 | LEAST(\$1DBInstanceClassMemory/9531392\$1, 5000) | 同時接続の最大数 | 
| SQL Server | user connections | 0-32767 | 0 (無制限) | 同時接続の最大数 詳細については、「[ユーザー接続の設定 (サーバー設定オプション）](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-user-connections-server-configuration-option?view=sql-server-ver16)」を参照してください。 | 

`DBInstanceClassMemory` の単位はバイトです。この数値の計算方法の詳細については、「[DB パラメータの指定](USER_ParamValuesRef.md)」を参照してください。オペレーティングシステムおよび RDS 管理プロセス用に予約されているメモリにより、このメモリサイズは、[ DB インスタンスクラスのハードウェア仕様](Concepts.DBInstanceClass.Summary.md) に示すギビバイト (GiB) 単位の値よりも小さくなります。

例えば、一部の DB インスタンスクラスには 8 GiB のメモリがあり、これは 8,589,934,592 バイトです。メモリが 8 GiB の DB インスタンスクラスで実行されている MySQL DB インスタンス (db.m7g.large など) の場合、合計メモリを使用する式は `8589934592/12582880=683` になります。ただし、変数 `DBInstanceClassMemory` によって、この DB インスタンスを管理するオペレーティングシステムと RDS プロセスに予約されている量が自動的に減算されます。次に、減算した残りが 12,582,880 で除算されます。この計算の結果、`max_connections` の値は 683 ではなく約 630 になります。この値は、DB インスタンスクラスと DB エンジンによって異なります。

MariaDB または MySQL DB インスタンスが db.t3.micro や db.t3.small などの小さな DB インスタンスクラスで実行されている場合、使用可能な合計メモリは少なくなります。これらの DB インスタンスクラスでは、使用可能なメモリのかなりの部分が RDS によって予約されるため、値 `max_connections` に影響します。例えば、db.t3.micro DB インスタンスクラスで実行されている MySQL DB インスタンスのデフォルトの最大接続数は約 60 です。DB MariaDB インスタンスまたは MySQL DB インスタンスの `max_connections` 値を確認するには、そのインスタンスに接続し、次の SQL コマンドを実行します。

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

## Amazon RDS のファイルサイズ制限
<a name="RDS_Limits.FileSize"></a>

ファイルサイズの制限は、特定の Amazon RDS DB インスタンスに適用されます。詳細については、次のエンジン固有の制限を参照してください。
+ [Amazon RDS での MariaDB のファイルサイズ制限](CHAP_MariaDB.Limitations.md#RDS_Limits.FileSize.MariaDB)
+ [Amazon RDS での MySQL のファイルサイズ制限](MySQL.KnownIssuesAndLimitations.md#MySQL.Concepts.Limits.FileSize)
+ [Amazon RDS での Oracle のファイルサイズ制限](Oracle.Concepts.limitations.md#Oracle.Concepts.file-size-limits)