• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

배포 후 문제 질문 드립니다 ㅠㅠ (pm2 kill 했는데도 사이트가 계속 동작하는 문제 & 타임존 문제)

20.05.18 16:55 작성 조회수 523

0

안녕하세요! 배포 후에 문제점이 생겨 질문 드립니다.

(이 문제 해결 되었습니다!! 추가 질문을 덧글로 적어두었어요 확인해주시면 감사하겠습니다 ㅠㅠ)

백엔드 라우터에 시간을 기준으로 데이터를 가져오는 작업이 있는데, ec2가 미국시간을 기준으로 데이터를 가져오는것 같아 timezone을 바꾸기 위해 다음의 작업을 수행한 뒤(https://ora-sysdba.tistory.com/entry/Cloud-Computing-Amazon-EC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%9D%98-TIMEZONE-%EB%B3%80%EA%B2%BD) 시스템을 재부팅하기 위해 진행중인 pm2를 종료하고 sudo reboot를 치고 다시 들어왔습니다.

백엔드 monit 결과를 보고자 켜보니까 이런 화면이 뜨네요...

뭔가 이상하다 싶어서 프론트와 백엔드 모두 pm2 kill을 눌러 진행중이던 pm2를 종료했는데도

사이트가 계속 돌아가고 있습니다 ㅠㅠ

pm2 list로 확인해보아도 아무것도 뜨지 않아요

이럴 수가 있나요.....??? ㅠㅠ 프론트와 백엔드 둘다 제대로 들어가고 있는데 왜 돌아가는건지... 위의 경고는 서버가 이미 돌아가서 나는 경고인지 모르겠는데 어떤 식으로 상태를 파악하고 어떻게 고쳐야할지 감이 안잡히네요 도움 주시면 감사하겠습니다 ㅠㅠ

답변 3

·

답변을 작성해보세요.

1

08:10:47 +0000 이라고 나오는데 여기서 +0000이므로 9시간 전인 게 맞습니다. 한국시간은 9시간 더해져 +0900으로 나옵니다.

moment.locale('ko')는 한국어로 바꾸는 기능이고 시간을 9시간 더하려면 moment timezone을 사용하셔야 합니다.

0

앗 그렇군요 감사합니다 moment timezone 참고하여 진행하겠습니다!

0

위의 문제는 aws에서 인스턴스를 종료한 후 다시 시작해보니 제대로 동작하네요!!! 다른 질문 한가지만 더 드리겠습니다 ㅠㅠ

오늘 날짜의 투두리스트만 불러오는 기능이 있는데, 로컬 서버에서는 제대로 동작하는데 ec2로 배포한 환경에서는 미국과 한국의 시간차이때문인지 9시간 차이가 나 제대로 동작하지 않고 9시가 되어서야 하루가 바뀐 것으로 처리됩니다.

moment.locale('ko')를 상단에 적어주었는데도 moment의 오늘 날짜 처리가 미국시간 기준으로 처리되네요

(해당 코드 back/routes/todos)

moment.locale('ko');
router.get("/", async(req, res, next) => {
// 나의 그날의 투두리스트 불러오기
try {
console.log('back moment check:', moment());
let today = moment().format('YYYY-MM-DD');
const todos = await db.Todo.findAll({
where: {
userId: req.user.id,
createdAt: {
[sequelize.Op.gte]:today+' 00:00:00',
[sequelize.Op.lte]:today+' 23:59:59'
}
},
order: [['createdAt', 'ASC']]
});
return res.json(todos);
} catch (e) {
console.error(e);
return next(e);
}
});

일단 위에 적힌 링크대로 ec2의 날짜 설정을 변경해주었는데, pm2 monit으로 백엔드 상태를 보니까 계속 9시간 전으로 기록되네요 ㅠㅠ

이런 상황일때는 moment()로 구한 현재 시간에 9시간을 더해주는 방법밖에 없을까요? 로컬 서버에선 제대로 동작이 되기 때문에 배포 전 테스트에서 불편할듯 하여 되도록 이런 방법으로는 하고싶지 않은데 다른 방법은 없는지 질문드립니다 ㅠㅠ