Inflearn brand logo image

인프런 커뮤니티 질문&답변

BeakGwa님의 프로필 이미지
BeakGwa

작성한 질문수

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

AWS EC2에서 Docker Compose를 활용해 Redis, Spring Boot 띄워보기

redis 를 compose 로 묶어준 이유가 궁금합니다.

작성

·

123

0

강의 내용 중, redis 를 docker-compose 로 묶어 한번에 띄우도록 설정한 모습을 확인할 수 있었습니다.

 

이렇게 되면 서버 코드의 변경점이 생겨 수동 재배포를 진행하게 될 때, docker-compose 파일로 실행하게 될 것 같습니다.

 

redis 도 일종의 db라고 생각이 되는데, 서버의 코드가 업데이트 되면 redis 를 다시 docker로 띄운다는 가정이 생기는 것 같은데, 맞는 접근법인지 궁금합니다.

초기 ec2 설정 단계에서 단순히 redis 를 설치해서 사용하면 되지 않나 라고 생각이 됩니다.

 

만약 캐시 전략의 변경이나, 캐시 데이터의 정합성? 문제가 우려된다면 key를 모두 날려주는 cli 를 실행시키는 방법이 더 유욜할 것 같은데, 강의 편의와 docker-compose 의 유용성을 설명하기 위한 강의 챕터인가요?

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 BaekGwa님! 예리하게 질문 잘 해주셨네요:)

 

말씀해주신 대로 백엔드 서버와 redis는 서로 배포 사이클 자체가 다른 프로그램입니다.

그래서 조금 더 안정적인 방식으로 인프라를 구성한다면

별개의 docker-compose 파일로 구성해서 관리를 하는 게 더 올바른 방법입니다.

 

이 때, 레디스를 docker-compose를 활용해 컨테이너로 띄워야 하는 것 조차도 필수는 아닙니다.

레디스를 컨테이너로 띄우게 되면 장점보다 단점이 더 많게 느껴지기도 합니다.

이 때문에 레디스를 컨테이너로 띄우지 않고 EC2 자체에 설치해서 사용하는 경우도 많습니다.

 

하지만 강의에서 docker-compose로 Redis와 Spring Boot를 같이 띄운 이유는

실습의 편의성과 docker-compose의 유용성을 느끼게 하기 위함이 맞습니다:)

 

이 외로 궁금한 점 생기시면 또 질문 남겨주세요~~~~

 

 

BeakGwa님의 프로필 이미지
BeakGwa
질문자

정확한 답변 너무 감사합니다! 궁금증이 해소되었습니다!

0

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

Redis를 docker-compose로 묶어 사용하는 이유와, 직접 설치하는 방법과의 차이점에 대해 말씀드리겠습니다.

Docker Compose로 Redis를 사용하는 이유

  1. 간편한 환경 구성: Docker Compose를 사용하면 여러 서비스를 한 번에 쉽게 시작하고 중단할 수 있습니다. 이는 개발환경 설치를 아주 간편하게 만듭니다.

  2. 일관성 있는 환경: Docker는 Redis와 같은 서비스를 포함한 개발 환경의 일관성을 보장합니다. 개발자가 어떤 OS를 사용하든 동일한 환경을 제공합니다.

  3. 버전 관리 및 배포 용이: Docker 이미지는 특정 버전을 사용할 수 있게 해주며, 이를 통해 배포 시 어떤 서버에서도 동일한 버전이 실행되도록 보장할 수 있습니다.

  4. 격리된 실행 환경: 각 서비스가 독립적으로 실행되므로, 의존성 충돌 등의 문제가 최소화됩니다.

따라서 Redis와 같은 데이타베이스를 Docker로 실행하면 더 나은 유연성과 관리의 편리함을 제공할 수 있습니다.

초기 EC2 설정에서의 접근

EC2에 직접 Redis를 설치해서 사용하는 방법도 가능하지만, 이는 서버 환경 별로 설정의 차이로 인해 가이드가 필요할 수 있으며, 운영하면서 패키지 업데이트 관리와 설치 등의 부수적인 관리 부담이 생길 수 있습니다.

캐시 전략 변경과 데이터 정합성 문제

  • 캐시 전략 변경의 용이성: Docker를 통해 다양한 설정을 빠르게 테스트할 수 있고, 쉽게 롤백할 수 있습니다.
  • 데이터 정합성 문제: Redis의 데이터를 임시로 다루는 경우가 많기 때문에, CLI를 통한 키 초기화는 단순화된 해결책이 될 수 있으나, 이를 빈번히 사용하면 매번 수동 작업이 요구될 수 있습니다.

아래 관련된 질문과 답변을 참고하시면 도움이 될 것입니다:

  1. docker compose 를 이용하는 방법?
    • Docker Compose를 통해 Redis나 다른 서비스들을 어떻게 설정하고 실행하는지 기본적인 방법을 제공하고 있습니다.

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

BeakGwa님의 프로필 이미지
BeakGwa

작성한 질문수

질문하기