이번 프로젝트에서 실시간 통신 및 실시간 매칭 서비스를 이용하기 위해 Redis를 처음 사용해보게 되었다.
SpringBoot 설정부터 EC2연동까지 우선 작업을 진행했고 설정은 쉬울 줄 알았는데 생각보다는 오래 걸렸다.
목차
0. SpringBoot Redis 설정
build.gradle 설정
// Redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
application.yml 설정
spring:
redis:
host: #AWS Redis 엔드포인트
port: 6379
위처럼 Spring에서 기본 설정 후 AWS에서 Redis 생성을 해보도록 하자.
순서는 생성부터 진행해도 상관없다.
1. Redis 캐시 생성
1-1. ElasticCache로 들어간다.
1-2. 클러스터 생성 - Redis캐시 로 들어간다.
1-3. 클러스터 설정을 한다.
프리티어를 쓸 계획이라면 위와 같은 설정으로 따라하면 된다.
해당 설정 부분도 마찬가지다.
포트는 자유긴 하나 기본 포트는 6379로 제공되긴 한다.
프리티어의 경우는 노드유형을 cache.t2.micro , 복제본 개수 0으로 설정하자.
이미 사용/설정 해둔 EC2가 있다면 기존 서브넷 그룹이 활성화가 되며, 해당 서브넷 그룹이 자동 셋팅이 될 것이다.
없다면 새 서브넷 그룹을 생성해야 하는데 이는 차후 EC2, RDS등을 추가로 사용할거라면 동일 서브넷을 써야하니 기억해두자.
여기까지 설정을 끝내고 다음으로 넘어가자.
1-4. EC2 보안그룹 추가
보안그룹을 설정해야하는데 이는 선행학습으로 필요하긴 하나, 상단에 기재하면 필요성을 못느끼는 사람들이 많아 (나였다)
중간에 끼워뒀다. AWS EC2를 새 창으로 열어서 보안그룹을 추가하자.
이름 부분은 딱히 설명하지 않고 EC2에서 Redis 포트로 접근할 수 있도록 인바운드 규칙을 추가한다고 생각하면 된다.
생성 후 보안그룹을 보면 기존에 만든 보안그룹들과 함께 잘 생성됐음을 확인할 수 있다.
1-5. Redis 보안 설정
돌아와서 보안그룹 관리 리스트에 새로고침을 해보면 아까 작업한 보안그룹이 늘어남을 볼 수 있다.
해당 그룹을 추가해주고 기타 옵션들은 손댈 것 없이 생성해주면 끝.
2. EC2-Redis 설치 및 서버 시작
2-1. EC2에 Redis설치
# linux update 및 gcc make 설치
sudo yum update -y
sudo yum install gcc make -y
# redis 설치 및 컴파일
wget http://download.redis.io/releases/redis-6.2.5.tar.gz
tar xzf redis-6.2.5.tar.gz
cd redis-6.2.5
make
2-2. Redis설정에 필요한 디렉토리 생성 및 설정파일 복사
# 디렉토리 생성
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/
2-3. Redis 설정파일 수정
sudo vi /etc/redis/redis.conf
총 4가지 설정을 수정해야하는데 결과만 묶어서 얘기하면 순차적으로
#어느 IP와 연결해서 쓸 것 인지
bind 0.0.0.0
# Redis를 백그라운드로 실행할 것 인지
daemonize yes
# 로그파일은 어디에 드랍할 것 인지
logfile /var/log/redis_6379.log
# working 디렉토리는 어디로 설정한 것 인지
dir /var/lib/redis
스크롤은 생각보다 많이 내려야 한다.
2-4. Redis 서버 초기화 및 백그라운드 설정
# 스크립트 다운
sudo wget https://raw.github.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
2-5. Redis Auto-Enable 설정
sudo chkconfig --add redis-server
sudo chkconfig --level 345 redis-server on
2-6. 백그라운드 Redis실행
sudo service redis-server start
사실 해당 작업을 하면서 에러가 자꾸 나서 계속 지우고 다시 깔고 다시 설정하고를 여러번 반복했는데
별거 아닌 에러라면 문구대로 잘 따라하자.
일단 해당 에러가 시키는 대로 명령어는 다 실행 해 보았다.
sudo systemctl daemon-reload
# reload후 재시작
sudo systemctl restart redis-server.service
이렇게 하고나니 Redis가 백그라운드로 정상 동작을 했다.
위 처럼 Starting redis-server (via systemctl):
라는 줄이 뜨고 아무 동작하지 않는 것 처럼 보이지만
Command+C를 눌러 나간 후 레디스 관련 프로세스가 돌아가는지 확인해보면 정상으로 돌아가고 있음을 확인할 수 있다.
참고 : https://velog.io/@ssoop/AWS-EC2%EC%97%90-Redis-%EC%84%A4%EC%B9%98
'IT이야기 > AWS' 카테고리의 다른 글
AWS EC2서버에 SWAP 적용하기 (Linux) (0) | 2024.10.30 |
---|---|
[AWS] S3 StatusCode 301에러 해결 (0) | 2024.10.22 |
[GitActions] AWS EC2로 자동 배포하기 (feat Linux) / GITAction + EC2 + CodeDeploy등을 이용한 CD (0) | 2024.01.18 |
AWS EC2 mysql설치 및 RDS 연동 그리고 배포 (MAC) (0) | 2024.01.17 |
AWS EC2인스턴스생성부터 EC2 연결까지(MAC/AmazonLinux2023) (0) | 2024.01.17 |