작성
·
160
·
수정됨
1
안녕하세요! 수업 너무 잘들었어요 ~
이번 수업 프로젝트를 수동 배포를 해보고 CI/CD 공부를 하고싶어서 찾아보던중
EC2서버에 docker를 사용해서 JENKINS를 설치하고 CI/CD작업을 하던 와중에 백엔드 코드는 빌드하고 배포를 하였습니다.
1. JENKINS포트를 9090 으로 변경하고(스프링 부트 서버가 8080이라 )맞는걸까요?
2. 화면도 나오게 배포를 하려면 따로 리액트도 배포를 해줘야 할까요? 같은 서버에 있어서 안해줘도 된다고 생각했는데...
조언부탁드려요 ㅠㅠ!
많은 블로그들을 보면 ec2서버를 여러대 사용하고 배치하고 있던데 어떨때 ec2서버를 여러대 사용해야하고 mysql mastr-slave구조도.. redis 서버도 어디다 배치하고 감이 안잡혀서 강사님께 조언부탁드렸습니다 ㅠㅠ!
저의 질문이 강의와 맞지 않아서 무례할지 고민하다가.. 조언을 부탁드렸습니다 . 감사합니다
답변 1
1
안녕하세요! qheogus55님! 🙂 아이고 그래도 강의와 연관된 내용인걸요!! 질문 주셔서 감사합니다!! 🙏
하나씩 답변 드려 볼게요!!
[1. Jenkins port]
네네 맞습니다! 보다 정확히는 port가 겹치지 않으면 상관 없기 때문에 편한 번호로 설정하셔도 될 것 같아요~!
[2. 화면 배포]
이 부분이 살짝 애매한 부분인데요!
1) 리액트 같은 코드를 빌드해서 스프링 안에서 넣은 후 스프링만 배포할 수도 있고
2) 리액트를 따로 배포하고, 스프링을 따로 각각 배포해서 연결할 수도 있습니다.
현재 강의에서 사용한 방법은 <추가 - 스프링 부트의 정적 파일 처리> 에서 말씀드린 것처럼 1번 방법인데요, 만약 F/E 개발자와 B/E가 구분되어 있다면 2번 방법을 많이 사용하는 편이고, B/E 개발자가 화면 까지 작업해야 한다면 1번 방법을 많이 사용하는 편입니다.
[3. EC2 여러대]
이 역시 상황에 따라 다르지만 아직은 EC2를 여러대 사용하지 않으셔도 된다고 생각해요! 🙂
혹시나 서버를 여러대 둬야 한다면, Auto Scaling을 공부해보시면 좋고요!
MySQL master-slave 구조는 AWS RDS Aurora Cluster를
Redis는 특정 ec2에 직접 설치하시거나 AWS ElasticCache를 사용하시면 됩니다!
저희는 강의에서 DB를 EC2에 직접 설치했지만, 실제로는 이렇게 managed service를 사용하는 경우가 훨씬 많아요! 😊
답변이 도움이 되었으면 좋겠습니다.
감사합니다! 🙏