배포 자동화
◎ 배포 자동화
-> 어떤 프로그램의 배포 과정을 자동으로 진행하는 것이다.
※ 배포 자동화는 왜 쓸까?
- 사람이 직접 배포하는 과정을 거치지 않아도 되기 때문에 효율적이다.
- 사람이 직접 배포를 하는 과정에서 실수가 발생할 수 있다. 하지만 배포 자동화를 하면 배포 과정 중의 실수를 줄일 수 있다.
◎ 배포 자동화 *파이프라인
*파이프라인 : 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 구조, 배포에서 파이프라인은 소스 코드의 관리 부터 실제 서비스로 배포 과정을 연결하는 구조다.
1. Source stage : 원격 저장소에 관리되는 소스 코드에 변경이 생길 경우 변경을 감지하고 다음 단계로 전달
2. Build stage : Sorce stage에서 전달 받은 코드를 컴파일, 빌드, 테스트 하여 가공. Build Stage를 거쳐 생성된 결과물을 다음 단계로 전달
3. Deploy stage : Build stage에서 받은 결과물을 실제 서비스에 반영
◎ AWS 개발자 도구
-> AWS에는 개발자 도구 섹션이 존재하고, 여기에서 제공하는 서비스를 활용해 배포 자동화 파이프라인을 구축할 수 있다.
-> CodeCommit : Source stage를 구성할 때 사용하는 서비스로 깃허브와 유사한 버전관리 도구.
-> CodeBuild : Build stage에서 사용하는 서비스로 해당 서비스를 통해 유닛 테스트, 빌드 ,컴파일 같은 작업들을 명령어를 통해 실행할 수 있다.
-> CodeDeploy : Deploy stage구성할 때 사용하는 서비스로 실행되고 있는 서버 애플리케이션에 실시간으로 변경사항을 전달할 수 있다. S3 서비스를 통해 S3 버킷으로 업로드된 정적 웹사이트에 변경사항을 실시간으로 전달&반영할 수 있다.
-> CodePipeline : 각 단계를 연결할 때 사용하는 서비스