ec2에 Redis 설치 및 적용하기

yeezze·2022년 9월 1일
1

두번째 프로젝트에서 JWT와 관련한 개발을 진행하면서 기존에는 DB user 테이블 내에 refreshToken 컬럼을 만들어서 토큰값을 저장했다.
본격적으로 개발하기 전에 토큰을 어디에 저장해야할 것인지에 대해 고민이 많았는데 일단 정해진 마감 기간 내에 완성부터 하기 위해서 DB 안에 저장하는 방법으로 먼저 개발을 진행했다.

유저 DB 내부에 토큰값을 저장한다는게 거슬려서 언젠간 바꿔야지 생각하던 중..
어느정도 전체적으로 개발도 진행됐고 시간도 좀 생겨서 refresh 토큰 값 저장 경로를 DB에서 Redis로 변경하는 작업을 했다.

적용한 내용을 나중에 보기 편하게 정리하려함!

Redis 설치와 셋팅

redis 포트번호는 6379이다. 먼저 ec2 보안그룹에 가서 해당 포트를 열어준다.

설치
sudo apt-get install redis-server

작동 여부 확인 명령어
redis-cli ping

디렉토리 생성 및 설정 파일 복사

sudo mkdir /etc/redis
sudo mkdir /var/lib/redis
sudo cp src/redis-server src/redis-cli /usr/local/bin
sudo cp redis.conf /etc/redis

config 파일을 열어서 설정을 변경해준다.
sudo vi /etc/redis/redis.conf

bind 0.0.0.0
daemonize yes // default == no
logfile /var/log/redis_6379.log
dir /var/redis/6379



Redis 서버 초기화 스크립트

자동 실행을 위한 스크립트를 다운받는다.

sudo wget https://raw.githubusercontent.com/saxenap/install-redis-amazon-linux-centos/master/redis-server

sudo mv redis-server /etc/init.d
sudo chmod 755 /etc/init.d/redis-server

redis server의 자동 실행을 위해 chkconfig 명령어 사용
서버를 재시작하여도 Redis server 또한 재시작됨

sudo chkconfig --add redis-server
sudo chkconfig --level 345 redis-server on
sudo service reids-server start

Redis 암호 설정

암호 설정하다가 에러가 나서.. 일단 미적용 상태임.. 나중에 다시 적용해볼거임...
(참고 : https://dejavuqa.tistory.com/154, https://민호.닷컴/96)

서버 재실행
sudo service redis-server start

Redis 원격 접속

redis-cli -h [EC2 인스턴스의 IP or DNS] -p 6379 -a [redis.conf에 설정한 비밀번호]

Spring 설정

Gradle에 의존관계 설정하고 application.properties 파일에 redis 관련 설정을 추가해줘야한다.
그리고 RedisConfig 클래스를 생성해야함

properties 파일을 라이브러리마다 별도로 나눠놨더니
ReidsConfig 파일에 @PropertySource("") 부분이 적용이 잘 안되서 애를 먹었다.

"classpath:application-redis.properties" 이렇게 적용시킴

참고

https://mygumi.tistory.com/133
https://ozofweird.tistory.com/entry/AWS-EC2-인스턴스-Redis-설치-및-사용
https://wookgu.tistory.com/26

profile
백엔드 개발자 😊

0개의 댓글