관리 메뉴

제뉴어리의 모든것

[Section4] [Cloud] 배포 자동화 - 1 본문

코드스테이츠/정리 블로깅

[Section4] [Cloud] 배포 자동화 - 1

제뉴어리맨 2022. 10. 18. 22:17

전체 항목

  • 배포 자동화란
  • 자동화 구성요소
  • 전반적인 배포 흐름

배포 자동화 (Automated Deployment) 란

한번의 클릭이나 간단한 명령어를 입력하여 배포하여 자동으로 서버를 구동까지 시키는 것을 말한다.

 

배포 파이프라인은 다음과 같다.

 

  1. 소스단계
    소스가 관리되는 원격 저장소에서 소스의 변화가 일어나고, 이를 감지하는 단계

  2. 빌드단계
    소스단계에서 변화가 감지된 코드를 컴파일, 빌드, 테스트 하여 모두 통과될 경우 빌드를 함.
    그리고 배포단계에 결과물인 빌드를 넘김

  3. 배포단계
    넘겨 받은 빌드를 현재 서비스서버에 실시간으로 실행시킨다

 

위와 같은 단계는 더 세분화 되거나 간소화 될 수 있다.

 

 

알아야할 AWS의 개념

  • CodeCommit
    github와 비슷한 서비스로써
    코드를 저장하고 버전관리가 가능한 서비스이다.
    github에 비해 보안 관련 기능에 있어 강점이있다.

  • CodeBuild
    CodeBuild 서비스를 통해 유닛 테스트, 컴파일, 빌드와 같은 빌드 단계에서 필수적으로 실행되어야 할 작업들을 명령어를 통해 실행 가능하다
  • CodeDeploy
    배포단계에서 사용되는 서비스로,
    변경된 앱을 서비스중인 서버에 반영시켜주는 역할을 한다.

  • CodePipeline
    배포 자동화에서 사용되는 각 서비스들을 이어주는 서비스라고 생각하면 된다.

 

자동화 구성요소

 

  • 프로젝트 : Spring Boot
  • 소스 저장소 : Git hub
  • 소스의 빌드 역할 : AWS CodeBuild
  • 배포 역할 : AWS Code Deploy
  • 빌드가 저장되고 서비스를 하는 서버 : AMAZON EC2
  • 자동화 과정을 연결시켜주는 역할 : AWS Code Pipeline

 

 

전반적인 배포 흐름

 

  1. Spring Boot 프로젝트를 원격 저장소인 Git Hub 레포지토리에 push한다
  2. Code Build가 자신의 파이프 라인에 소스 스테이지로 등록된 Git Hub의 변경 내용을 전달받아 
    컴파일, 빌드, 테스트를 진행한다
  3. Code Build는 빌드 내용을 Code Deploy에게 전달한다
  4. Code Deploy는 EC2 서버에 빌드 내용을 배포하고 서비스를 실행시킨다.