- 애플리케이션 및 인프라 업데이트의 릴리즈 파이프라인 자동화 - 완전 관리형 지속적 전달을 제공하는 서비스 - Delivery & Release의 조율을 위한 커스텀 릴리즈 워크플로우 모델링 - 파이프라인을 자동화하여 시각적인 모니터링 수행 - 코드의 변경이 발생하는 경우 빌드, 테스트, 배포를 매번 수행 가능 - AWS 및 3rd Party Tool과의 통합
프리티어(Free Tier)
- 신규 및 기존 고객에게 매월 무료 활성 파이프라인 1개씩 제공 - 시범적으로 사용할 수 있도록 최초 30일무료 사용 가능
CodePipeline의 기대 효과
프로세스 자동화
릴리즈 프로세스 시각화
완전 관리형 서비스
손쉬운 확장
높은 보안성
CodePipeline의 구성 요소
파이프라인: S/W 변경 사항이 배포 프로세스의 적용 방법을 설명하는 워크플로우를 구성하며, AWS 계정 당 리전 별 300개의 파이프라인 생성이 가능하다. 콘솔에서 파이프라인 생성 시 각 파이프라인 당 S3 버킷에 폴더를 생성하고, 파이프라인에서 배포 프로세스가 실행되면 각 폴더에 아티팩트를 저장한다.
단계: CodePipeline의 워크플로우를 구분하는 단위로, 수행 작업 분류의 기준이다. 각 단계는 고유한 이름을 가지며, 워크플로우 수행을 위한 작업을 포함하며, 전 단계가 수행 완료되어야만 다음 단계로 넘어갈 수 있다. 단계는 하나의 개정만 처리할 수 있으며, 최소 하나의 작업을 포함하고, 파이프라인 당 최소 2개에서 최대 10개까지 생성 가능하다.
작업: 파이프라인 실행의 최소 단위로, 단계 구성 시 정의한 대로 지정된 순서 또는 연속 및 병렬로 발생하며, 배포 단계는 하나 이상의 운영 서버에 코드를 배포하는 배포 작업이 포함될 수 있다. 모든 작업은 입력 아티팩트 또는 출력 아티팩트 유형을 가지고 있으며, 단계 단 작업 수는 최소 1개에서 최대 50개다.
전환: 워크플로우의 한 단계에서 다음 단계로 이어지는 파이프라인 수행 절차로, CodePipeline 콘솔 내 전환 화살표는 처리 단계에 대한 순서 표기다. 전 단계가 완료되면 기본적으로 다음 단계가 실행되지만, 다음 단계로의 실행을 Disable할 수 있으며, Disable 해지 전까지 전환을 중단하므로 파이프라인에 대한 실행 중지를 수행할 수 있는 가장 손쉬운 방법이다.
승인 작업: 권한이 부여될 때까지 다음 작업으로 전환되는 것을 방지하며, 승인 작업 유효 기간은 7일이다.
실패: 단계의 작업이 성공적으로 완료되지 않고, 파이프라인 실행이 단계의 다음 작업으로 전환되지 않을 때 발생한다. 한 단계에 하나 이상의 실패한 작업이 있을 경우 단계가 실패하며, 파이프라인 실행은 파이프라인의 다음 단계로 전환되지 않는다.
아티팩트: CodePipeline의 배포를 위한 작업 대상 파일을 지칭하며, 배포 프로세스 작업의 소스 및 파일 또는 배포 프로세스 작업의 출력물이다.
CodePipeline의 동작 방식
Request: 고객으로부터 기존 프로그램에 대한 변경 요청이나 수정 사항에 대한 요구사항을 수집하고, 이러한 아이디어 또는 버그 사항에 대한 처리 요청을 받는다.
Development: 고객의 요청사항에 대해 개발팀에서 버그에 대한 수정과 새로운 아이디어를 반영하여 프로그램에 대한 수정 변경 작업을 진행한다.
Source: 개발자는 프로그램의 변경 사항에 대해 Git, CodeCommit, S3 등 소스 변경을 반영하기 위한 Commit을 수행하거나 업데이트를 수행한다.
Build: 소스에 대한 Commit과 변경이 발생되면 CodePipeline이 자동으로 변경 사항을 감지하고 소스로부터 아티팩트를 읽어와 CodeBuild를 통해 빌드를 수행하고, 테스트 환경에 구성되어 있는 경우 테스트를 수행한다.
Staging: 스테이징 환경에서 테스트를 수행하기 위해 빌드된 코드를 스테이징 환경에 배포한 후, 부하 테스트나 통합 테스트와 같은 추가 테스트를 수행한다.
Production: 모든 테스트가 성공적으로 완료된 후, 파이프라인에 추가된 수동 승인 작업을 통해 승인을 받고 나면 테스트가 완료된 코드를 운영 환경에 배포한다.
실습: Cloud9, CodeCommit, CodeDeploy, CodePipeline을 활용한 EC2 소스 배포 자동화
Step 1 서비스 역할 및 IAM 인스턴스 프로파일 생성
Step 2 Cloud9과 CodeCommit 설정 및 소스 등록
Step 3 EC2 및 CodeDeploy 배포 그룹 생성
Step 4 CodePipeline과 CodeDeploy 배포를 활용한 배포 파이프라인 구현