

# OPS05-BP03 구성 관리 시스템 사용
<a name="ops_dev_integ_conf_mgmt_sys"></a>

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

 정적 구성 관리는 리소스를 초기화할 때 리소스 수명 주기 전체에 걸쳐 일관성을 유지할 것으로 예상되는 값을 설정합니다. 예를 들어, 인스턴스의 웹 또는 애플리케이션 서버의 구성을 설정하거나 [AWS Management Console](https://docs.aws.amazon.com/awsconsolehelpdocs/index.html) 또는 [AWS 내에서 AWS 서비스 구성을 정의하는 작업이 포함됩니다](https://aws.amazon.com/cli/). 

 동적 구성 관리는 초기화 시 리소스 수명 주기 동안 변경될 수 있거나 변경될 것으로 예상되는 값을 설정합니다. 예를 들어, 구성 변경을 통해 코드의 기능을 활성화하도록 기능 전환을 설정하거나, 인시던트 중에 로그 세부 정보 수준을 변경하여 더 많은 데이터를 캡처하고 나서 인시던트 이후에 다시 변경함으로써 불필요한 로그와 관련 비용이 발생하지 않도록 할 수 있습니다. 

 AWS에서는 [AWS Config를 사용하여](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 계정과 리전 전반에서 AWS 리소스 구성을 [지속적으로 모니터링할 수 있습니다](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). 이를 통해 구성 이력을 추적하고, 구성 변경이 다른 리소스에 어떤 영향을 미치는지 이해하며, 그리고 [AWS Config 규칙](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) 및 [AWS Config 규정 준수 팩을 사용해 예상 또는 원하는 구성과 비교하여 감사합니다](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html). 

 Amazon EC2인스턴스, AWS Lambda, 컨테이너, 모바일 애플리케이션 또는 IoT 기기에서 실행되는 애플리케이션에 동적 구성이 있는 경우 [AWS AppConfig를](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 사용하여 환경 전반에서 애플리케이션을 구성, 검증, 배포 및 모니터링할 수 있습니다. 

 AWS에서는 다음과 같은 서비스를 사용하여 지속적 통합 및 지속적 배포(CI/CD) 파이프라인을 구축할 수 있습니다. [AWS 개발자 도구](https://aws.amazon.com/products/developer-tools/) (예를 들면 다음과 같습니다. [AWS CodeCommit](https://aws.amazon.com/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) 파이프라인의 일부로 구성, 검증 및 배포합니다. 모니터링하여 구성이 올바른지 확인합니다. 이를 통해 최종 사용자와 고객에게 미치는 영향을 최소화할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  플릿 전체에서 웹 서버 구성을 수동으로 업데이트하면 업데이트 오류로 인해 여러 서버가 응답하지 않게 됩니다. 
+  여러 시간 동안 애플리케이션 서버 플릿을 수동으로 업데이트합니다. 변경 중 구성 불일치로 인해 예기치 않은 동작이 발생합니다. 
+  누군가가 보안 그룹을 업데이트했으며 웹 서버에 더 이상 액세스할 수 없습니다. 변경된 사항을 알지 못하면 문제를 조사하는 데 상당한 시간이 들어서 복구 시간이 늘어납니다. 
+  검증 없이 CI/CD를 통해 사전 프로덕션 구성을 프로덕션 환경으로 푸시합니다. 사용자와 고객을 잘못된 데이터와 서비스에 노출시킵니다. 

 **이 모범 사례 확립의 이점:** 구성 관리 시스템을 도입하면 변경 수행 및 추적을 위한 작업량과 수동 절차로 인한 오류 발생 빈도가 줄어듭니다. 구성 관리 시스템은 거버넌스, 규정 준수 및 규제 요구 사항과 관련하여 보증을 제공합니다. 

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

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

 구성 관리 시스템은 애플리케이션 및 환경 구성의 변경 사항을 추적하고 구현하는 데 사용됩니다. 또한 구성 관리 시스템은 수동 프로세스로 인한 오류를 줄이고, 구성 변경을 반복 및 감사할 수 있도록 하며, 작업량을 감소시킵니다. 

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

1.  구성 소유자를 식별합니다. 

   1.  구성 소유자에게 모든 규정 준수, 거버넌스 또는 규제 요구 사항을 알립니다. 

1.  구성 항목 및 결과물을 식별합니다. 

   1.  구성 항목은 CI/CD 파이프라인 내 배포의 영향을 받는 모든 애플리케이션 및 환경 구성입니다. 

   1.  결과물에는 성공 기준, 검증, 모니터링 대상 등이 포함됩니다. 

1.  비즈니스 요구 사항 및 제공 파이프라인에 따라 구성 관리를 위한 도구를 선택합니다. 

1.  잘못된 구성으로 인한 영향을 최소화하기 위해 중요한 구성 변경의 경우 카나리 배포와 같은 가중치 기반 배포를 고려하세요. 

1.  구성 관리를 CI/CD 파이프라인에 통합합니다. 

1.  푸시된 모든 변경 사항을 확인합니다. 

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

 **관련 모범 사례:** 
+  [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_auto_testing_and_rollback.md) 

 **관련 문서:** 
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
+ [AWS Landing Zone Accelerator ](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/)
+ [AWS Config](https://aws.amazon.com/config/)
+ [AWS Config란 무엇인가요? ](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+  [AWS AppConfig를](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+ [AWS CloudFormation란 무엇인가요? ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+  [AWS 개발자 도구](https://aws.amazon.com/products/developer-tools/) 

 **관련 동영상:** 
+ [AWS re:Invent 2022 - Proactive governance and compliance for AWS workloads ](https://youtu.be/PpUnH9Y52X0?si=82wff87KHXcc6nbT)
+ [AWS re:Invent 2020: Achieve compliance as code using AWS Config](https://youtu.be/m8vTwvbzOfw?si=my4DP0FLq1zwKjho)
+ [AWS AppConfig를 사용하여 애플리케이션 구성 관리 및 배포 ](https://youtu.be/ztIxMY3IIu0?si=ovYGsxWOBysyQrg0)