지금 까지는 EC2 서버 재배포를 할 때, gradle를 통해 build한 jar파일을 가지고
AWS EC2 서버에 직접 넣고 구동(배포)을 시켰는데.
Travis를 통해 자동 빌드와 CodeDeploy를 사용한다면 배포자동화를 할 수 있게 된다.
Travis CI란?
Travis CI는 Travis에서 만든 CI(Continuous Integeration) 즉 지속적인 통합을 위한 툴이다.
Travis CI 웹페이지에서 우리가 사용 중인 GitHub Repository와 연동을 하고 난 뒤에, 해당 레포지토리에 푸쉬를 하게되면 자동 빌드 및 테스트를 진행 해준다.
Travis CI와 비슷한 서비스를 해주는 것들에는 Jenkins, Github Action, Buildbot 등등 존재한다
젠킨스는 설치형이여서 부담스럽고, 깃허브액션이랑 트래비스는 둘 다 참고 블로그가 많아서 둘 중에 마음에 드는걸로 하면 될 것 같다
트래비스를 써보았는데 사용 순서를 간단히 얘기하자면
1. Travis 회원 가입
2. Travis CI 와 깃허브 연동
3. 프로젝트에 .travis.yml 생성
(출저: https://yeonyeon.tistory.com/71?category=920206 를 참고)
많은 사람들이 사용 중이여서 구글링도 잘 되고 사용법 자체도 간단해서 어려울 건 없다.
CodeDeploy란?
코드디플로이는 아마존에서 제공하는 애플리케이션 배포자동화 서비스이다.
위에 트래비스와 더불어 자동 배포를 하는데 사용 할 수 있고, 추가적으로 AWS에 S3도 같이 사용해야 한다
자동 빌드 및 자동 배포 구조는 위의 그림과 같다.
S3를 같이 사용해야 하는 이유는 CodeDeploy에는 저장기능이 없어서 EC2에 jar파일을 가져다 줄 저장소가 필요하기 때문이다
사용하기 위한 방법을 간단히 정리하자면
1. AWS IAM에서 사용자 추가를 통해 AWS에 접근할 KEY 생성
2. Travis CI에 KEY 등록
3. S3 버킷 생성
4. Travis yml에 코드 반영
5. AWS IAM에서 역할 생성(EC2에 적용할 역할)
6. EC2에 역할 적용 및 재부팅
7. EC2에 들어가서 CodeDeploy 사용을 위한 에이전트 설치
8. AWS IAM에서 역할 생성(코드디플로이에 적용할 역할)
9. AWS CodeDeploy에서 애플리케이션 생성
10. 프로젝트에 scripts 폴더를 만든 후 deploy.sh 파일 생성 및 코드 반영 (코드디플로이 동작하는데 있어 설정파일)
11. 프로젝트에 AWS CodeDeploy의 설정 반영을 위한 appspec.yml 생성 및 설정 추가
12. Travis yml에 코드 반영
'항해 시절' 카테고리의 다른 글
코딩 시작 부터 항해99 느낀점, 장단점 (0) | 2022.07.02 |
---|---|
자료 구조 공부 중 (0) | 2022.07.02 |
스프링 서버 HTTPS(Nginx, letsencrypt 활용) 적용 (0) | 2022.07.02 |
스프링 복습 및 Logback에 대해서 (항해 10주차 회고록) (0) | 2022.07.02 |
https 공부 (항해 9주차 회고록) (0) | 2022.07.02 |