- springboot
- string
- hibernate
- mysql
- Django
- join
- 1차원 배열
- DI
- @transactional
- ORM
- SSL
- Docker
- spring security 6
- 스프링부트
- nginx
- 자바
- 스프링
- 문자열
- spring
- 프로그래머스
- spring mvc
- AWS
- java
- select
- spring boot
- static
- jpa
- PYTHON
- sql
- 데이터베이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
개발하는 자몽
[AWS RDS] MySQL 파라미터 그룹 생성과 설정 - timezone, encoding 본문
[AWS RDS] MySQL 파라미터 그룹 생성과 설정 - timezone, encoding
jaamong 2025. 1. 31. 09:14RDS MySQL를 사용하는 프로젝트에서 시간대가 맞지 않음을 알게 되었다. 타임존 설정을 까먹은 것...!
해당 DB 인스턴스의 설정을 바꾸는 일이므로 DB 파라미터 그룹을 새로 생성하여 수정하기로 했다.
DB 파라미터 그룹
DB 파라미터 그룹은 하나 이상의 DB 인스턴스에 적용되는 구성 값의 모음이다. DB 파라미터 그룹을 지정하지 않고 DB 인스턴스를 만드는 경우 DB 인스턴스에서는 기본 DB 파라미터 그룹을 사용한다.
기본 DB 파라미터 그룹 설정은 수정할 수 없으므로 새 파라미터 그룹을 생성해야 한다. 그리고 원하는 파라미터 설정을 변경하고, DB 인스턴스나 DB 클러스터를 수정하여 새로 생성한 파라미터 그룹을 연결하면 된다.
AWS 콘솔로 들어가서 파라미터 그룹을 생성하자.
설정하기
파라미터 그룹 생성하기
RDS 서비스의 오른쪽 메뉴탭에서 파라미터 그룹을 클릭한다.
클릭하면 아래와 같은 화면으로 이동한다. 여기에서 파라미터 그룹 생성을 클릭한다.
클릭하면 아래와 같이 파라미터 그룹 생성 화면이 나온다.
파라미터 그룹 이름, 설명을 입력하자. 파라미터 그룹 패밀리는 엔진 유형을 선택하면 입력이 활성화된다. 네 개 옵션을 모두 선택하고 나면 아래 화면처럼 유형 옵션이 나타난다.
DB 파라미터 그룹 유형을 선택하는 것인데, 파라미터 그룹을 적용할 DB 유형에 맞춰서 선택하면 된다.
- DB Cluster parameter group: 클러스터에 포함된 모든 인스턴스에 적용됨 → 클러스터수준
- DB parameter group: 개별 인스턴스에 적용 → 인스턴스 수준
다 설정하고 나면 생성 버튼을 클릭한다. 아래 화면에서 생성한 파라미터 그룹을 확인할 수 있다.
Timezone 설정하기
생성한 파라미터 그룹의 이름을 클릭하면 파라미터 설정을 변경할 수 있는 화면으로 이동한다. 편집을 클릭한다.
편집을 클릭하면 수정 상태로 바뀐다. 검색창에서 `time_zone`을 입력하고, `값`을 `Asia/Seoul`로 입력한다. 그리고 변경 사항 저장을 클릭한다.
Encoding 설정하기 (한글 사용 기준)
이번에는 character set을 설정한다. 다시 편집을 클릭하고 검색창에서 `character_set`를 입력한다. 검색하여 나온 모든 항목의 값을 `utf8mb4`로 설정한다(이모지 입력이 필요 없다면 utf8로도 괜찮다). 설정 후 변경 사항 저장을 클릭한다.
이번에는 collation을 설정한다. `character set`이 글자 자체에 대한 모양과 인코딩에 대해 정의한다면, `collation`은 정해져 있는 인코딩을 기반으로 글자끼리 어떻게 비교할지 정의한 규칙이다.
동일한 문자에 대해 어떻게 비교할지, 정렬을 어떻게 할지, 문자열 함수의 결과는 어떻게 달라지는지, 검색 시 어떤 결과를 줄지 등 규칙이 다르게 정의되어 있다.
편집을 클릭하고, 검색창에서 `collation`을 입력한다. 결과로 나온 항목인 `collation_connection`, `collation_server`의 값을 `utf8mb4_general_ci`로 변경한다.
utf8mb4 charset 기준으로 선택할 수 있는 collation은 아래 화면에서 볼 수 있다시피 꽤나 다양한데, `general_ci`로 선택한 이유가 있다.
collation은 검색 및 정렬뿐만 아니라 유니크 인덱스와 같은 다른 부분에서도 사용되는데 이때 한글 데이터가 있는 경우 주의해야 한다. 한글을 포함한 동아시아 언어 등을 서비스한다면 정확한 검색 처리를 위해 `utf8mb4_general_ci`로 설정해야 한다. 예시로 MySQL의 default collation인 `0900_ai_ci`는 한글의 자음과 모음, 일본어의 가타카나와 히라가나를 같은 문자열로 인식하여 처리한다. 따라서 한글 데이터 등을 처리한다면 꼭 `general_ci`로 설정하자.
이제 변경 사항을 저장하고, RDS 데이터베이스 화면으로 이동한다.
DB 인스턴스와 파라미터 그룹 연결하기
수정하고자 하는 DB 인스턴스를 선택하고 수정을 클릭한다.
추가 구성 > 데이터베이스 옵션에 DB 파라미터 그룹을 설정하는 부분이 있다. 방금 생성한 파라미터 그룹을 선택한다.
계속을 클릭하고, 아래 화면의 수정 예약에서 원하는 옵션 클릭, DB 인스턴스 수정을 클릭하면 끝이다.
🔖참고
- https://blog.naver.com/sory1008/223071678680
- https://rastalion.dev/mysql-8-0-1-%EB%B2%84%EC%A0%84%EB%B6%80%ED%84%B0-%EC%B1%84%ED%83%9D%EB%90%9C-utf8mb4_0900_ai_ci%EC%9D%98-%ED%95%9C%EA%B8%80-%EC%82%AC%EC%9A%A9%EC%97%90-%EB%8C%80%ED%95%9C-%EB%AC%B8%EC%A0%9C%EC%A0%90/
- https://blog.bespinglobal.com/post/db-cluster-parameter-group-%EA%B3%BC-db-instance-parameter-group-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EB%B0%8F-%ED%99%9C%EC%9A%A9/
'Architecture & Tool > AWS' 카테고리의 다른 글
[AWS & Docker] Docker 컨테이너 로그를 AWS CloudWatch로 보내기 (1) | 2025.01.04 |
---|---|
잊기 전에 남겨두는 Amazon API Gateway 사용 이유 (0) | 2024.11.30 |
[TIL] ACM(ELB)와 NGINX (0) | 2024.04.07 |
[AWS] ACM을 이용한 HTTPS 적용 (0) | 2024.04.05 |
[AWS] ELB 생성 (0) | 2024.04.05 |