IWished
article thumbnail
Published 2023. 5. 22. 18:22
Configuration Drift IaC

Configuration Drift

Configuration Drift는 시간이 흐르면서 시스템이나 애플리케이션, 서버, 인프라, 하드웨어 등의 실제 구성이 의도하거나 원하는 구성과 달라지는 현상을 말한다.

이는 소프트웨어 업데이트, 사용자나 관리자에 의한 변경, 하드웨어 오류 또는 네트워크 문제 등 다양한 요인으로 인해 발생한다.

 

시스템이나 애플리케이션을 처음 설정할 때는 일반적으로 특정 요구 사항이나 표준을 충족하도록 구성된다.

이 구성에서는 보안, 성능, 호환성 또는 시스템이 제대로 작동하는 데 중요한 요소와 태그 등 작동과는 상관 없는 설정이 포함될 수 있다.

시간이 지나고 시스템이나 애플리케이션이 사용되고 발전함에 따라 구성이 변경되어 원래 의도한 상태에서 벗어날 수 있다.

이처럼 예상치 못한 인프라 변경에 대한 사고와 미치는 영향Configuration Drift라고 부른다.

어떻게 알아내고, 어떻게 고칠까?

이를 알아내는 방법은 접근 방법에 따라 조금씩 다르다. AWS를 예로 접근 방법과, 도구를 알아보자.

  • 잘못 설정된 것을 찾기 위한 도구 : AWS Config
    • 바른 설정을 지정해 놓고, 찾고 고칠 수 있게 만들어준다.
  • 사고 감지 도구 : AWS CloudFormation Drift Detection

이러한 관리형 서비스 외에 보다 개발 방법에 가까운 솔루션은 다음과 같다.

  • 정상 작동 상태를 파일로 저장 : Terraform state files

Terraform의 상태 정의 파일은 인프라의 실제 상태와의 비교 대상으로서 현재 상황을 진단/점검할 수 있다.

어떻게 방지할까?

불변한(Immutable) 인프라스트럭처는 인프라 변경을 원천적으로 막을 수 있는 방법론이다.

실제로 인프라를 수동 설정으로 변경할 수 있지만, 다음의 실천적인 방법을 통해 애초에 그 가능성을 막는 것이다.

원칙들은 다음과 같다.

1. 한번 생성했으면 수정하지 않는다.

  • 프로비저닝 및 배포했으면, 콘솔에 접속해서 수동으로 설정하지 않는다.
  • 즉, 변경은 삭제 후 생성을 의미한다.

2. 인스턴스 내부 구성(사용자 스크립트 등)이 필요할 경우 AMI로 만들어 놓는다.

  • 즉, DevOps → Deploy → Configure가 아닌,
    Develop → Configure → Deploy여야 한다.

3. 코드형 인프라(IaC)를 사용한다.

'IaC' 카테고리의 다른 글

What is IaC  (0) 2023.05.22