메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

Amazon RDS 관련 제한

이번 주제에서는 Amazon RDS 리소스 제한 값과 각 제약 조건의 명명 방법에 대해 설명합니다.

Amazon RDS의 제한 값

AWS 계정은 리전마다 생성할 수 있는 Amazon RDS 리소스 수에 제한이 있습니다. 리소스가 제한 값에 이르면 리소스 생성을 위한 추가 호출이 예외적으로 중단됩니다.

다음 표는 각 리전의 리소스와 그 제한 값을 나타냅니다.

Resource 기본 제한
클러스터 40
클러스터 파라미터 그룹 50
교차 리전 스냅샷 복사 요청 5
DB 인스턴스 40
이벤트 구독 수 20
수동 스냅샷 수 100
수동 클러스터 스냅샷 수 100
옵션 그룹 수 20
파라미터 그룹 수 50
마스터당 읽기 전용 복제본 5
예약 인스턴스(매월 구입) 40
보안 그룹당 규칙 20
보안 그룹 25
보안 그룹(VPC) 5
서브넷 그룹 수 50
서브넷 그룹 1개당 서브넷 수 20
리소스당 태그 50
모든 DB 인스턴스의 총 스토리지 100TB

Amazon RDS의 제약 조건 명명

다음 표는 Amazon RDS의 제약 조건을 명명하는 방법을 나타냅니다.

DB 인스턴스 식별자

  • 1~63자의 영숫자 문자 또는 하이픈으로 구성되어야 합니다.

  • 첫 번째 문자는 글자이어야 합니다.

  • 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.

  • 각 리전별로 AWS 계정 1개의 모든 DB 인스턴스는 고유해야 합니다.

데이터베이스 이름

데이터베이스 이름 제약 조건은 각 데이터베이스 엔진에 따라 다릅니다.

MySQL, Amazon Aurora, MariaDB

  • 1~64자의 영숫자 문자로 구성되어야 합니다.

  • 데이터베이스 엔진에 포함된 단어는 사용할 수 없습니다.

PostgreSQL

  • 1~63자의 영숫자 문자로 구성되어야 합니다.

  • 글자나 밑줄로 시작되어야 합니다. 이후 문자는 글자, 밑줄 또는 숫자(0~9)가 될 수 있습니다.

  • 데이터베이스 엔진에 포함된 단어는 사용할 수 없습니다.

Oracle

  • 문자 수는 8개를 초과할 수 없습니다.

SQL Server

  • 해당 사항 없음. SQL Server의 경우, DB 인스턴스를 만든 후에 데이터베이스를 만듭니다. 데이터베이스 이름은 일반적인 SQL Server 명명 규칙을 따릅니다.

마스터 사용자 이름

마스터 사용자 이름 제약 조건은 각 데이터베이스 엔진에 따라 다릅니다.

MySQL 및 Amazon Aurora

  • 1~16자의 영숫자 문자로 구성되어야 합니다.

  • 첫 번째 문자는 글자이어야 합니다.

  • 데이터베이스 엔진에 포함된 단어는 사용할 수 없습니다.

Oracle

  • 1~30자의 영숫자 문자로 구성되어야 합니다.

  • 첫 번째 문자는 글자이어야 합니다.

  • 데이터베이스 엔진에 포함된 단어는 사용할 수 없습니다.

SQL Server

  • 1~64자의 영숫자 문자로 구성되어야 합니다.

  • 첫 번째 문자는 글자이어야 합니다.

  • 데이터베이스 엔진에 포함된 단어는 사용할 수 없습니다.

PostgreSQL

  • 1~63자의 영숫자 문자로 구성되어야 합니다.

  • 첫 번째 문자는 글자이어야 합니다.

  • 데이터베이스 엔진에 포함된 단어는 사용할 수 없습니다.

MariaDB

  • 1~16자의 영숫자 문자로 구성되어야 합니다.

  • 데이터베이스 엔진에 포함된 단어는 사용할 수 없습니다.

마스터 암호

마스터 데이터베이스 사용자의 암호는 "/", """, 또는 "@"를 제외하고 인쇄 가능한 모든 ASCII 문자를 사용할 수 있습니다. 마스터 암호 제약 조건은 각 데이터베이스 엔진에 따라 다릅니다.

MySQL, Amazon Aurora, MariaDB

  • 8~41자의 문자로 구성되어야 합니다.

Oracle

  • 8~30자의 문자로 구성되어야 합니다.

SQL Server

  • 8~128자의 문자로 구성되어야 합니다.

PostgreSQL

  • 8~128자의 문자로 구성되어야 합니다.

DB 파라미터 그룹 이름

  • 1~255자의 영숫자 문자로 구성되어야 합니다.

  • 첫 번째 문자는 글자이어야 합니다.

  • 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.

Amazon RDS의 파일 크기 제한

Amazon RDS의 Aurora 파일 크기 제한

Amazon Aurora에서 테이블 크기는 Aurora 클러스터 볼륨의 크기(최대 64TB)에 따라서만 제한을 받습니다. 따라서 Aurora 데이터베이스의 테이블에 대한 최대 크기는 64TB입니다.

Amazon RDS의 MySQL 파일 크기 제한

Amazon RDS MySQL DB 인스턴스의 경우 최대 프로비저닝 스토리지 제한으로 인해 InnoDB 테이블당 파일 테이블스페이스를 사용하여 각 테이블의 크기가 최대 6TB로 제한됩니다. 또한 이 제한은 시스템 테이블스페이스를 최대 6TB의 크기로 제한합니다. Amazon RDS MySQL DB 인스턴스에서는 테이블이 각각 자체 테이블스페이스에 들어 있는 InnoDB 테이블당 파일 테이블스페이스가 기본적으로 설정됩니다.

참고

2014년 4월 이전에 생성된 MySQL DB 인스턴스는 파일과 테이블 크기 제한이 2TB입니다. 마찬가지로 DB 인스턴스의 생성 시기와 상관없이 2014년 4월 이전에 생성된 DB 스냅샷에서 생성한 DB 인스턴스나 읽기 복제 역시 파일 크기가 2TB로 제한됩니다.

애플리케이션에 따라 InnoDB 테이블당 파일 테이블스페이스 사용에 대한 장점과 단점은 서로 다릅니다. 애플리케이션에 가장 적합한 접근 방식을 확인하려면 MySQL 문서의 InnoDB 테이블당 파일 모드을(를) 참조하십시오.

테이블을 최대 파일 크기로 늘리도록 허용하는 것은 권장하지 않습니다. 일반적으로 모범 사례는 성능 및 복구 시간을 향상할 수 있도록 데이터를 더 작은 테이블로 분할하는 것입니다.

라지 테이블을 여러 개의 스몰 테이블로 분할하는 데 사용할 수 있는 한 가지 옵션으로 파티셔닝이 있습니다. 파티셔닝을 수행하면 사용자가 지정하는 규칙에 따라 라지 테이블의 일부가 개별 파일로 배포됩니다. 예를 들어, 트랜잭션을 날짜별로 저장하는 경우 파티셔닝을 사용하여 이전 트랜잭션을 개별 파일로 배포하는 파티셔닝 규칙을 생성할 수 있습니다. 이렇게 하면 애플리케이션에서 즉시 사용할 필요가 없는 이전 트랜잭션 데이터를 주기적으로 보관할 수 있습니다. 자세한 내용은 MySQL 설명서의 Partitioning을(를) 참조하십시오.

테이블의 파일 크기를 확인하는 방법

다음 SQL 명령을 사용하여 크기가 너무 커서 파티셔닝을 수행해야 하는 테이블이 있는지 확인합니다. 테이블 통계를 업데이트하려면 각 테이블에서 ANALYZE TABLE 명령을 실행합니다. 자세한 내용은 MySQL 설명서에서 ANALYZE TABLE을(를) 참조하십시오.

Copy
SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) As "Approximate size (MB)", DATA_FREE FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema');

InnoDB 테이블당 파일 테이블스페이스를 활성화하는 방법

  • InnoDB 테이블당 파일 테이블스페이스를 활성화하려면 DB 인스턴스에 대한 파라미터 그룹에서 innodb_file_per_table 파라미터를 1로 설정합니다.

InnoDB 테이블당 파일 테이블스페이스를 비활성화하는 방법

  • InnoDB 테이블당 파일 테이블스페이스를 비활성화하려면 DB 인스턴스에 대한 파라미터 그룹에서 innodb_file_per_table 파라미터를 0으로 설정합니다.

파라미터 그룹 업데이트에 대한 자세한 내용은 DB 파라미터 그룹 작업을(를) 참조하십시오.

InnoDB 테이블당 파일 테이블스페이스를 활성화하거나 비활성화한 경우 ALTER TABLE 명령을 실행하여 아래의 예와 같이 테이블을 전역 테이블스페이스에서 자체 테이블스페이스로 이동하거나 자체 테이블스페이스에서 전역 테이블스페이스로 이동할 수 있습니다.

Copy
ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;

Amazon RDS의 MariaDB 파일 크기 제한

Amazon RDS MariaDB DB 인스턴스의 경우, 최대 프로비저닝 스토리지 제한으로 인해 InnoDB 테이블당 파일 테이블스페이스를 사용하여 각 테이블의 크기가 최대 6TB로 제한됩니다. 또한 이 제한은 시스템 테이블스페이스를 최대 6TB의 크기로 제한합니다. Amazon RDS MariaDB DB 인스턴스에서는 테이블이 각각 자체 테이블스페이스에 들어 있는 InnoDB 테이블당 파일 테이블스페이스가 기본적으로 설정됩니다.

애플리케이션에 따라 InnoDB 테이블당 파일 테이블스페이스 사용에 대한 장점과 단점은 서로 다릅니다. 애플리케이션에 가장 적합한 접근 방식을 확인하려면 MySQL 문서의 InnoDB 테이블당 파일 모드을(를) 참조하십시오.

테이블을 최대 파일 크기로 늘리도록 허용하는 것은 권장하지 않습니다. 일반적으로 모범 사례는 성능 및 복구 시간을 향상할 수 있도록 데이터를 더 작은 테이블로 분할하는 것입니다.

라지 테이블을 여러 개의 스몰 테이블로 분할하는 데 사용할 수 있는 한 가지 옵션으로 파티셔닝이 있습니다. 파티셔닝을 수행하면 사용자가 지정하는 규칙에 따라 라지 테이블의 일부가 개별 파일로 배포됩니다. 예를 들어, 트랜잭션을 날짜별로 저장하는 경우 파티셔닝을 사용하여 이전 트랜잭션을 개별 파일로 배포하는 파티셔닝 규칙을 생성할 수 있습니다. 이렇게 하면 애플리케이션에서 즉시 사용할 필요가 없는 이전 트랜잭션 데이터를 주기적으로 보관할 수 있습니다. 자세한 내용은 MySQL 문서의 https://dev.mysql.com/doc/refman/5.6/en/partitioning.html을(를) 참조하십시오.

테이블의 파일 크기를 확인하는 방법

다음 SQL 명령을 사용하여 크기가 너무 커서 파티셔닝을 수행해야 하는 테이블이 있는지 확인합니다. 테이블 통계를 업데이트하려면 각 테이블에서 ANALYZE TABLE 명령을 실행합니다. 자세한 내용은 MySQL 설명서에서 ANALYZE TABLE을(를) 참조하십시오.

Copy
SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) As "Approximate size (MB)", DATA_FREE FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema');

InnoDB 테이블당 파일 테이블스페이스를 활성화하는 방법

  • InnoDB 테이블당 파일 테이블스페이스를 활성화하려면 DB 인스턴스에 대한 파라미터 그룹에서 innodb_file_per_table 파라미터를 1로 설정합니다.

InnoDB 테이블당 파일 테이블스페이스를 비활성화하는 방법

  • InnoDB 테이블당 파일 테이블스페이스를 비활성화하려면 DB 인스턴스에 대한 파라미터 그룹에서 innodb_file_per_table 파라미터를 0으로 설정합니다.

파라미터 그룹 업데이트에 대한 자세한 내용은 DB 파라미터 그룹 작업을(를) 참조하십시오.

InnoDB 테이블당 파일 테이블스페이스를 활성화하거나 비활성화한 경우 ALTER TABLE 명령을 실행하여 아래의 예와 같이 테이블을 전역 테이블스페이스에서 자체 테이블스페이스로 이동하거나 자체 테이블스페이스에서 전역 테이블스페이스로 이동할 수 있습니다.

Copy
ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;