네이버 클라우드

우분투 도커Docker 레디스Redis 설치 (도커볼륨이용) with 네이버 클라우드

dev.mk 2024. 10. 12. 22:27
반응형

1. 도커에 레디스 이미지 다운

docker pull redis

 

 

2. 다운된 레디스 이미지 확인

docker images

 

 

3. 레디스 볼륨설정

Redis는 in-memory 기반 저장소이기 때문에 Docker Container 내에서 실행 시 해당 컨테이너가 중지되거나 삭제되면 Redis에 저장된 모든 데이터가 손실된다. 이런 문제를 방지하기 위해 도커를 사용할 때 볼륨이라는 개념을 사용해서 컨테이너에 파일 or 디렉토리를 마운트하여 방지한다. 따라서 먼저, Redis 백업용 도커 볼륨을 생성해야한다.

docker volume create (만들 볼륨이름)

 

 

미사용중인 볼륨 보기

docker volume ls -f dangling=true

 

 

만들어진 볼륨의 정보 보기

docker volume inspect (만든 볼륨이름)

 

 

4. 레디스 컨피그 파일 만들기

임의의 경로에 redis.conf 파일을 만든다.

내가 만든 경로는 /home/redis/redis.conf

vi redis.conf

 

컨피그 파일 내용 (Ctrl + C , Ctrl + V 이용)

# 연결 가능한 네트위크(0.0.0.0 = Anywhere)
bind 0.0.0.0

# 연결 포트
port 6379

# Master 노드의 기본 사용자 비밀번호
requirepass redis1234

# 최대 사용 메모리 용량(Default : 시스템 전체 용량)
maxmemory 2gb

# 설정된 최대 사용 메모리 용량을 초과했을때 처리 방식
# - noeviction : 쓰기 동작에 대해 error 반환 (Default)
# - volatile-lru : expire 가 설정된 key 들중에서 LRU algorithm 에 의해서 선택된 key 제거
# - allkeys-lru : 모든 key 들 중 LRU algorithm에 의해서 선택된 key 제거
# - volatile-random : expire 가 설정된 key 들 중 임의의 key 제거
# - allkeys-random : 모든 key 들 중 임의의 key 제거
# - volatile-ttl : expire time(TTL)이 가장 적게 남은 key 제거 (minor TTL)
maxmemory-policy volatile-ttl

# RDB 설정 (주기적 백업)
# 15분 안에 최소 1개 이상의 key가 변경되었을 때
save 900 1
# 5분 안에 최소 10개 이상의 key가 변경되었을 때
save 300 10
# 60초 안에 최소 10000개 이상의 key가 변경되었을 때
save 60 10000

# AOF 설정 (쓰기에 대한 로그 파일 저장)
## AOF 사용 여부
# appendonly yes
# 저장할 AOF 파일명
# appendfilename appendonly.aof
# 디스크와 동기화 처리 방식
# - always : AOF 값을 추가할 때마다 fsync를 호출해서 디스크에 쓰기
# - everysec : 매초마다 fsync를 호출해서 디스크에 쓰기
# - no : OS가 실제 sync를 할 때까지 따로 설정하지 않음
# appendfsync everysec


## Replication 관련 설정
## Slave Redis 설정
#slaveof 127.0.0.1 6380

 

※※ 레디스 해킹을 방지하여 비밀번호 설정을 하는것이 좋다. requirepass를 통해 비밀번호를 설정을 권장한다.

 

 

5. Docker Container로 Redis 실행

docker run \
-d \
--restart=always \
--name=(redis container name) \
-p (host port):(container port) \
-v (redis.conf 생성한 경로)/redis.conf:/etc/redis/redis.conf \
-v (생성한 Docker Volume Mountpoint):/data \
redis:latest redis-server /etc/redis/redis.conf

 

도커 컨테이너를 실행과 동시에 여러 옵션을 함께 넣었기 때문에 내용이 주렁주렁 길다. (오타 조심해야함!)

무슨 옵션인제 긁어서 GPT에 넣으면 친절히 설명해준다.

 

6. 레디스 실행하기

docker exec -i -t (생성한 redis 컨테이너 이름) redis-cli -a 비밀번호
127.0.0.1:6379> AUTH 비밀번호
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

 

 

7. 네이버클라우드 인바운드 포트에 6379 등록

console > Server > ACG > ACG 설정 > Inbound 등록

 

다음 포스트에는 스프링부트에서 레디스 이용하는 포스트를 하겠다~

 

 

 

본문의 참고 https://ksh-coding.tistory.com/129

반응형