Having

서버 재부팅시, redis-server inactive(dead) 상태인 문제 해결 본문

gift-card-flea-market

서버 재부팅시, redis-server inactive(dead) 상태인 문제 해결

GHM 2023. 6. 28. 15:12
  • 문제 발생 과정
  • 해결 방법 1 (수동)
  • 해결 방법 2 (자동 - 권장)

 

문제 발생 과정

프로젝트의 회원가입 중 sms 인증은 필수입니다. 네이버 클라우드 플랫폼의 API를 호출해서 입력한 휴대폰 번호로 sms 인증번호가 발송되고, 해당 인증번호는 인증 로직에 필요하기에 Redis 서버에 3분간 저장됩니다. 

 

NCP 서버를 사용하면 비용이 들기 때문에, 프로젝트 진행 중이 아니면 모든 서버를 '정지 상태'로 꺼둡니다. Redis 서버가 설치된 Ubuntu 원격 서버를 재부팅하면 아래와 같이 Redis 서버 상태가 항상 'inactive (dead)'입니다.

inactive (dead)

 

Redis가 inactive 상태이므로,

애플리케이션 구동 후 sms 인증 요청 보내면, 당연히 Connection 실패

ConnectException
Unable to connect to Redis

 

해결 방법 1 (수동)

PuTTY 원격 접속 프로그램으로 접속해 수동으로 아래와 같이 'sudo service redis-server restart'  명령어를 입력합니다.

Redis 서버를 재시작하고 'sudo systemctl status redis-server'  명령어로 서버 상태를 확인해보면,

'active (running)' 으로 변경되었습니다. 

 

active (running)

하지만, 이렇게 원격 서버 재부팅시마다 매번 수동으로 명령어를 사용하는 것은 매우 비효율적 !

 

해결 방법 2 (자동 - 권장)

원격 서버 재부팅시, Redis가 자동으로 실행 (active) 될 수 있도록 설정하기 !

 

'sudo systemctl enable redis-server'

 

해당 명령어를 command line에 입력 후, 원격 서버 재부팅하면 Redis 서버는 항상 'active (running)'인 것을 확인할 수 있습니다.

 

 

 

 

참고 : 

https://webinoly.com/support/586/redis-not-automatically-starting-on-boot