문제상황

배포시 timezone이 변경되어 로컬과 시간이 일치하지 않는 문제 발생. (30~1시간 후 안정되면 타임존이 동기화되어 로컬시간과 일치하였으나 이는 근본적인 문제가 해결되지 않은상태)

 

 

1. 기존 세팅

: 타임존 설정 세팅

 

   1-1) 00-set-timezone.config

commands:
  set_time_zone:
    command: ln -f -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

 

  1-2) EventcafecloudApplication

public class EventcafecloudApplication {

    // timezone 설정
    @PostConstruct
    public void started() {
        TimeZone.setDefault(TimeZone.getTimeZone("Asia/Seoul"));
    }
    public static void main(String[] args) {
        SpringApplication.run(EventcafecloudApplication.class, args);
    }

}

 

  1-3) RDS

파라미터 그룹 time_zone 설정 : Asia/Seoul

 

 

위 세 가지 설정 값에 변화를 주며 timezone을 맞추려고 테스트하였으나 배포 시 시간이 9시간 밀리는 현상은 수정되지 않음 -> 배포 시 프로그램과 RDS 간의 동기화에 30분~1시간이 소요된 후 timezone이 다시 일치함. 

-> 외부 요소(aws)가 아닌 직접적인 설정값 변경이 필요하다고 판단하여 다른 해결방법을 서칭함.

 

해결 방법

application.yml

spring: 
	jpa:
  	properties:
    	hibernate:
      	jdbc:
        	time_zone: Asia/Seoul

yml의 jdbc 타임존을 설정해주는 방법을 찾게되어 위 코드를 추가해주니 배포 시에도 타임존이 밀리지 않고 정상 작동함을 확인! 이 타임존 해결하는데만 3~4일 애먹었다..ㅠㅠㅠ 

 

 

배포 후 동기화되면 타임존이 정상으로 돌아오니 그냥 눈가리고 아웅 해볼까 하는 고민도 해봤지만 배포 시 타임존이 변경되는 것은 중대한 문제라고 판단하여 포기하지 않고 해결방법을 찾아보았고 해결하게 되어 뿌듯하다!

 

 

========================================================================================

+ 추가

RDS의 Timezone 세팅을 지우고 테스트 해봄 -> timezone에 영향 없음. : RDS 세팅 디폴트로 되돌리기로 결정

 

 

결론.

1-1) 00-set-timezone.config

1-2) EventcafecloudApplication

1-3) RDS 설정 제거

+ 해결 방법 application.yml

 

3가지 설정으로 timezone 문제 해결!

+ Recent posts