코드형 인프라

DevOps의 기본 원칙은 개발자가 코드를 처리하는 것과 동일한 방식으로 인프라를 처리하는 것입니다. 애플리케이션 코드에는 정의된 형식과 구문이 있습니다. 프로그래밍 언어의 규칙에 따라 코드를 작성하지 않으면 애플리케이션을 만들 수 없습니다. 코드는 코드 개발, 변경 및 버그 수정 기록을 기록하는 버전 관리 또는 소스 제어 시스템에 저장됩니다. 코드를 컴파일하거나 애플리케이션에 구축하면 일관된 애플리케이션 생성과 반복 가능하고 신뢰할 수 있는 구축을 보장할 수 있습니다.

코드형 인프라를 실행한다는 것은 이와 같은 엄격한 애플리케이션 코드 개발을 인프라 프로비저닝에도 적용한다는 것을 의미합니다. 모든 구성은 선언적 방식으로 정의되어야 하며 애플리케이션 코드와 마찬가지로 AWS CodeCommit과 같은 소스 제어 시스템에 저장되어야 합니다. 인프라 프로비저닝, 오케스트레이션 및 배포도 코드형 인프라 사용을 지원해야 합니다.

인프라는 전통적으로 스크립트와 수동 프로세스의 조합을 사용하여 프로비저닝되었습니다. 때때로 이러한 스크립트는 버전 관리 시스템에 저장되거나 텍스트 파일이나 런북에 단계별로 문서화되었습니다. 런북을 작성하는 사람과 이러한 스크립트를 실행하거나 런북의 단계를 수행하는 사람이 동일인이 아닌 경우가 많습니다. 이러한 스크립트 또는 런북을 자주 업데이트하지 않으면 배포에 중대한 영향을 주는 문제로 발전할 수 있습니다. 이로 인해 새로운 환경의 생성이 항상 반복 가능하거나 신뢰할 수 있거나 일관성이 있는 것이 아니게 됩니다.

앞서 설명한 것과 달리 AWS는 DevOps 중심의 인프라 생성 및 유지 관리 방법을 제공합니다. 소프트웨어 개발자가 애플리케이션 코드를 작성하는 방식과 유사하게 AWS는 프로그래밍 방식, 설명 및 선언 방식으로 인프라를 생성, 배포 및 유지 관리할 수 있는 서비스를 제공합니다. 이러한 서비스는 엄격하고 명확하며 신뢰성을 제공합니다. 이 백서에서 설명하는 AWS 서비스는 DevOps 방법론의 핵심이며, 여러 상위 수준의 AWS DevOps 원칙 및 사례의 토대가 됩니다.

AWS는 코드형 인프라를 정의하기 위해 다음과 같은 서비스를 제공합니다.