🤔 배포 자동화가 필요한 이유?
- 시간 절약
- 휴먼 에러(Human Error) 방지
- 사람이 수동적으로 배포 과정을 진행하는 중에 생기는 실수
⚙️ 파이프라인
- 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조
- 전체 배포 과정을 여러 단계(Stages)로 분리
- 각 단계는 파이프라인 안에서 순차적으로 실행
- 단계마다 주어진 작업(Actions)들을 수행
⚠️ 파이프라인의 단계는 상황과 필요에 따라 더 세분화되거나 간소화될 수 있다.
💡 CodeCommit과 GitHub의 차이점
☑️ CodeCommit
- 보안 관련 기능에 강점
- 소스 코드의 유출이 크게 작용하는 기업에서는 매우 중요한 요소
- 과금 가능성
- 프리티어 한계 이상 사용할 경우, 요금이 부과될 수 있음
☑️ GitHub
- 사이드 프로젝트나 가볍게 작성한 소스 코드를 저장하는 경우에 효과적
- CodeCommit 서비스는 과금 가능성이 존재
⚠️ AWS 프리티어 계정 사용 시 한 계정에 두 개 이상의 파이프라인을 생성하면 추가 요금이 부여될 수 있다!
CodePipeline을 이용하여 각 단계를 연결하는 파이프라인 구축
Source 단계
➡️ 소스 코드가 저장된 GitHub 리포지토리를 연결
코드 수정 후, push 하면 build 자동 실행
Build 단계
➡️ CodeBuild 서비스를 이용하여 빌드 후, EC2 인스턴스로 빌드된 파일 전달
빌드된 결과물은 객체 스토리지인 S3 버킷에 저장됨
Deploy 단계
➡️ CodeDeploy 서비스를 이용하여 EC2 인스턴스에 변경 사항을 실시간으로 반영
AWS IAM 계정을 key로 사용
💡 GitHub Repository에
push
➜ AWS 변경 감지 ➜pull
➜ build ➜ ec2 delivery ➜sh
로 스크립트 실행 ➜ ec2에서 서버 실행