DB & AWS Knowledge
RDS, Aurora Cluster 의 max_connections 본문
해당 페이지에서는 RDS, Aurora Cluster 의 max_connections 에 대하여 다룬다.
이 페이지는 아래의 공식 AWS 문서와 관련되어 있다.
- 공식 문서
[1] https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-mysql-max-connections/
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 를 기본값을 쓸 수 있는지 계산된 숫자로 쉽게 확인이 가능하다.
'AWS 및 클라우드 지식 > AWS RDS, Aurora 및 관련 지식' 카테고리의 다른 글
RDS, Aurora Cluster 의 Performance Insight 기능 개요 (0) | 2022.05.20 |
---|---|
RDS, Aurora 파라미터 그룹 개요 (Parameter group) (0) | 2022.05.18 |
RDS, Aurora Cluster log 보관 (0) | 2022.05.11 |
RDS, Aurora Cluster 에서의 AWS, DBA 관리 영역 (0) | 2022.05.10 |
AWS Aurora Failover (0) | 2022.05.10 |