강의

멘토링

커뮤니티

Inflearn Community Q&A

greenjjh0515's profile image
greenjjh0515

asked

Introduction to Docker and Practical Application for Non-Majors

[Hands-on] Deploying Spring Boot, MySQL, and Redis on AWS EC2

Redis 볼륨 설정?

Written on

·

35

0

제가 Redis는 제대로 공부하질 않아서 잘 모르긴 하는데,

실무에서도 compose.yml 작성할 때 MySQL은 볼륨 설정을 하고, Redis는 볼륨 설정을 안 하는 편인가요?

dockerdocker-composedocker-volumedocker-imagecontainerecr

Answer 2

0

jscode님의 프로필 이미지
jscode
Instructor

안녕하세요 ! 질문 너무 잘해주셨어요 !

질문해 주신 내용에 대해 답변드려볼게요 ~

"실무에서도 compose.yml 작성할 때 MySQL은 볼륨 설정을 하고, Redis는 볼륨 설정을 안 하는 편인가요?"

-> 우선 실무에서 Redis 볼륨 설정을 하는지 안 하는지는 Redis를 어떤 용도로 사용하는지에 따라 달라져요 !

Redis는 기본적으로 인메모리(In-Memory) 데이터 저장소이기 때문에 캐시 용도로 사용하는 경우가 대부분이에요 !

캐시 데이터는 말 그대로 임시 데이터이기 때문에 컨테이너가 삭제되더라도 다시 만들어지면 되는 데이터라서 볼륨 설정을 따로 하지 않는 경우가 많아요 ~

반면에 MySQL은 영구적으로 보존해야 하는 데이터를 저장하는 용도이기 때문에 컨테이너가 삭제되더라도 데이터가 유지되어야 해서 볼륨 설정을 해주는 것이에요 !

다만 Redis를 단순 캐시가 아니라 세션 저장소나 메시지 큐 등의 용도로 사용하면서 데이터를 영구적으로 보존해야 하는 상황이라면 Redis에도 볼륨 설정을 해주는 것이 좋아요 !

정리하자면 Redis를 캐시 용도로만 쓴다면 볼륨 설정 없이 사용해도 무방하고, 데이터를 영구적으로 보존해야 하는 용도라면 볼륨 설정을 해주시면 돼요 !

추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~

0

안녕하세요, 인프런 AI 인턴입니다. 11 1님.

Redis 볼륨 설정에 대한 질문을 주셨군요.

Redis 볼륨 설정

왜 볼륨 설정을 하지 않나요?

Redis는 주로 캐시처럼 휘발성 데이터를 저장하거나, 영구 저장소에 비해 상대적으로 덜 중요한 데이터를 다루는 경우가 많습니다. 따라서 데이터의 영속성이 필요한 MySQL과 달리 Redis의 데이터는 시스템 재시작 시에도 반드시 보존해야 할 필요성이 낮은 경우가 많습니다.

실무에서는 어떻게 하는가?

  1. 일반적인 사용: 캐시로 사용되는 Redis의 경우, 재부팅이나 컨테이너 제거 시 데이터를 초기화하는 것이 일반적입니다. 그래서 볼륨 설정을 생략하는 경우가 많습니다.

  2. 영구 저장이 필요한 경우: 특정 비즈니스 로직에서는 Redis의 데이터를 영속적으로 보존해야 할 수 있습니다. 이럴 때는 Redis의 AOF(Append-Only File)와 같은 기능을 설정하여 데이터 영속성을 확보하며, 이를 위해 Docker 볼륨을 사용해 데이터를 디스크에 저장하도록 구성하기도 합니다.

아래 관련된 질문과 답변을 참고하시면 이해에 도움이 될 것입니다:
- docker compose 를 이용하는 방법? - Docker Compose를 통해 Redis나 다른 서비스들을 어떻게 설정하고 실행하는지 기본적인 방법을 확인할 수 있습니다.

질문자님의 이해를 돕고자 기존 질문과 답변을 바탕으로 힌트를 제공해드렸습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

greenjjh0515's profile image
greenjjh0515

asked

Ask a question