Services/AWS

[AWS] RDS DB 인스턴스 시간대 변경

built 2024. 10. 14. 21:18

프로젝트를 진행하면서 현재 시간에 따라 상태를 표시하는 API를 작성했는데 로컬 환경에서는 정상적으로 동작하던 데이터가 EC2 서버에서는 올바르게 표시되지 않는 문제를 마주했다.

원인은 RDS 데이터베이스의 시간대가 기본적으로 UTC로 설정되어 있어 발생한 오류였다. RDS의 시간대를 서울로 변경해보자.

 

 

 

1. 현재 데이터베이스 시간대 확인

MySQL에서 현재 설정된 시간을 확인한다.

 

현재 날짜와 시간을 반환하는 MySQL 명령어

SELECT NOW();

 

 

MySQL 서버의 시간대 설정을 확인하는 명령어

SELECT @@global.time_zone, @@session.time_zone;

//output: UTC

 

 

현재 시간과 9시간 차이가 나고 UTC로 설정되어 있다.

 

🔎 UTC(Coordinated Universal Time)

UTC는 협정 세계시의 약자로 세계의 표준 시간대를 나타낸다. 모든 국가와 시스템에서 공통으로 사용하는 시간 기준이며 각국은 UTC를 기준으로 자신들의 표준 시간대를 설정한다. UTC 기준으로 시간대로 설정하면 글로벌 시스템에서 시간 충돌을 피할 수 있다. 지역적으로 맞는 시간대로 변경해야 올바른 데이터 처리가 가능하다.

 

 

필자는 DBeaver와 연결하여 DB에 접속하고 있다. RDS 설정과 DBeaver 연결은 이전글을 참고바란다.

2024.06.26 - [Services/AWS] - [AWS] Amazon RDS 데이터베이스 생성하기

2024.10.09 - [Services/Tool] - [DBeaver] DBeaver에 AWS RDS 연결하기

 

 

 

2. 파라미터 그룹 생성

AWS RDS는 기본적으로 사용자 정의 파라미터 그룹을 사용하지 않기 때문에 직접 새 파라미터 그룹을 만들어야 한다.

RDS 페이지로 이동하여 파라미터 그룹 생성 버튼을 클릭한다.

 

 

 

3. 파라미터 그룹 설정

파라미터 그룹을 생성할 때는 DB 엔진 유형과 버전을 선택한다.
사용 중인 RDS 인스턴스에 맞게 설정한 후 파라미터 그룹 이름과 설명을 입력한다.

 

 

 

4. 파라미터 그룹 편집

파라미터 그룹이 생성되면 해당 그룹을 선택하여 편집 페이지로 이동한다.

여기에서 다양한 파라미터를 수정할 수 있는데 우리는 시간대를 변경해야 하므로 time_zone 파라미터를 검색하여 찾는다.

 

 

 

5. time_zone 값 수정

time_zone 항목의 값을 Asia/Seoul로 변경한다.

 

 

 

6. time_zone 변경 사항 확인

파라미터 그룹이 수정되었는지 확인하기 위해 저장한 변경 사항이 제대로 반영되었는지 확인한다.

 

 

 

7. RDS 데이터베이스 수정

이제 RDS 인스턴스에서 새로 만든 파라미터 그룹을 적용한다. RDS 인스턴스를 선택하고 수정 버튼을 클릭한다.

 

 

 

8. 추가 구성 적용

추가 구성에서 DB 파라미터 그룹을 방금 생성한 파라미터 그룹으로 변경한다. 설정 후 즉시 적용 옵션을 선택한다.

 

 

 

9. 데이터베이스 재부팅

파라미터 그룹 변경 사항이 적용하기 위해 RDS 인스턴스를 재부팅한다. 작업 메뉴에서 재부팅을 선택한다.

 

 

재부팅이 완료되면 인스턴스 상태가 사용 가능으로 바뀐다. 이제 RDS 인스턴스가 정상적으로 작동하는지 확인할 수 있다.

 

 

 

10. 시간대 변경 확인

NOW() 함수로 현재 시간이 표시되는지, 출력 결과가 Asia/Seoul로 변경되었는지 확인한다.

SELECT NOW();

 

 

SELECT @@global.time_zone, @@session.time_zone;

 

성공적으로 서울 시간대로 설정되었다!

 

 

 

 

 

참고 자료

https://ttmcr.tistory.com/entry/AWS-RDS-MySQL-%EC%8B%9C%EA%B0%84-%EB%B3%80%EA%B2%BD-202402-update

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.LocalTimeZone.html