inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

155

BeakGwa

작성한 질문수 17

0

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

 

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

 

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

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

 

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

redis nosql query-tuning performance-tuning

답변 2

0

JSCODE 박재성

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

 

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

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

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

 

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

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

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

 

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

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

 

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

 

 

1

BeakGwa

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

0

인프런 AI 인턴

안녕하세요, 인프런 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나 다른 서비스들을 어떻게 설정하고 실행하는지 기본적인 방법을 제공하고 있습니다.

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

redis VS valkey

0

188

2

스프링 부트에 Redis 적용하기 질문

0

93

2

redis 적용을 위한 service 반환값

0

61

2

redis 사용으로 인한 비용

0

238

2

Redis를 적용했음에도 불구하고 조회 성능의 큰 차이가 없고 오히려 더 안좋은 조회속도를 보이는 것 같습니다.

0

142

3

Elastic Cache 에러

0

85

2

Elastic

0

73

2

AWS 리소스 삭제에 관하여

0

74

2

ec2안에서 pull 받는 이유가 뭔가요 ?

0

83

2

Nest.js + Redis 구현 문제

0

677

3

데이터를 안가져와요

0

72

2

Spring Boot 프로젝트에 Redis 셋팅 추가하기에서 13분 질문있습니다.

0

186

2

레디스 환경 셋팅 질문있습니다.

0

98

2

엘라스틱 서치와 레디스의 차이점을 알고 싶습니다.

0

258

2

-parameters

0

128

2

Redis vs Memcached

0

228

2

k6의 결과 해석

0

256

2

Jackson2JsonRedisSerializer에 대한 궁금증

0

233

1

사용된 어노테이션에 관한 질문

0

144

1

Redis 사용 방식에 대해서 질문 있습니다

0

154

1

aws elasticcache redis 툴 접속.

0

217

1

Redis를 사용하는 이유

0

695

2

로컬에서 docker compose 명령어 실행 시

0

275

2

EC2 서버 실행시키기 관련하여

0

427

2