2023. 4. 7. 02:31ㆍAWS
오늘은 서버 실행할 때 서버 시간대와 DB시간대가 다른 것으로 확인되었다.

146번, 147번, 148번 id는 거의 같은 시간대에 실행되어 DB에 저장된 시간이다.
거의 9시간 차이로 저장된 것으로 보이죠.
146번과 147번 id는 시간대를 바꾸기 전이고, 148번 id는 시간대를 바꾼후 시간대이다.
이런 시간대차이가 있을 때 아래 몇가지 원인중 하나일 수 있다.
EC2 인스턴스의 현재 시간이 본인이 현재 위치하고 있는 도시의 시간대가 아닐 수 있다.
보통 EC2인스턴스의 시간은 기본적으로 UTC 시간대로 설정되어 있다.
하지만 EC2 인스턴스의 시간대는 인스턴스 생성 시에 선택할 수 있다.
하지만 이미 생성된 인스턴스를 삭제하고 다시 생성하는 것도 너~~무도 귀찮죠><
그래서 아래 4가지 절차로 간단하게 EC2 인스턴스의 시간대를 바꿀 수 있다.
step1. EC2 인스턴스에 SSH로 접속한다. 작성자는 Ubuntu 운영체제를 사용하여 아래와 같이 git bash에서 접속한다.
ssh -i <키패어 위치하고 있는 로컬주소> ubuntu@<ip주소>
step2. /etc/localtime 파일을 삭제한다. (git bash에 입력)
sudo rm /etc/localtime
step3. 서울 시간대의 심볼릭 링크를 생성한다. (git bash에 입력)
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
step4. 인스턴스의 시간이 서울 시간대로 변경되었는지 확인한다. (git bash에 입력)
date
위 4가지 절차를 모두 실행하였지만 db에 저장된 시간은 현재시간이 아니다.
그럼 서버 시간대를 확인하고 변경해보자해보자. (git bash에 입력)
sudo dpkg-reconfigure tzdata
위 명령어를 실행하면 시간대 설정 화면이 나타난다.
이 화면에서 지역을 선택하면 서버의 시간대가 변경된다.
변경 후 확인해보면 아래와 같이 코드가 나올 수 있다.
Current default time zone: 'Asia/Seoul'
Local time is now: Fri Apr 7 01:50:39 KST 2023.
Universal Time is now: Thu Apr 6 16:50:39 UTC 2023.
뭔가 이상하지 않아요?
분명 모두 한국 시간대(KTS) 기준으로 설정했지만 왜 Universal Time (UTC) 기준인 시간대가 확인되는거지?????????

아무튼 지금 작성자가 필요한 시간대 기준은 아님.
계속해서 서버 머신의 시간대 설정을 변경해보자.
작성자는 Ubuntu 운영체제를 사용하기때문에 아래와 같이 git bash입력
sudo timedatectl set-timezone Asia/Seoul
이 명령어를 실행하면, 서버 머신의 시간대가 'Asia/Seoul'로 설정된다.
설정 변경 후에는, 서버를 재부팅하거나, 아래와 같이 명령어를 실행하여 변경된 시간대가 적용될 수 있다.
sudo systemctl restart systemd-timesyncd.service
작성자는 서버 재부팅하는 방법을 사용하였다.
재부팅후 다시 서버 실행하였더니 작성자가 원하는 현재 시간대로 db에 저장되었다.

'AWS' 카테고리의 다른 글
| 가비아 도메인 구매 + ec2 연결 + https 연결 (1) | 2023.04.08 |
|---|---|
| EC2 인스턴스 생성 + 보안그룹 설정 + 서버배포(Windows용 완료) (1) | 2023.04.07 |