

# 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/ko_kr/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개
'BYOL(bring-your-own-license)' 모델에서 Db2의 경우 40개
MySQL, MariaDB 또는 PostgreSQL의 경우 40개
'BYOL4(bring-your-own-license)' 라이선싱 모델에서 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 작업을 사용하고 초당 호출 수의 기본 할당량을 초과하는 경우, Amazon RDS API는 다음과 같이 오류를 생성합니다.

ClientError: *API\$1name* 작업을 호출하는 동안 오류 발생(ThrottlingException): 속도 초과됨.

이 경우 초당 호출 수를 줄입니다. 할당량은 대부분의 사용 사례를 다루기 위한 것입니다. 더 높은 할당량이 필요한 경우 다음 옵션 중 하나를 사용하여 할당량 증가를 요청할 수 있습니다.
+ 콘솔에서 [Service Quotas 콘솔](https://us-east-1.console.aws.amazon.com/servicequotas/home/)을 엽니다.
+ AWS CLI에서 [request-service-quota-increase](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/request-service-quota-increase.html) AWS CLI 명령을 사용합니다.

자세한 내용은 [Service Quotas 사용 설명서](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자의 영숫자 또는 하이픈으로 구성되어야 합니다.
  + 첫 번째 문자는 글자이어야 합니다.
  + 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.
  + 각 AWS 리전별로 AWS 계정 1개의 모든 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자의 영숫자로 구성되어야 합니다.
  + 첫 번째 문자는 글자이어야 합니다.
  + 하이픈은 허용되지만 이름은 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.
+ DB 서브넷 그룹:
  + 1–255자로 구성되어야 합니다.
  + 영숫자, 스페이스, 하이픈, 밑줄, 마침표를 사용할 수 있습니다.

## 최대 데이터베이스 연결 수
<a name="RDS_Limits.MaxConnections"></a>

최대 동시 데이터베이스 연결 수는 DB 엔진 유형과 DB 인스턴스 클래스의 메모리 할당에 따라 다릅니다. 최대 연결 수는 일반적으로 DB 인스턴스에 연결된 파라미터 그룹에서 설정됩니다. 예외적으로, Microsoft SQL Server의 경우 SQL Server Mangment Studio(SSMS)의 DB 인스턴스에 대한 서버 속성에서 설정됩니다.

데이터베이스 연결은 메모리를 사용합니다. 이러한 파라미터 중 하나를 너무 높게 설정하면 메모리 부족 상태가 발생하여 DB 인스턴스가 **파라미터 호환 장애(incompatible-parameters)** 상태가 될 수 있습니다. 자세한 내용은 [메모리 제한에 대한 호환되지 않는 파라미터 상태 진단 및 해결](CHAP_Troubleshooting.md#CHAP_Troubleshooting.incompatible-parameters-memory) 섹션을 참조하세요.

애플리케이션이 연결을 자주 열고 닫거나, 수명이 긴 연결을 많이 열어 두는 경우, Amazon RDS 프록시를 사용하는 것이 좋습니다. RDS 프록시는 데이터베이스 연결을 효율적으로 안전하게 공유하기 위해 연결 풀링을 사용하는 완전관리형 고가용성 데이터베이스 프록시입니다. RDS 프록시에 대한 자세한 내용은 [ Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요.

**참고**  
Oracle의 경우 최대 사용자 프로세스 수와 사용자 및 시스템 세션을 설정합니다.  
Db2의 경우 최대 연결 수를 설정할 수 없습니다. 한도는 64,000입니다.

다음 표에는 여러 DB 엔진의 최대 데이터베이스 연결 수에 대한 정보가 나와 있습니다.


| DB 엔진 | 파라미터 | 허용된 값 | 기본값 | 설명 | 
| --- | --- | --- | --- | --- | 
| MariaDB | max\$1connections | 1–100000 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/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(무제한) | 최대 동시 연결 수. 자세한 내용은 [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`는 바이트 단위입니다. 이 값이 계산되는 방법에 대한 자세한 내용은 [DB 파라미터 지정](USER_ParamValuesRef.md) 섹션을 참조하세요. 운영 체제 및 RDS 관리 프로세스용으로 예약된 메모리로 인해 이 메모리 크기는 [ DB 인스턴스 클래스의 하드웨어 사양](Concepts.DBInstanceClass.Summary.md)에 표시된 기비바이트(GiB) 값보다 작습니다.

예를 들어 일부 DB 인스턴스 클래스는 메모리 크기가 8GiB(8,589,934,592바이트)입니다. 메모리가 8GiB인 DB 인스턴스 클래스(예: db.m7g.large)에서 실행되는 MySQL DB 인스턴스의 경우 총 메모리를 사용하는 방정식은 `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 인스턴스에 연결하고 다음 SQL 명령을 실행하여 DB MariaDB 또는 MySQL DB 인스턴스의 `max_connections` 값을 확인할 수 있습니다.

```
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)