

# OPS05-BP04 구축 및 배포 관리 시스템 사용
<a name="ops_dev_integ_build_mgmt_sys"></a>

 구축 및 배포 관리 시스템을 사용합니다. 이러한 시스템에서는 수동 프로세스에서 발생하는 오류와 변경 사항 배포를 위한 작업량을 줄일 수 있습니다.

 AWS에서는 [AWS](https://aws.amazon.com/products/developer-tools/) 개발자 도구(예: [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/))와 같은 서비스를 사용하여 지속적 통합 및 지속적 배포(CI/CD) 파이프라인을 구축할 수 있습니다.

 **원하는 성과:** 빌드 및 배포 관리 시스템은 올바른 구성으로 안전한 롤아웃을 자동화하는 기능을 제공하는 조직의 지속적 통합 및 지속적 전달(CI/CD) 시스템을 지원합니다.

 **일반적인 안티 패턴**: 
+  개발 시스템에서 코드를 컴파일한 후 실행 파일을 프로덕션 시스템에 복사하면 실행 파일이 시작되지 않습니다. 로컬 로그 파일은 누락된 종속성으로 인해 실패했음을 나타냅니다.
+  개발 환경에서 새로운 기능을 사용하여 애플리케이션을 성공적으로 구축하고 코드를 품질 보증(QA) 팀에 제공합니다. 정적 자산이 누락되어 QA에 실패합니다.
+  금요일에는 많은 노력을 기울이고 새로 코딩된 기능을 포함하여 개발 환경에서 수동으로 애플리케이션을 성공적으로 구축했습니다. 월요일에는 애플리케이션을 성공적으로 구축할 수 있는 단계를 반복할 수 없습니다.
+  새 릴리스에 대해 생성한 테스트를 수행합니다. 그리고 다음 주에 테스트 환경을 설정하고 모든 기존 통합 테스트를 수행한 후 성능 테스트를 수행합니다. 새 코드는 용인할 수 없는 성능 영향을 미치므로 재개발한 후 다시 테스트해야 합니다.

 **이 모범 사례 확립의 이점:**빌드 및 배포 활동을 관리하는 메커니즘을 제공하여 반복적인 작업 수행을 위한 작업량을 줄이고, 팀원이 고가치 창조 작업에 집중할 수 있게 하며, 수동 절차에서 발생하는 오류의 도입을 제한할 수 있습니다.

 **이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준:** 중간 

## 구현 가이드
<a name="implementation-guidance"></a>

 구축 및 배포 관리 시스템은 변경 사항을 추적 및 구현하고, 수동 프로세스로 인한 오류를 줄이며, 안전한 배포에 필요한 노력을 줄이는 데 사용됩니다. 코드 체크인에서 구축, 테스트, 배포 및 확인까지의 전체 통합 및 배포 파이프라인을 완전히 자동화합니다. 이를 통해 리드 타임, 비용 절감, 변경 빈도 증가, 작업량 감소, 협업 증대 등의 효과를 얻을 수 있습니다.

### 구현 단계
<a name="implementation-steps"></a>

![\[AWS CodePipeline 및 관련 서비스를 사용하는 CI/CD 파이프라인을 보여주는 다이어그램\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/latest/operational-excellence-pillar/images/deployment-pipeline-tooling.png)


 

1.  자산(예: 문서, 소스 코드, 바이너리 파일)을 저장 및 관리하는 데 버전 관리를 사용합니다.

1.  CodeBuild를 사용하여 소스 코드를 컴파일하고 유닛 테스트를 실행하며 배포 준비가 완료된 아티팩트를 생성합니다.

1.  [Amazon EC2](https://aws.amazon.com/ec2/) 인스턴스, 온프레미스 인스턴스, [서버리스 AWS Lambda 함수](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 또는 [Amazon ECS](https://aws.amazon.com/ecs/) 서비스로 애플리케이션 배포를 자동화하는 배포 서비스로 CodeDeploy를 사용합니다.

1.  배포를 모니터링하세요.

## 리소스
<a name="resources"></a>

 **관련 모범 사례:** 
+  [OPS06-BP04 테스트 및 롤백 자동화](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **관련 문서**: 
+  [AWS 개발자 도구](https://aws.amazon.com/products/developer-tools/) 
+  [AWS CodeBuild란 무엇입니까?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+  [AWS CodeDeploy란 무엇입니까?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)

 **관련 비디오:** 
+ [AWS re:Invent 2022 - AWS Well-Architected best practices for DevOps on AWS](https://youtu.be/hfXokRAyorA)