Today
Total
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)
관리 메뉴

DB & AWS Knowledge

RDS, Aurora Cluster 의 max_connections 본문

AWS 및 클라우드 지식/AWS RDS, Aurora 및 관련 지식

RDS, Aurora Cluster 의 max_connections

`O` 2022. 5. 12. 03:16
728x90
반응형

해당 페이지에서는 RDS, Aurora Cluster 의 max_connections 에 대하여 다룬다.

 

이 페이지는 아래의 공식 AWS 문서와 관련되어 있다.

 

- 공식 문서

 

[1] https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-mysql-max-connections/

 

[2] https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Performance.html

 

[3] https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Managing.html

 

 

max_connections 의 의의

 

 

max_connections 는 데이터베이스에서 접속할 수 있는 외부 사용자 혹은 서비스(클라이언트) 가 얼마나 접속 할 수 있는지를 제한을 하는 파라미터다. 이러한 최대 접속자수를 제한 하지 않아 무한하게 인스턴스 (온프레미스에서는 서버) 에

접속을 하게 되면 결국 인스턴스의 자원 사용량이 한계에 다다르게 되어 장애를 유발하기에 반드시 조절이 필요한 파라미터다.

 

 

온프레미스와 AWS 에서의 max_connections 산출 차이 

 

온프레미스에서는 DBA 및 관련 엔지니어들이 신규 혹은 기존서비스의 확장, 축소에 따라 이 파라미터의 값을

어느정도로 조절해야 적절 할 지를 산출한다. AWS 에서도 이를 산출해야하는 것은 사용자의 몫이나

온프레미스와는 다르게 각 인스턴스 class 에 따라 어느정도가 적절한지를 산출해주는 산출식을 기본 파라미터 값으로

사용한다.

 

예를 들어,

 

- RDS MySQL

 

max_connections = {DBInstanceClassMemory/12582880}

 

- Aurora MySQL

 

max_connections = GREATEST({log(DBInstanceClassMemory/805306368)*45},{log(DBInstanceClassMemory/8187281408)*1000})

 

- RDS PostgreSQL, Aurora PostgreSQL 는 동일하게

 

LEAST({DBInstanceClassMemory/9531392},5000)

 

를 기본값으로 따르게 되어 인스턴스 class 에 따라 각기 다르게 사용되는 메모리 사용량에 따라 max_connections 가 산출되어 자동 설정된다. 여기에서 기본 산출식이 아닌 사용자측에서 어느정도가 적절한지를 산출 할 수 있다면, 더 큰값으로 설정도 할 수 있다. 단, RDS 및 Aurora Cluster 에서는 산출식이든 수동이든 설정 할 수 있는 최대값은 제한 되어 있으며 이 또한 RDS, Aurora Cluster, DB 엔진 별로 다르다.

 

이는 아래 예시와 같이 RDS 콘솔의 파라미터 그룹에서 파라미터를 바꿀 때 산출식 옆의 숫자로 확인 할 수 있다.

 

- RDS MySQL

 

 

- Aurora MySQL

 

 

- RDS PostgreSQL

 

 

- Aurora PostgreSQL

 

 

또한 [2], [3] 의 Document 를 참조하면 Aurora MySQL, PostgreSQL 에서 위의 산출식에 따른 각 instance class 에서 얼마만큼에 max_connections 를 기본값을 쓸 수 있는지 계산된 숫자로 쉽게 확인이 가능하다.

반응형
Comments