사건의 발단은 이렇다. 새벽에 클라이언트 개발자로부터 연락이 왔는데, 그 연락의 내용은 다음과 같았다.
콜트님! 오늘의 문장 기능이 이상해요! 분명 오늘 작성한 문장인데, 조회가 되지 않아요!
'그럴리가 없는데' 라는 마음으로 작성했던 로직을 검수했고, 결과는 아무 이상이 없었다. 분명 잘 되는데, 왜 제대로 동작하지 않는 걸까?
이리저리 찾아보다가, 언뜻 머리를 스친 생각.
'EC2 서버의 시간이 한국시간이 아니었던거 같은데..?'
결론을 먼저 말하자면, EC2 인스턴스의 Timezone(타임존)을 UTC(세계 표준시)에서 KST(한국 표준시)로 변경해줌으로써 해결할 수 있었다.
위 명령어는 시간을 보는 명령어이다. 이때 시간이 다르다면 시간의 싱크가 잘못되었거나 timezone이 다른 경우이다.
간단한 timezone 설정 상태 확인 방법은 cat 혹은 more 로 /etc/timezone의 내용을 확인해보면 된다.
Etc/UTC
로 되어있는 것을 볼 수 있다.
Etc/UTC
를 아래의 명령어를 통해서 변경한다.
명령어를 실행하면 아래와 같은 화면을 볼 수 있다.
Asia
-> Seoul
을 찾아서 선택해주자.
선택을 완료한 후 빠져나오면 아래와 같이 잘 변경되었다는 문구를 확인할 수 있다.
다시 $ date
명령어를 이용하여 확인하면 아래와 같이 변경된 Timezone을 확인할 수 있다.
주의!
Timezone을 변경하였다면 EC2 인스턴스를 재부팅하자. 필자는 Timezone이 변경되었음에도 불구하고 재부팅하기 전까지 시간을 이용하는 로직이 원하는대로 동작하지 않았었다. 아무래도 재부팅을 한 이후부터 변경된 timezone이 적용되는 모양이다.