MySQL time zone, AWS 콘솔에서 변경 방법

방충림·2023년 6월 7일
4

AWS

목록 보기
8/10
post-thumbnail
post-custom-banner

서론

프로젝트를 하던 중 스케줄러로 설정해놓았던 공지 팝업이 제시간에 나타나지 않아 원인을 분석해보았다.

원인은 바로 DB의 TIMEZONE이 UTC(Universal Time Coordinated)로 설정되어있어, 한국시간으로 동작중인 나의 서버와 9시간의 차이가 났던 것이다. (한국 : UTC + 9)

내가 사용했던 환경은 Paas 환경인 Elastic beanstalk였는데, 그래서인지 구글링을 했을 때 환경설정 파일을 첨부해서 배포하는 방법밖에 나오지 않았다. 나는 콘솔에서 설정할 수 있는 법을 찾고싶었다.

결국은 찾았고 방법은 아래와 같다.

1. 현재 DB 시간 확인


DB의 현재 설정시간은 SELECT @@global.time_zone 명령어로 확인해볼 수 있다. 현재 UTC이다.

2. RDS에서 파라미터 그룹 추가

RDS 항목에 들어가 좌측에서 파라미터 그룹을 선택하고, 파라미터 그룹 생성을 버튼을 클릭한다.
(기존에 있는 default:mysql8.0 는 변경이 불가능하기 때문에 새로 만들어준다.)

DB의 버전을 입력을 선택하고 DB Parameter Group 유형을 선택한 뒤 그룹 이름을 재량껏 작성하고 생성버튼을 누른다.

생성완료 후 목록으로 나와지면, 생성한 파라미터 그룹을 클릭한 뒤 검색창에 zone을 검색하면 time_zone 이 나온다. 파라미터 편집버튼을 누르고 드롭다운 목록에서 Asia/Seoul을 선택한 뒤 저장한다.


3. 데이터 베이스에 적용

여기서 끝이 아니다. 이 파라미터 그룹을 사용할 데이터 베이스에 적용을 해야한다.
좌측 메뉴에서 데이터베이스를 누른 뒤 적용할 데이터베이스를 선택하면 아래 창으로 들어와진다.
구성 메뉴를 보면 DB인스턴스 파라미터 그룹이라는 것이 있는 것을 확인할 수 있다.
이것을 수정해야한다. 우측 상단에 수정버튼을 클릭한다.

스크롤를 내리다보면 추가구성데이터 베이스 옵션항목에서 생성했던 DB파라미터를 고른 후 저장한다.


4. 데이터베이스 재부팅

이후 우측상단의 작업 드롭다운에서 재부팅을 누른다.


잠시뒤 DB파라미터가 적용되고, DB로 돌아가 다시 SELECT @@global.time_zone 을 실행해보면 Asia/Seoul로 바뀐 것을 볼 수이다.



참고 : https://brtech.tistory.com/95

profile
최선이 반복되면 최고가 된다.
post-custom-banner

0개의 댓글