ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • EC2에 Redis 설치후 연동하기
    취준/Project 2024. 6. 8. 21:36

    로컬에 Redis를 설치했다면 EC2에도 설치해 줄 필요가 있다.

    오늘은 EC2에 Redis를 설치하는 방법을 정리!


    단계

    1. EC2 보안그룹 편집
    2. EC2에 Redis 다운로드
    3. Redis 설정파일 편집
    4. RedisConfigure 코드 수정
    5. 접속 확인

    EC2 보안그룹 편집

    • EC2 보안그룹에 들어가 TCP 프로토콜로 Redis 기본포트인 6379를 열어준다.

    EC2에서 Redis 다운로드

    sudo apt-get update //sudo update
    
    sudo apt-get install redis-server //redis 다운로드
    
    redic-cli ping // PONG이라고 응답오면 연결 성공
    • 위의 코드를 하나씩 입력하여 Redis를 다운로드 해준다.

    Redis 설정 파일 편집

     

    sudo vi /etc/redis/redis.conf
    • 위의 명령어를 통해 redis 설정파일을 편집기 모드로 작성한다.
    • 수정할 때는 i를 입력하여 수정하고 수정이 완료되면 ESC를 누르고 :wq를 입력하여 저장하여 준다.
    • /bind와 같이 입력하면 bind가 작성되어 있는 부분을 검색할 수 있다.

     

    IP 주소 변경

    • 외부접속을 허용하기 위해 IP 주소를 수정한다
    • bind 부분에 주석처리 된 것을 지우고 사진과 같이 0.0.0.0 ::1로 수정하여 준다

     

    Redis 접속 비밀번호 변경

    • Redis에 접속할 비밀번호를 설정해 준다.
    • 추후에 properties 파일에도 작성해줘야 하니까 잘 기억해 둘 필요가 있다.
    • 마찬가지로 주석을 지우고 requirepass 1234와 같이 비밀번호를 입력한다.

     

    메모리 저장 용량 설정

    • redis의 저장 용량을 설정한다.
    • 500mb, 1gb, 2gb와 같이 원하는 용량을 설정한다. 나는 500mb로 설정하였다.

     

    메모리가 다찼을 때 교체 알고리즘

    • 메모리가 가득 찼을때 삭제 알고리즘을 작성한다.
    • 가장 대중적인 allkeys-lru 알고리즘을 이용하여 가장 오랫동안 사용되지 않은 데이터를 삭제하도록 하였다.

     

    Redis 실행

    sudo systemctl start redis-server
    • redis.conf 설정이 완료되면 위의 명령어를 입력하여 redis-server을 백그라운드로 실행한다.

    Properties, Configure code 수정

     

    properties file

    spring.redis.host= {ec2 endpoint}
    spring.redis.port=6379
    spring.redis.password = {redis password}
    • properties 파일을 수정한다.
    • EC2의 인스턴스와 redis.conf에서 작성했던 password를 작성하여 준다.

    RedisConfigure

    @Configuration
    public class RedisConfig {
    
        @Value("${spring.redis.host}")
        private String host;
        @Value("${spring.redis.port}")
        private int port;
    
        @Value("${spring.redis.password}")
        private String password;
    
        @Bean
        public RedisConnectionFactory redisConnectionFactory() {
            RedisStandaloneConfiguration redisConfiguration = new RedisStandaloneConfiguration();
            redisConfiguration.setHostName(host);
            redisConfiguration.setPort(port);
            redisConfiguration.setPassword(password);
            LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(redisConfiguration);
            return lettuceConnectionFactory;
        }
    
    }
    • properties에 작성된 값들을 value로 불러오고 LettuceConnectionFactory를 생성한다.

    연결 확인

    redis-cli -h {EC2 endpoint} -p {redis port} -a {password}

    • 작성된 명령어를 입력하고 AUTH {password}를 입력하여 OK가 뜨면 정상적으로 연결이 된 것을 확인할 수 있다.

    오류 해결 방법 모음

     

    Redis IP 확인

    • Redis의 IP가 정상적으로 변경되었나 확인해 볼 필요가 있다. ps -ef | grep redis 명령어를 입력하여 redis-server의 IP가 0:0:0:0으로 변경되었는지 확인한다.
    • 127.0.0.0으로 되어있다면 kill -9 [포트번호]를 입력하여 redis를 중지시키고 redis 서버를 재부팅한다.

     

    Password 설정 확인

    • 맨 처음에 Password를 설정하지 않고 redis를 다운로드하였는데 Redis연결 예외가 자꾸 발생하여 되지 않았다. 하지만 Password를 설정하니 정상적으로 동작하였고 password를 설정하지 않았으면 설정해 보는 것을 추천한다.

     

    댓글

Designed by Tistory.