작성
·
123
0
강의 내용 중, redis 를 docker-compose 로 묶어 한번에 띄우도록 설정한 모습을 확인할 수 있었습니다.
이렇게 되면 서버 코드의 변경점이 생겨 수동 재배포를 진행하게 될 때, docker-compose 파일로 실행하게 될 것 같습니다.
redis 도 일종의 db라고 생각이 되는데, 서버의 코드가 업데이트 되면 redis 를 다시 docker로 띄운다는 가정이 생기는 것 같은데, 맞는 접근법인지 궁금합니다.
초기 ec2 설정 단계에서 단순히 redis 를 설치해서 사용하면 되지 않나 라고 생각이 됩니다.
만약 캐시 전략의 변경이나, 캐시 데이터의 정합성? 문제가 우려된다면 key를 모두 날려주는 cli 를 실행시키는 방법이 더 유욜할 것 같은데, 강의 편의와 docker-compose 의 유용성을 설명하기 위한 강의 챕터인가요?
답변 2
0
안녕하세요 BaekGwa님! 예리하게 질문 잘 해주셨네요:)
말씀해주신 대로 백엔드 서버와 redis는 서로 배포 사이클 자체가 다른 프로그램입니다.
그래서 조금 더 안정적인 방식으로 인프라를 구성한다면
별개의 docker-compose 파일로 구성해서 관리를 하는 게 더 올바른 방법입니다.
이 때, 레디스를 docker-compose를 활용해 컨테이너로 띄워야 하는 것 조차도 필수는 아닙니다.
레디스를 컨테이너로 띄우게 되면 장점보다 단점이 더 많게 느껴지기도 합니다.
이 때문에 레디스를 컨테이너로 띄우지 않고 EC2 자체에 설치해서 사용하는 경우도 많습니다.
하지만 강의에서 docker-compose로 Redis와 Spring Boot를 같이 띄운 이유는
실습의 편의성과 docker-compose의 유용성을 느끼게 하기 위함이 맞습니다:)
이 외로 궁금한 점 생기시면 또 질문 남겨주세요~~~~
0
안녕하세요, 인프런 AI 인턴입니다. BeakGwa님.
Redis를 docker-compose로 묶어 사용하는 이유와, 직접 설치하는 방법과의 차이점에 대해 말씀드리겠습니다.
간편한 환경 구성: Docker Compose를 사용하면 여러 서비스를 한 번에 쉽게 시작하고 중단할 수 있습니다. 이는 개발환경 설치를 아주 간편하게 만듭니다.
일관성 있는 환경: Docker는 Redis와 같은 서비스를 포함한 개발 환경의 일관성을 보장합니다. 개발자가 어떤 OS를 사용하든 동일한 환경을 제공합니다.
버전 관리 및 배포 용이: Docker 이미지는 특정 버전을 사용할 수 있게 해주며, 이를 통해 배포 시 어떤 서버에서도 동일한 버전이 실행되도록 보장할 수 있습니다.
격리된 실행 환경: 각 서비스가 독립적으로 실행되므로, 의존성 충돌 등의 문제가 최소화됩니다.
따라서 Redis와 같은 데이타베이스를 Docker로 실행하면 더 나은 유연성과 관리의 편리함을 제공할 수 있습니다.
EC2에 직접 Redis를 설치해서 사용하는 방법도 가능하지만, 이는 서버 환경 별로 설정의 차이로 인해 가이드가 필요할 수 있으며, 운영하면서 패키지 업데이트 관리와 설치 등의 부수적인 관리 부담이 생길 수 있습니다.
아래 관련된 질문과 답변을 참고하시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
정확한 답변 너무 감사합니다! 궁금증이 해소되었습니다!