이수아

[개별 스크럼]10. 05(목) CI/CD 배포 자동화 공부 + AWS 계정생성

모잉프로젝트 2023. 10. 6. 00:32

저번에 했던 프로젝트에서 프론트 코드를 모두 백엔드에 옮기고 배포를 진행했었는데 하나를 고치면 jar파일을 다시 만들어 public서버에 다시 올리고 확인하고 하는 과정이 번거로웠다. 그래서 배포 자동화라는 것을 공부해 적용해보기로 함!

 

CI/CD 란?

Continuous Integration/Continuous Delivery로 애플리케이션 개발 단계를 자동화하여 더욱 짧은 주기로 고객에게 제공하는 방법이다. 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포이다. 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 '통합지옥'을 해결하기 위한 솔루션

CI는 개발자를 위한 자동화 프로세스인 지속적 통합. 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 리포지토리에 병합됨. 여러 개발자가 동시에 작업할 경우 충돌문제를 해결할 수 있음

CD는 지속적 배포이다. 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 한다. 지속적 제공이라고도 하는데 리포지토리에 자동으로 업로드되는 것을 뜻한다. 결과적으로 CI/CD는 파이프라인으로 표현되는 실제 프로세스를 의미하고, 애플리케이션 개발에 지속적인 자동화 및 지속적인 모니터링을 추가하는 것을 의미합니다.

https://www.redhat.com/ko/topics/devops/what-is-ci-cd

 

CI/CD(CI CD, 지속적 통합/지속적 배포): 개념, 툴, 구축, 차이

CI/CD는 애플리케이션의 통합 및 테스트 단계부터 제공 및 배포까지 애플리케이션 라이프사이클 전체에서 지속적인 자동화와 지속적인 모니터링을 제공하는 것을 뜻합니다.

www.redhat.com

이 게시물을 참고해 공부했습니다. 

 

https://velog.io/@jonghyun3668/SpringBoot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-EC2-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0

 

SpringBoot 프로젝트 EC2 배포하기

깃헙에 있는 프로젝트를 AWS EC2에 git clone을 통해 내려받아 jar 파일 빌드를 해보겠습니다.(EC2 인스턴스는 우분투로 진행합니다. 또한 따로 배포 시스템을 구축하지 않고 수동으로 배포하는것만

velog.io

AWS 계정은 생성했고 스프링부트를 활용해 AWS서버를 가지고 도커와 젠킨스를 활용한 배포를 하려해서 참고 블로그를 가져왔다.

 

https://velog.io/@dev_tmb/Docker%EC%99%80-jenkins%EC%9D%98-%EA%B4%80%EA%B3%84

 

Docker와 jenkins의 관계

CI/CD 툴 소프트웨어의 지속적 통합 및 제공, 관리를 수행하는 데 가장 널리 사용되는 CI/CD 툴로, 이 소프트웨어 도구와 통합하는 방법 중 Docker, Github, SonarQube, Onelogin 등이 있는 것이다. 자유 유형

velog.io

 

도커와 젠킨스 말은 많이 들었는데 정확히 어떤 역할을 하는지 몰라서 블로그를 참고해서 공부했다.

 

Jenkins는 CI/CD 툴로 소프트웨어의 지속적 통합 및 제공, 관리를 수행한다. 소프트웨어 도구와 통합하는 방법 중에 도커가 있는 것이다. 파이프라인 및 Docker를 이용한 Jenkins와의 CI/CD 사용 순서는 다음과 같다.

1. Doker를 사용한 jenkins설치

2. 도커, 잡 DSL, jenkins 파이프라인을 사용한 Jenkins "DevOps 방식"rntjd

3. 플러그인을 사용해 젠킨스 개발 소프트웨어와 통합

4. 젠킨스 UI의 보안 강화를 위한 인증 및 권한 부여 옵션 구성

 

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 서버에서 컨테이너는 다양한 프로그램, 실행환경을 하나로 추상화하고 동일한 인터페이스를 제공해 배포 및 관리를 단순화한다. 도커 내 젠킨스를 설치하는 거란다.