본문 바로가기
IT이야기/AWS

[AWS Redis] SpringBoot + Redis 설정 및 생성, EC2(AmazonLinux) 설정까지

by JI_NOH 2024. 2. 13.

이번 프로젝트에서 실시간 통신 및 실시간 매칭 서비스를 이용하기 위해 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