한 번의 클릭 혹은 명령어 입력을 통해 전체 배포과정을 자동으로 진행하는 것
사람이 수동적으로 배포를 진행한는 중에 생기는 실수들을 뜻한다.
Pipeline 흐름.(위에서 밑으로...)
Pipeline
Source state
- 버전 컨트롤 도구를 이용한 소스 코드 관리 및 전달
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Build stage
- 코드 컴파일링
- 유닛 테스트
- 빌드 결과물 생성
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Deploy stage
- 변경사항 실시간 반영
- 서비스 업데이트
파이프라인을 여러 단계로 분리할 때 대표적으로 쓰이는 세 가지 단계가 존재한다.
1. Source 단계
*주의 : 파이프라인의 단계는 상황과 필요에 따라 더 세분화되거나 간소화될 수 있다!!!
AWS의 개발자 도구 섹션이 존재한다.. 개발자 도구 섹션에서 제공하는 서비스를 활용하여 배포 자동화 파이프라인을 구축할 수 있다.
Source단계를 구성할 때 CodeCommit 서비스를 이용한다.
CodeCommit은 GitHub과 유사한 서비스를 제공하는 버전 관리 도구이다.
CodeCommit과 GitHub의 차이점!
GitHub와 비교했을 때 CodeCommit 서비스는 보안과 관련된 기능에 강점을 가진다.
이는 소스 코드의 유출이 크게 영향을 미치는 기업에서 매우 중요한 요소이다. 다만 CodeCommit을 사용할 때는 과금 가능성을 고려해야 한다.
프리티어의 한계(제한) 이상으로 사용할 경우 요금이 부과될 수 있다.
사이드 프로젝트나 가볍게 작성한 소스 코드를 저장해야 할 경우는 GitHub를 이용하는 것이 효과적이다.
Build 단계에서는 CodeBuild 서비스를 이용한다.
CodeBuild 서비스를 통해 유닛 테스트, 컴파일, 빌드와 같은 빌드 단계에서 필수적으로 실행되어야 할 작업들을 명령어를 통해 실행할 수 있다.
참고로 CodeBuild 서비스느 사용자가 작성한 buildspec.yml파일을 참조하여 작업을 수행한다.
Deploy단계를 구성할 때는 다양한 서비스를 이용할 수 있다.
CodeDeploy 서비스를 이용하면 실행되고 있는 서버 애플리케이션에 실시간으로 변경사항을 전달할 수 있다.
만약 S3 서비스를 통해 S3 버킷을 통해 업로드된 정적 웹 사이트에 변경 사항을 실시간으로 전달하고 반영할 수 있다.
참고로 CodeDeploy 서비스는 사용자가 작성한 appspec.yml파일을 참조하여 작업을 수행한다.
각 단계를 연결하는 파이프라인을 구축할 때 CodePipeline 서비스를 이용한다.