HyunJun 기술 블로그

RDS MySQL 시간 변경하기 (Timezone 변경) 본문

AWS/RDS

RDS MySQL 시간 변경하기 (Timezone 변경)

공부 좋아 2023. 5. 17. 01:15
728x90
반응형

1. Timezone?


타임존이란 동일한 로컬 시간을 따르는 지역을 의미한다.

 

  • 해당 국가에 의해 법적으로 지정되며, 국가별로 각자의 고유한 타임존을 사용한다.
  • 면적이 넓은 나라인 경우 지역별로 다른 타임존을 사용하기도 한다.

2. Timezone의 중요성

개발하고 있는 프로그램과 연동된 Database의 Timezone이 맞지 않을 경우, 스케줄링에 따라 데이터베이스 배치처리를 한다거나 할 때 시간이 다르기 때문에 동작이 안 될 수 있다. 또한 이러한 문제는 EC2(리눅스) <-> 프로그램 간의 시간이 맞지 않을 때에도 많은 문제를 일으킨다. 왜냐하면 개발자의 의도에 따른 프로그래밍은 A라는 시간에 맞추어 놓았는데 B라는 시간을 가지고 사용하거나 비교하기 때문이다.

 

이러한 문제는 기존에 데이터베이스에 시간을 저장해 놓고 해당 시간 데이터들 만을 사용하여 연산한다면 문제가 없지만, 데이터베이스 서버에서의 함수로 시간을 가지고 와서 비교한다던지 할 때 문제가 발생한다.

 

3. RDS 인스턴스 시간 확인하기

DBeaver, MySQL Workbench 등 DB 관리 툴로 RDS MySQL 인스턴스에 접근하여 테이블에서 아래의 NOW() 함수를 사용하면 현재 시간이 출력된다. 현재 이 글을 작성하는 시점의 시간은 00시 50분 정도이다. 하지만 -1일, 15:48로 나오고 있다. 또한 직접적으로 Timezone이 어디인지를 가지고 올 수 있지만 정확하게 하기 위해 타임존을 기반으로 시간을 출력해 주는 NOW() 함수를 사용했다.

4. RDS 인스턴스 시간 변경하기

AWS 웹페이지에 접속하여 RDS로 이동하여 파라미터 그룹 -> 파라미터 그룹 생성을 클릭한다.

default.mysql8.0은 default 파라미터로 수정이 불가

 

 

 

 

 

방금 만든 파라미터 클릭!

 

 

time_zone 검색 -> time_zone 체크 -> 파라미터 편집 클릭

 

Asia/Seoul로 변경 후 변경 사항 저장 클릭

 

시간 변경을 원하는 RDS 인스턴스를 선택 후, 수정을 클릭합니다.

 

스크롤을 내리다 보면 추가 구성의 DB 파라미터 그룹을 조금 전 만든 그룹으로 변경해 줍니다.

 

즉시 적용 클릭 후 DB 인스턴스 수정 클릭

 

 

 

수정 중에서 사용 가능으로 바뀌면 

 

 

 

 

재부팅을 해줘야 적용됩니다.

 

 

 

 

재부팅 후 시간이 정확히 나오네요!

728x90
반응형
Comments