작성
·
67
·
수정됨
0
안녕하세요 강사님 제가 강사님 강의를 즐겨듣는 수강생입니다.
질문1)제가 채팅과 로그인 에 관해서 서버 배포를 하고 싶은데 채팅내용이나 이런거는 Redis를 이용해 배포하고 로그인 회원가입등은 Mysql 을 이용한다고 가정했을 때 Redis는 RDS를 이용하는 게 나을까요?
-- 이 부분이 아예 감이 안 잡혀서 구조 한번만 설명좀 해 주시면 감사하겠습니다.
질문2) 만약 협업 프로젝트를 한다고 가정하면 EC2에 직접 들어가서 compose.yml을 작성하는 거 외에는 답이 없을까요? (제가 만약 채팅을 담당한다고 가정했을때 질문1)과 연관지어서 설명좀 해 주시면 감사하겠습니다. 현업에서는 어떻게 하는 건가요? 일단 CI/CD를 들어볼 예정입니다.)
답변 2
0
안녕하세요 한준님 ! 질문 너무 잘 해주셨습니다 !
궁금증을 해소해드리기 위해 핵심 포인트를 기준으로 차근차근 설명드려볼게요 ~
"Redis는 RDS를 이용하는 게 나을까요?"
-> 우선 RDS(Relational Database Service)는 관계형 DB 전용 서비스로서,
Redis는 RDS로 제공이 되지 않아요 ! Redis는 사용 및 운영 방법이 다양해요 !
크게 EC2 내부 Redis 혹은 AWS ElasticCache 와 같은 클라우스 서비스로
Redis를 사용해볼수 있어요 ~
도커 강의를 완주한 현 시점에서 로그인과 회원가입 및 채팅 서비스 프로젝트의 구조를 아래 처럼 가져가보시길 추천드려요 ~
Spring Boot 서버 (EC2)
└──로그인/회원가입 → MySQL (Amazon RDS) : 유저 정보, 로그인, 회원가입 등 영구적인 데이터 저장.
└── 채팅 메시지 송수신 → Redis (EC2 내부 Docker) : 실시간 채팅 메시지 저장, 채팅방 목록 관리.
"만약 협업 프로젝트를 한다고 가정하면 EC2에 직접 들어가서 compose.yml을 작성하는 거 외에는 답이 없을까요?"
-> EC2에 직접 들어가서 작성하는 방식은 장기적으로 비효율적이에요 ~
현업에서는 코드 기반으로 모든 인프라와 배포 과정을 자동화해요 !!
채팅을 담당하는 백엔드 개발자일 경우 크게 아래와 같은 플로우를 가지게 됩니다 :)
1. Spring Boot 프로젝트 생성
2. application.yml에서 Redis 연결 주소 지정 → redis.host = redis (← docker-compose 기준)
3. docker-compose.yml 작성 후 Git에 포함 → Spring Boot + Redis 컨테이너 구성
4. CI/CD 파이프라인 구성 (ex. GitHub Actions + CodeDeploy 등등)
5. EC2 인스턴스에서 docker compose up으로 Redis 포함 배포
이해하기 쉽게 설명드리자면 EC2로 직접 접속하지 않고,
compose.yml은 보통 Git에 포함시켜두고, CI/CD 실행 중에 compose.yml을 사용해요 ~~
혹시라도 추가로 궁금한 점이 있으시면 언제든 편하게 질문 주세요 ~~😊
아래 링크는 전체적인 큰 그림을 그리시는데 도움이 되실것 같아 같이 첨부드려요 ~
다양한 사례의 프로젝트 구조들을 참고하시면, 한준님의 프로젝트에 맞는 구조에 대한 감을 찾으시는데 도움이 될거요 :)
0
안녕하세요, 인프런 AI 인턴입니다. 전한준님.
Docker와 AWS EC2를 활용한 배포에 대해 두 가지 질문을 주셨습니다. 아래에서 각 질문에 대한 답변을 드리겠습니다.
채팅과 로그인 기능을 구현할 때의 데이터 저장 전략:
Redis 사용 이유:
MySQL 사용 이유:
Redis RDS 사용 여부:
AWS RDS는 관계형 데이터베이스 서비스이기 때문에 Redis와는 조금 다릅니다. Redis는 ElastiCache와 같은 서비스에서 관리형으로 제공되며, 채팅 관련 데이터를 처리하기 위해 ElastiCache를 사용하는 것이 적절합니다.
EC2에서 docker-compose.yml 파일 작성:
직접 작성:
docker-compose.yml
파일을 직접 작성하거나 스크립트를 사용해 자동화할 수 있습니다.GitHub 및 CI/CD 활용:
docker-compose.yml
파일의 변경도 반영되며, 인스턴스에서 자동으로 파일이 배포됩니다.현업에서의 접근 방법:
- 대부분의 현업에서는 Git을 통한 소스 코드 관리와 CI/CD 파이프라인을 통해 자동 배포를 설정합니다. 개발 환경에서의 변경 사항이 자동으로 프로덕션 환경에 배포되기 때문에 협업과 유지 보수가 용이합니다.
관련된 유사한 질문 및 답변 참조:
- docker compose 를 이용하는 방법? - Docker Compose 설정 및 실행에 대한 기본적인 방법을 설명합니다.
- AWS 환경에서 Docker Compose 파일 관리 - AWS에서의 Docker Compose 파일 활용 방법을 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.