트러블슈팅

SpringBoot - EC2 내부 Redis 외부접속 허용 및 비밀번호 설정 문제

chillmyh 2024. 6. 4. 03:28

이 글은 전 글에서 redis 보호모드 해제 이후 상황을 기록한다.

 

1. 비밀번호 설정

ubuntu에서

sudo vi /etc/redis/redis.conf

명령어로 레디스 설정에서 비밀번호를 설정해줘야한다.

 

명령모드에서 /requirepass를 치고 엔터를 누르면 ctrl+f와 같은 기능을 하며 requirepass 단어를 찾는다.

n을 누르면 아래 다음단어, N을 누르면 위 이전 단어.

 

#requirepass foodbred 부분에서 주석을 제거하고 foodbred부분에 원하는 비밀번호 입력

esc - :wq

 

 

2. application.yml

spring:
  data:
    redis:
      host: {ec2 ip}
      port: 6379
      password: {redis 설정 비밀번호}
    cache:
      type: redis

 

 

3. RedisConfig

@Configuration
public class RedisConfig {
    @Value("${spring.data.redis.host}")
    private String host;

    @Value("${spring.data.redis.port}")
    private int port;

    @Value("${spring.data.redis.password}")
    private String password;

    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(host, port);
        lettuceConnectionFactory.setPassword(password);
        return lettuceConnectionFactory;
    }

 

추가해야할 부분은 private String password에 value 어노테이션 달아서 함께 추가해주는것과,

redisConnectionFactory 메서드 내에 setPassword(password)를 설정해줘야 SpringBoot가 ec2로 배포되면서 redis에 비밀번호로 접근할 수 있게된다.

 

드디어 약 6시간동안의 삽질 해결

이전 프로젝트에서는 이거 해결못해서 엘라스틱캐시썻었는데..

구글링해도 정보도 잘 안나오고해서 찾기 정말 어려웠다.

 

무지하면 돈아끼기 어렵다..