AWS RDS 인스턴스 초기 설정

AWS RDS 인스턴스 초기 설정

RDS 인스턴스를 생성했으면, 초기 설정을 해보자.
Maria DB(MySQL) 가 설치된 RDS 를 기준으로 작성되었습니다.


파라미터 그룹 설정

[AWS] RDS 인스턴스 생성하기 - 글의 설정을 기본으로 따르고, DBMS만 Maria DB 로 설정했다고 생각하고 진행합니다.

먼저 RDS 의 파라미터를 수정하기 위해 파라미터 그룹을 생성할 필요가 있습니다.

1

RDS 서비스 콘솔로 들어와서, 왼쪽 메뉴 중 파라미터 설정 을 클릭

2

파라미터 그룹 생성 버튼을 눌러 그룹을 생성할 것입니다.
나는 이미 일련의 과정을 수행했기 때문에 aws-springboot-webservice 라는 파라미터 그룹이 있습니다.

3

세 개의 옵션이 있는데, 파라미터 그룹 패밀리 옵션이 가장 중요하며
반드시 이전에 생성한 RDS 의 DBMS와 같은 버전을 선택해야 합니다.
예를 들어 Maria DB 10.6.xx 버전을 선택했다면, 위 그림과 같이 mariadb 10.6 을 선택하면 됩니다.

그룹 이름, 설명 칸에는 자기 나름의 파라미터 그룹 이름과 설명을 기입하면 됩니다.

다 되었으면 생성 버튼을 클릭

4

이제 생성된 파리미터 그룹 이름을 클릭하면
해당 그룹이 가지고 있는 파라미터 목록을 볼 수 있습니다.

5

파라미터 편집 을 누릅니다.


Time Zone

이제 Time Zone을 수정하기 위해

6

파라미터 검색 칸에 time_zone 을 검색하면 아래에 time_zone 행이 나온다. 해당 행의 값을 Asia/Seoul 로 설정해야 합니다.


Character Set

다음으로 Character Set 을 변경하기 위해
time_zone 을 수정했던 페이지에서 똑같이 검색해서 수정하면 됩니다.
기본적으로 Maria DB 는 한글 데이터 값을 받지 않으므로, 파라미터를 수정하여 한글 데이터도 저장할 수 있도록 합니다.

변경해야하는 항목과 변경 값은 다음과 같습니다.

  • character_set_client - utf8mb4
  • character_set_connection - utf8mb4
  • character_set_database - utf8mb4
  • character_set_filesystem - utf8mb4
  • character_set_results - utf8mb4
  • character_set_server - utf8mb4

  • collation_connection - utf8mb4_general_ci
  • collation_server - utf8mb4_general_ci

character_set 항목들은 utf8mb4,
collation 항목들은 utf8mb4_general_ci 로 바꾸면 됩니다.
utf8utf8mb4 의 차이는 이모지(이모티콘) 저장 가능 여부입니다.
많이들 utf8 이 익숙하겠지만 이왕이면 상위호환인 utf8mb4 로 설정


Max Connection

RDSMax Connection 은 인스턴스 사양에 따라 자동으로 정해집니다.
현재 프리티어는 기본적으로 60 개의 커넥션만 가능해서 좀 더 넉넉한 값으로 수정합니다.

max_connections 를 검색한 뒤 값을 150 으로 설정하고
이후에 RDS 사양을 높이게 된다면 기본값으로 다시 돌려놓으면 됩니다.
RDS 에서 자동으로 커넥션 값을 조정할 것입니다.

7

오른쪽 위 변경 사항 저장 버튼을 눌러 저장


Wait Timeout

만약에 자기 프로젝트 빌드시 too many connections 라는 옵션이 뜰 수 있습니다.

MySQLdb.OperationalError: (1040, 'Too many connections')

이 오류는 현재 프로젝트에서 유지되고 있는 커넥션의 수가 너무 많다는 뜻입니다.
Amazon Aurora MySQL 인스턴스에 연결할 때 [“너무 많은 연결(Too Many Connections)”] 오류가 발생하는 이유는 무엇인가요?

RDS 의 커넥션 연결 수를 늘려서 해결할 수도 있지만, 커넥션의 timeout 대기 시간을 줄이는게 더 효율적입니다.
파라미터 그룹에서 wait_timeout 파라미터의 값을 수정하여
기존에는 28,800 로 8시간으로 지정이 되어있을 텐데, 이 값을 180 , 즉 3분으로 줄입니다.

작은 프로젝트라면 10 까지 낮춰도 되며

MySQLdb.OperationalError: (2006, 'Server has gone away')

만약 위와 같은 오류가 뜬다면, wait_timeout 값을 너무 적게 줬다는 뜻이니 늘이도록 합니다.


파라미터 그룹과 데이터베이스 연결

이제 이렇게 설정한 파라미터 그룹을 데이터베이스와 연결하기 위해

8

메뉴에서 데이터베이스 -> 인스턴스 클릭 -> 수정 버튼 클릭

9

수정 페이지에서 내리면 추가 구성 - 데이터베이스 옵션 항목에서 DB 파라미터 그룹옵션 그룹 이 보입니다.
처음에 DB 파라미터 그룹default 로 설정되어 있을텐데, 이를 방금 만든 파라미터 그룹으로 바꾸어주고
스크롤을 끝까지 내려 계속 버튼을 누릅니다.

10

수정 예약 항목에서 기본으로 설정되어 있는 옵션 대신 즉시 적용 을 선택하고 DB 인스턴스 수정 버튼을 클릭

데이터베이스 상태가 수정 중 에서 사용 가능 으로 바뀌면, 변경 사항 정상 적용을 위해 작업 - 재부팅 으로 재부팅을 하면 성공입니다.

마무리

프로젝트를 진행하다 Character Set 파라미터를 수정하지 않아서 MySQL Workbench 에서 수정하려고 했다가, 세션이 겹치는 문제가 있어
이왕이면 RDS 를 생성하자마자 바로바로 적용해주자.


© 2022. All rights reserved. 신동민의 블로그