

# OPS 6  배포 위험을 어떻게 최소화하고 있습니까?
<a name="w2aac19b5b7b9"></a>

 품질과 관련한 피드백을 빠르게 제공하며, 적절한 성과를 달성하는 데 도움이 되지 않는 변경을 수행한 경우 신속하게 복구할 수 있는 방식을 도입합니다. 이러한 사례를 사용하면 변경 사항 배포로 인해 발생하는 문제의 영향을 완화할 수 있습니다. 

**Topics**
+ [OPS06-BP01 변경이 적절하지 못한 경우에 대한 계획 수립](ops_mit_deploy_risks_plan_for_unsucessful_changes.md)
+ [OPS06-BP02 변경 사항 테스트 및 확인](ops_mit_deploy_risks_test_val_chg.md)
+ [OPS06-BP03 배포 관리 시스템 사용](ops_mit_deploy_risks_deploy_mgmt_sys.md)
+ [OPS06-BP04 제한된 배포를 사용하여 테스트](ops_mit_deploy_risks_test_limited_deploy.md)
+ [OPS06-BP05 병렬 환경을 사용하여 배포](ops_mit_deploy_risks_deploy_to_parallel_env.md)
+ [OPS06-BP06 작게 자주 발생하고 되돌릴 수 있는 변경 내용 배포](ops_mit_deploy_risks_freq_sm_rev_chg.md)
+ [OPS06-BP07 통합 및 배포 완전 자동화](ops_mit_deploy_risks_auto_integ_deploy.md)
+ [OPS06-BP08 테스트 및 롤백 자동화](ops_mit_deploy_risks_auto_testing_and_rollback.md)

# OPS06-BP01 변경이 적절하지 못한 경우에 대한 계획 수립
<a name="ops_mit_deploy_risks_plan_for_unsucessful_changes"></a>

 변경을 수행했는데 적절한 성과를 달성하는 데 도움이 되지 않는다면 알려진 정상 상태로 되돌릴 수 있는 계획을 세우거나 프로덕션 환경에서 관련 문제를 해결합니다. 이와 같이 준비를 하면 문제에 더욱 신속하게 대응함으로써 복구 시간을 단축할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  배포를 수행했으며 애플리케이션이 불안정해졌지만 시스템에 활성 사용자가 있는 것 같습니다. 변경 사항을 롤백하고 활성 사용자에게 영향을 줄 것인지 아니면 사용자에게 영향을 줄 수 있음을 알고 변경 사항을 롤백할 때까지 기다려야 합니다. 
+  라우팅을 변경한 후에는 새 환경에 액세스할 수 있지만, 서브넷 중 하나에 연결할 수 없게 됩니다. 모든 것을 롤백할지 아니면 액세스할 수 없는 서브넷을 수정할지 결정해야 합니다. 이러한 결정을 내리는 동안 서브넷에는 계속 연결할 수 없습니다. 

 **이 모범 사례 수립의 이점:** 계획을 수립하면 변경에 실패하여 발생하는 평균 복구 시간(MTTR)이 줄어들어 최종 사용자에게 미치는 영향을 완화할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>
+  변경이 적절하지 못한 경우에 대한 계획 수립: 변경을 수행했는데 적절한 성과를 달성하는 데 도움이 되지 않는다면 알려진 정상 상태로 되돌릴 수 있는(변경 사항 롤백) 계획을 세우거나 프로덕션 환경에서 관련 문제를 해결합니다(변경 사항 롤포워드). 배포 실패 시 롤백할 수 없는 변경 사항이 확인되면 해당 변경 사항을 커밋하기 전에 적절한 판단에 따라 조치를 결정합니다. 

# OPS06-BP02 변경 사항 테스트 및 확인
<a name="ops_mit_deploy_risks_test_val_chg"></a>

 수명 주기의 모든 단계에서 변경 사항을 테스트하고 결과를 검증하여 새 기능을 확인하고 배포 실패의 영향과 위험을 최소화합니다. 

 AWS에서는 실험과 테스트의 위험, 작업량 및 비용을 줄일 수 있는 임시 병렬 환경을 생성할 수 있습니다. 이러한 환경의 배포를 [AWS CloudFormation](https://aws.amazon.com/cloudformation/) 을 사용하여 자동화하면 임시 환경을 일관되게 구현할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  애플리케이션에 새로운 기능을 배포합니다. 기능이 작동하지 않습니다. 모릅니다. 
+  인증서를 업데이트합니다. 잘못된 구성 요소에 실수로 인증서를 설치합니다. 모릅니다. 

 **이 모범 사례 정립의 이점:** 배포 후 변경 사항을 테스트하고 확인하면 문제를 조기에 식별하여 고객에게 미치는 영향을 완화할 수 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>
+  변경 사항 테스트 및 확인: 개발, 테스트, 프로덕션 등 수명 주기의 모든 단계에서 변경 사항을 테스트하고 결과를 검증하여 새 기능을 확인하고 배포 실패의 영향과 위험을 최소화합니다. 
  +  [AWS Cloud9](https://aws.amazon.com/cloud9/) 
  +  [AWS Cloud9란 무엇입니까?](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) 
  +  [코드 전달 전에 AWS CodeDeploy를 로컬로 테스트 및 디버깅하는 방법](https://aws.amazon.com/blogs/devops/how-to-test-and-debug-aws-codedeploy-locally-before-you-ship-your-code/) 

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

 **관련 문서:** 
+  [AWS Cloud9](https://aws.amazon.com/cloud9/) 
+  [AWS 개발자 도구](https://aws.amazon.com/products/developer-tools/) 
+  [코드 전달 전에 AWS CodeDeploy를 로컬로 테스트 및 디버깅하는 방법](https://aws.amazon.com/blogs/devops/how-to-test-and-debug-aws-codedeploy-locally-before-you-ship-your-code/) 
+  [AWS Cloud9란 무엇입니까?](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) 

# OPS06-BP03 배포 관리 시스템 사용
<a name="ops_mit_deploy_risks_deploy_mgmt_sys"></a>

 배포 관리 시스템을 사용하여 변경을 추적하고 구현합니다. 이렇게 하면 수동 프로세스에서 발생하는 오류와 변경 사항 배포를 위한 작업을 줄일 수 있습니다. 

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

 **일반적인 안티 패턴:** 
+  플릿 전체에서 애플리케이션 서버에 대한 업데이트를 수동으로 배포하면 업데이트 오류로 인해 여러 서버가 응답하지 않게 됩니다. 
+  여러 시간 동안 애플리케이션 서버 플릿에 수동으로 배포합니다. 변경 중 버전 불일치로 인해 예기치 않은 동작이 발생합니다. 

 **이 모범 사례 수립의 이점:** 배포 관리 시스템을 도입하면 변경 사항 배포를 위한 작업량과 수동 절차로 인한 오류 빈도가 줄어듭니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>
+  배포 관리 시스템 사용: 배포 관리 시스템을 사용하여 변경을 추적하고 구현합니다. 이렇게 하면 수동 프로세스에서 발생하는 오류와 변경 사항 배포를 위한 작업량을 줄일 수 있습니다. 코드 체크 인에서 테스트, 배포 및 확인까지의 전체 통합 및 배포 파이프라인을 자동화합니다. 이렇게 하면 리드 시간을 단축하고 변경을 더 자주 수행할 수 있으며 작업량을 더욱 줄일 수 있습니다. 
  +  [AWS CodeDeploy 소개 - Amazon Web Services를 통해 자동화된 소프트웨어 배포](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [AWS CodeDeploy란 무엇인가요?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
  +  [AWS Elastic Beanstalk란 무엇입니까?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
  +  [Amazon API Gateway란 무엇입니까?](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 

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

 **관련 문서:** 
+  [AWS CodeDeploy 사용 설명서](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [AWS 개발자 도구](https://aws.amazon.com/products/developer-tools/) 
+  [AWS CodeDeploy에서의 샘플 블루/그린 배포 시도](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
+  [AWS CodeDeploy란 무엇인가요?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [AWS Elastic Beanstalk란 무엇입니까?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
+  [Amazon API Gateway란 무엇입니까?](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 

 **관련 동영상:** 
+  [AWS를 사용한 고급 연속 딜리버리 기술의 심층 분석](https://www.youtube.com/watch?v=Lrrgd0Kemhw) 
+  [AWS CodeDeploy 소개 - Amazon Web Services를 통해 자동화된 소프트웨어 배포](https://www.youtube.com/watch?v=Wx-ain8UryM) 

# OPS06-BP04 제한된 배포를 사용하여 테스트
<a name="ops_mit_deploy_risks_test_limited_deploy"></a>

 전체 배포를 진행하기 전에 기존 시스템과 함께 제한된 배포를 사용해 테스트를 진행하여 원하는 결과를 달성할 수 있는지를 확인합니다. 예를 들어 Canary 배포 테스트나 원박스 배포를 사용합니다. 

 **일반적인 안티 패턴:** 
+  실패한 변경 사항을 모든 프로덕션에 한 번에 배포합니다. 모릅니다. 

 **이 모범 사례 정립의 이점:** 제한된 배포 후 변경 사항을 테스트하고 확인하면 고객에게 미치는 영향을 최소화하면서 문제를 조기에 식별하여 고객에게 미치는 영향을 더욱 완화할 수 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>
+  제한된 배포를 사용한 테스트: 전체 배포를 진행하기 전에 기존 시스템과 함께 제한된 배포를 사용하여 테스트를 진행하고 원하는 결과를 달성할 수 있는지를 확인합니다. 예를 들어 Canary 배포 테스트나 원박스 배포를 사용합니다. 
  +  [AWS CodeDeploy 사용 설명서](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
  +  [AWS Elastic Beanstalk를 통한 블루/그린 배포](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html) 
  +  [API Gateway Canary 릴리스 배포 설정](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html) 
  +  [AWS CodeDeploy에서의 샘플 블루/그린 배포 시도](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
  +  [AWS CodeDeploy에서 배포 구성 사용](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) 

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

 **관련 문서:** 
+  [AWS CodeDeploy 사용 설명서](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [AWS Elastic Beanstalk를 통한 블루/그린 배포](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html) 
+  [API Gateway Canary 릴리스 배포 설정](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html) 
+  [AWS CodeDeploy에서의 샘플 블루/그린 배포 시도](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
+  [AWS CodeDeploy에서 배포 구성 사용](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) 

# OPS06-BP05 병렬 환경을 사용하여 배포
<a name="ops_mit_deploy_risks_deploy_to_parallel_env"></a>

 병렬 환경에 변경 사항을 구현한 다음 새 환경으로 이전합니다. 배포가 정상 완료되었음이 확인될 때까지는 이전 환경을 유지합니다. 이렇게 하면 만일의 경우 이전 환경을 롤백할 수 있으므로 복구 시간을 최소화할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  기존 시스템을 수정하여 변경 가능한 배포를 수행합니다. 변경이 실패했음을 발견한 후에는 이전 버전 복원을 위해 시스템을 다시 수정하여 복구 시간을 연장해야 합니다. 
+  유지 관리 기간 동안 이전 환경을 폐기한 다음 새 환경 구축을 시작합니다. 절차를 몇 시간 진행한 상태에서 배포에서 복구할 수 없는 문제가 발견되었습니다. 매우 지친 상태에서 이전 배포 절차를 찾아 이전 환경을 다시 구축하기 시작해야 합니다. 

 **이 모범 사례 수립의 이점:** 병렬 환경을 사용하면 새 환경을 미리 배포하고 원하는 경우 해당 환경으로 전환할 수 있습니다. 새 환경이 성공적이지 않으면 원래 환경으로 다시 전환하여 신속하게 복구할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>
+  병렬 환경을 사용한 배포: 병렬 환경에 변경 사항을 구현한 다음 새로운 환경으로 이전하거나 전환할 수 있습니다. 배포가 정상 완료되었음이 확인될 때까지는 이전 환경을 유지합니다. 이렇게 하면 만일의 경우 이전 환경을 롤백할 수 있으므로 복구 시간을 최소화할 수 있습니다. 예를 들어 블루/그린 배포를 수행하여 변경 불가능한 인프라를 사용합니다. 
  +  [AWS CodeDeploy에서 배포 구성 사용](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) 
  +  [AWS Elastic Beanstalk를 통한 블루/그린 배포](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html) 
  +  [API Gateway Canary 릴리스 배포 설정](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html) 
  +  [AWS CodeDeploy에서의 샘플 블루/그린 배포 시도](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 

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

 **관련 문서:** 
+  [AWS CodeDeploy 사용 설명서](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [AWS Elastic Beanstalk를 통한 블루/그린 배포](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html) 
+  [API Gateway Canary 릴리스 배포 설정](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html) 
+  [AWS CodeDeploy에서의 샘플 블루/그린 배포 시도](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
+  [AWS CodeDeploy에서 배포 구성 사용](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) 

 **관련 동영상:** 
+  [AWS를 사용한 고급 연속 딜리버리 기술의 심층 분석](https://www.youtube.com/watch?v=Lrrgd0Kemhw) 

# OPS06-BP06 작게 자주 발생하고 되돌릴 수 있는 변경 내용 배포
<a name="ops_mit_deploy_risks_freq_sm_rev_chg"></a>

 되돌릴 수 있는 소규모 변경 작업을 자주 수행하면 변경의 범위가 감소합니다. 그러면 문제를 더 쉽게 해결할 수 있으며 변경 사항 롤백 옵션을 사용해 문제 해결 시간을 단축할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  분기별로 애플리케이션의 새 버전을 배포합니다. 
+  데이터베이스 스키마를 자주 변경합니다. 
+  수동 인 플레이스 업데이트를 수행하여 기존 설치 및 구성을 덮어씁니다. 

 **이 모범 사례 정립의 이점:** 작은 변경 사항을 자주 배포하여 개발 작업의 이점을 더 빠르게 파악합니다. 변경 사항이 작으면 의도하지 않은 결과가 있는지 파악하기가 훨씬 더 쉽습니다. 변경 사항을 되돌릴 수 있는 경우 복구가 간소화됨에 따라 변경 사항을 구현할 위험이 적습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>
+  되돌릴 수 있는 작은 단위의 변경 내용 자주 배포: 되돌릴 수 있는 작은 단위의 변경 내용을 자주 적용하면 변경 범위를 줄일 수 있습니다. 그러면 문제를 더 쉽게 해결할 수 있으며 변경 사항 롤백 옵션을 사용해 문제 해결 시간을 단축할 수 있습니다. 

# OPS06-BP07 통합 및 배포 완전 자동화
<a name="ops_mit_deploy_risks_auto_integ_deploy"></a>

 워크로드 빌드, 배포 및 테스트를 자동화합니다. 이렇게 하면 수동 프로세스에서 발생하는 오류와 변경 사항 배포를 위한 작업을 줄일 수 있습니다. 

 메타데이터를 [리소스 태그](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) 및 [AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/Welcome.html) 을 통해 적용하고, 일관된 [태깅 전략](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) 을 시행하면 리소스를 식별할 수 있습니다. 리소스에 조직, 비용 회계, 액세스 제어에 대한 리소스에 태그를 지정하여 자동화된 운영 활동을 실행할 대상을 설정합니다. 

 **일반적인 안티 패턴:** 
+  금요일에는 기능 브랜치에 대한 새 코드 작성을 마칩니다. 월요일에는 코드 품질 테스트 스크립트와 각 단위 테스트 스크립트를 실행한 후 예정된 다음 릴리스를 위해 코드를 체크인합니다. 
+  프로덕션 환경에서 많은 고객에게 영향을 미치는 중요한 문제에 대한 수정을 코딩해야 합니다. 수정 사항을 테스트한 후 코드 및 이메일 변경 관리를 커밋하여 프로덕션에 배포하기 위한 승인을 요청합니다. 

 **이 모범 사례 수립의 이점:** 자동화된 빌드 및 배포 관리 시스템을 구현하면 수동 프로세스로 인한 오류와 변경 사항 배포를 위한 작업이 줄어 팀원이 비즈니스 가치를 제공하는 데 집중할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>
+  빌드 및 배포 관리 시스템 사용: 빌드 및 배포 관리 시스템을 사용하면 변경 사항을 추적/구현하고, 수동 프로세스로 인해 발생하는 오류와 작업량을 줄일 수 있습니다. 코드 체크 인에서 빌드, 테스트, 배포 및 확인까지의 전체 통합 및 배포 파이프라인을 완전히 자동화합니다. 이렇게 하면 리드 시간을 단축하고 변경을 더 자주 수행할 수 있으며 작업량을 줄일 수 있습니다. 
  +  [AWS CodeBuild란 무엇입니까?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [소프트웨어 개발을 위한 지속적 통합 모범 사례](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: AWS의 서버리스 애플리케이션용 CI/CD](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [AWS CodeDeploy 소개 - Amazon Web Services를 통해 자동화된 소프트웨어 배포](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [AWS CodeDeploy란 무엇입니까?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
  +  [AWS를 사용한 고급 지속적 전달 기술 심층 분석](https://www.youtube.com/watch?v=Lrrgd0Kemhw) 

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

 **관련 문서:** 
+  [AWS CodeDeploy에서의 샘플 블루/그린 배포 시도](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html) 
+  [AWS CodeBuild란 무엇입니까?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [AWS CodeDeploy란 무엇입니까?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **관련 동영상:** 
+  [소프트웨어 개발을 위한 지속적 통합 모범 사례](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [AWS를 사용한 고급 지속적 전달 기술 심층 분석](https://www.youtube.com/watch?v=Lrrgd0Kemhw) 
+  [AWS CodeDeploy 소개 - Amazon Web Services를 통해 자동화된 소프트웨어 배포](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: AWS의 서버리스 애플리케이션용 CI/CD](https://www.youtube.com/watch?v=tEpx5VaW4WE) 

# OPS06-BP08 테스트 및 롤백 자동화
<a name="ops_mit_deploy_risks_auto_testing_and_rollback"></a>

 배포된 환경의 테스트를 자동화하여 원하는 성과를 달성할 수 있는지를 확인합니다. 원하는 결과를 달성할 수 없는 경우 알려진 정상 상태로 롤백하는 과정을 자동화하면 수동 프로세스에서 발생하는 오류를 줄이고 복구 시간을 최소화할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  변경 사항을 워크로드에 배포합니다. 변경 사항이 완료되면 배포 후 테스트를 시작합니다. 작업이 완료되면 워크로드가 작동하지 않으며 고객 연결이 끊어짐을 알게 됩니다. 그런 다음 이전 버전으로 롤백을 시작합니다. 문제 감지에 시간이 오래 걸리면 수동 재배포에 의해 복구 시간이 연장됩니다. 

 **이 모범 사례 수립의 이점:** 배포 후 변경 사항을 테스트하고 검증하면 문제를 즉시 식별할 수 있습니다. 이전 버전으로 자동 롤백하면 고객에게 미치는 영향이 최소화됩니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>
+  테스트 및 롤백 자동화: 배포된 환경에서 테스트를 자동화하여 원하는 성과를 달성할 수 있는지를 확인합니다. 원하는 결과를 달성할 수 없는 경우 알려진 정상 상태로 롤백하는 과정을 자동화하면 수동 프로세스에서 발생하는 오류를 줄이고 복구 시간을 최소화할 수 있습니다. 예를 들어 배포 후에 세부 통합 사용자 트랜잭션을 수행하여 결과를 확인한 후 트랜잭션이 실패했다면 변경을 롤백합니다. 
  +  [AWS CodeDeploy로 재배포 및 배포 롤백](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-rollback-and-redeploy.html) 

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

 **관련 문서:** 
+  [AWS CodeDeploy로 재배포 및 배포 롤백](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-rollback-and-redeploy.html) 