2021. 7. 17. 15:56ㆍ프로젝트/Salle(살래) 중고거래 웹
다시 돌아왔습니다. 운좋게도 회사에서 AWS EC2로 애플리케이션 배포까지 진행하고 있는데, 자동화가 이루어지지 않은 상태기 때문에 자동화 + 무중단 배포라는 임무가 주어졌습니다. 힘들겠지만 7월 말 회사 테스트 서버부터 적용시키는 것을 목표로 우선 개인 프로젝트를 통해 익혀보려고 합니다.
첫번째 테마는 자동화 입니다. 우선 Git에 commit하면 build, test, deploy가 자동으로 구동되는 CI/CD 툴을 정했습니다. Jenkin를 사용하기로 했고 그 이유는 회사에서 무료버전을 원할 수 있기도 하고, 설정이 까다로운 툴을 써볼수록 나중에 Travis를 사용해도 편할 거 같기 때문입니다.(Travis는 Production 버전은 유료입니다) 그리고 현재 서버/프런트/앱 배포 방식을 파악하고, Jenkins와 AWS를 적용시킬 수 있을지 조사했습니다.
CI/CD
CI/CD란?
하나의 프로젝트에서 많은 개발자들이 수정한 코드를 통합하는 과정을 말합니다. 코드 커밋이 이루어질 때마다 코드는 빌드되고 테스트됩니다. 테스트가 통과되면 빌드는 배포 단계에서 또한번 테스트된 다음 production 레벨로 푸시됩니다.
커밋을 하면 빌드, 테스트, 배포까지 자동화 해주는 기술이라 보면 됩니다. 그래서 에러가 있을 때 알림을 줘서 실시간 수정이 가능한 장점이 있습니다.
Travis
- 장점 : 다양한 언어지원이 가능하며, install/config 시간이 짧습니다.
- 단점 : Enterpirse 사용 시 유료입니다.(회사에 도입하려면 결재를 맡아야합니다...)
Jenkins
- 장점 : Sun사에서 제공한 서비스라 Java에 특화되어 있음, 커스터마이징이 가능함, 무료임, Travis에 비해 사용률이 높습니다.
- 단점 : 직접 설정해야되는 부분이 많이 때문에 시간이 오래걸립니다.
참고링크 : Installing Jenkins on AWS tutorial
선택은 Jenkins.
이유는 회사에서 무료버전을 원할 수 있기도 하고, 설정이 까다로운 툴을 써볼수록 나중에 Travis를 사용해도 편할 거 같기 때문입니다.
참고링크 : https://www.guru99.com/jenkins-vs-travis.html
현재 배포 방식
- 웹(프런트/서버) : .Net, C#, Vue.js
- AWS EC2에 install된 Jenkin로 build 스크립트만 실행해주면 됩니다.
- 앱(앱/서버) : Spring, Kotlin, Java
- Jenkins에서 build하고 생성된 파일(jar, apk)을 AWS에 자동 업로드 해주는 기능이 포함되어야 합니다.
- 참고자료 : Jenkins with Android(재밌음) : https://nickskelton.medium.com/android-continuous-integration-installing-jenkins-on-an-amazon-ec2-instance-454951a0cd80
'프로젝트 > Salle(살래) 중고거래 웹' 카테고리의 다른 글
1-3. 회원가입 - 비밀번호 암호화(Jasypt Encryption) (0) | 2021.03.24 |
---|---|
10. AWS EC2 + Spring boot (9) - AWS RDS Spring boot 연결방법과 택한 이유 (0) | 2021.03.08 |
10. AWS EC2 + Spring boot (8) - AWS S3 이미지 파일 업로드 (0) | 2021.03.04 |
10. AWS EC2 + Spring boot (7) - Spring boot 프로젝트 실행파일 변경기: WAR to JAR (2) | 2021.03.03 |
10. AWS EC2 + Spring boot (6) - war 파일 tomcat 실행 에러 (0) | 2021.02.24 |