본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] RDS 파라미터 그룹 생성 및 수정 방법

by BTC_남요정 2023. 8. 23.

베하~!!

안녕하세요

BTC 블랙아웃입니다.

 

 

오늘은 DB 파라미터 그룹에 대해 알아볼 예정입니다. 

 

AWS RDS 를 생성할 때 파라미터 그룹에 대해 크게 신경 쓰지 않고 default 그대로 사용하시는 분들이 많습니다.

기본적으로 이 파라미터 그룹이란 무엇이고, 어떻게 사용해야 하는지 모르기 때문에 그렇습니다.

 

그래서 오늘은 파라미터 그룹에 대해 알아보고 어떻게 생성하고 수정하는지 알아보도록 하겠습니다.

 


 

1. 파라미터 그룹이란?

파라미터 그룹(Parameter Group)은 주로 관계형 데이터베이스 관리 시스템(RDBMS)에서 사용되며,

데이터베이스 관리 시스템(DBMS)에서 설정과 구성을 관리하기 위한 설정 그룹을 의미합니다.

데이터베이스 클러스터나 인스턴스의 동작을 제어하고 최적화하는 등 여러가지 목적으로 사용할 수 있습니다.

 

편리한 중앙 관리와 설정 변경

파라미터 그룹을 사용하면 데이터베이스의 다양한 설정 항목을 중앙에서 손쉽게 관리할 수 있습니다.

데이터베이스의 동작을 제어하기 위해 수많은 설정 옵션들을 파라미터 그룹을 통해 관리할 수 있으며, 데이터베이스 클러스터나 인스턴스가 여러 개일 때 파라미터 그룹을 사용하여 일괄적으로 설정을 적용하거나 변경할 수 있습니다.

 

성능 최적화

데이터베이스의 성능을 최적화하기 위해 다양한 설정을 조정할 수 있습니다.

예를 들어, 버퍼 크기, 캐시 설정, 동시 연결 수 등을 조절하여 데이터베이스의 성능을 향상시킬 수 있습니다.

 

보안 및 안정성

데이터베이스 시스템의 보안과 안정성을 높이기 위해 암호화 설정, 접근 권한 등을 관리할 수 있습니다.

 


 

2. 파라미터 그룹의 생성 및 수정 방법

default 파라미터 그룹의 단점

많은 분들이 데이터베이스를 생성하실 때 default 파라미터 그룹을 그대로 사용하시는 경우가 많습니다.

default 파라미터 그룹을 사용하시는 경우 손쉽게 데이터베이스를 생성할 수 있다는 장점이 있지만,

성능 최적화나 편리성을 위해 파라미터 값의 수정이 필요할 때 아쉬운 경우가 많습니다.

 

왜냐하면 default 파라미터 그룹의 경우 파라미터 값이 수정되지 않기 때문입니다.

 

 

이게 무엇이 문제가 되느냐 궁금하실 수 있는데요.

 

예를 들어, max connection 수를 조정하고 싶을 경우 max_connections 파라미터의 수정이 필요하고 ,

대소문자를 구분하지 않도록 하고 싶을 경우 lower_case_table_names 값을 1로 수정하여 설정을 변경할 수 있습니다.

 

하지만 default 파라미터 그룹을 사용하시는 경우 이런 설정들을 변경할 수 없다는 문제가 생깁니다.

결국 해당 파라미터 값을 수정하기 위해서는 데이터베이스를 새로 만들어야 하는 번거로움이 생기게 됩니다.

 

이러한 상황을 방지하기 위해 긴급한 상황이 아니라면 ‘사용자 지정 파라미터 그룹’을 별도로 생성하여 데이터베이스 생성 시 새로 생성한 파라미터 그룹을 적용해주는 것을 권장드리는 바입니다.

 

 


 

파라미터 그룹 생성 방법

파라미터 그룹을 생성하게 되면 세부 정보를 입력해야 합니다.

: AWS Console > RDS Dashboard > Parameter groups > Create parameter group

Parameter group family

사용할 데이터베이스 엔진과 메이저 버전을 맞춰줍니다.

저는 mysql 8.0 버전의 데이터베이스에 파라미터 그룹을 붙여줄 예정이므로 붙여줄 예정이므로 해당 엔진을 선택합니다.

 

Group Name

  • DB Parameter Group : 사용할 데이터베이스를 단일 인스턴스로 생성 시 사용
  • DB Cluster Parameter Group : 사용할 데이터베이스를 클러스터 단위로 생성 시 사용

첫 번째 Group Name 에서는 토글을 사용하여

생성할 데이터베이스가 단일 인스턴스 단위인지, 클러스터 단위인지 고려하여 선택할 수 있습니다.

 

두 번째 Group Name 에서는 생성할 파라미터 그룹의 이름을 적어주시면 됩니다.

참고로 파라미터 그룹의 이름과 설명(description)은 모두 required 값이며, 영어와 하이픈(-), 숫자만 입력이 가능합니다.

 

※ 언더바( _ )나 한글 사용 시 아래와 같은 오류가 뜨니 당황하지 마시고 수정해 주시면 됩니다!

 

그럼 이렇게 ‘ Custom ‘ 탭에서 생성한 사용자 지정 파라미터 그룹을 확인할 수 있습니다.

 

 

이렇게 생성한 파라미터 그룹은 데이터베이스 생성 시 Additional configuration 에서 별도로 지정이 가능합니다. 

: AWS Console > RDS Dashboard > Databases > Create databasess > Additional configuration

 

📌  Additional configuration에서는 DB parameter group 뿐만 아니라 Option group 도 지정할 수 있습니다.

Option group 도 DB parameter group 과 같은 원리로, 사용자 지정 옵션 그룹을 별도로 생성하여 지정해 주는 것을 권고드립니다.

 


 

파라미터 그룹 수정 방법

사용자 지정 파라미터 그룹을 만든 후에 데이터베이스를 만들 때 해당 파라미터 그룹을 지정해 주는 원리를 이해하셨나요?

그럼 사용자 지정 파라미터 그룹에서 파라미터 값을 수정할 차례입니다.

: Parameter groups > Custom parameter group 선택 > Edit > 파라미터 값 변경 > Save Change

 

예를 들어, max_connections 를 검색하여 / 뒤 숫자를 조정해줄 수 있고

 

lower_case_table_names 값을 1로 수정하여 대소분자 구분 없이 sql문을 사용하도록 설정할 수도 있습니다.

 

하지만 lower_case_table_names 파라미터의 경우 주의하셔야 할 점이 있습니다!

 

※ 바로 lower_case_table_names 파라미터의 경우, mysql 8.0 이상 버전에서는 수정이 불가하다는 점입니다. ※

lower_case_table_names 파라미터 값을 변경하고 싶으신 경우 데이터베이스를 생성하기 전에 파라미터 그룹을 먼저 수정해 주신 후에 데이터베이스를 생성하신다면 변경된 파라미터 값을 수정하실 수 있습니다.

 

즉,

파라미터 생성 -> 데이터베이스 생성 -> lower_case_table_names 파라미터 수정 : X

파라미터 생성 -> lower_case_table_names 파라미터 수정 -> 데이터베이스 생성 : O

 

---

 

이렇게 파라미터 값(Value)을 변경하게 되면 해당 파라미터 그룹을 사용하고 있는 모든 데이터베이스에 변경된 파라미터 값이 적용됩니다.

 

※ 하나의 파라미터 그룹으로 여러 데이터베이스를 사용하고 계시다면 이점을 유의해 주세요.  

 

또한 일부 파라미터의 변경 사항은 재부팅 없이 DB 인스턴스에 즉시 적용되기도 하지만, 일부 파라미터에 대한 변경 사항은 DB 인스턴스를 재부팅한 후에만 적용되기도 합니다.

운영계 데이터베이스의 파라미터 그룹을 수정하시는 거라면 재부팅 여부를 꼭 테스트해보시고 수정하시는 것을 권고드립니다.

 


 

이렇게 다양하게 활용할 수 있는 파라미터 그룹은 데이터베이스 별로 파라미터 그룹을 생성하여 적용해 줄 수도 있고,

기존 파라미터 그룹을 복사하여 일부만 변경한 채 다른 데이터베이스에 적용하는 등 다양하게 사용될 수 있습니다.

 

여러분들도 이번 기회를 통해 목적과 용도에 맞게 파라미터 그룹을 사용해 보시기 바랍니다!

 

다음 시간에는 오늘 배웠던 파라미터 그룹 수정과 관련된 데이터베이스 복제본 생성 방법에 대해 준비해오겠습니다!

 

그럼 또 만나요 

베빠~!

 

 

 

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

AWS 보안그룹 추적하기  (0) 2023.08.29
[AWS] 타 리전에 RDS Read Replica 생성  (0) 2023.08.28
[AWS] AWS Autoscaling Refresh  (0) 2023.08.21
[AWS] EIP 복원  (0) 2023.08.21
[AWS] ALB에 EIP를 부여하는 방법  (0) 2023.08.18

댓글