Skip to main content
QUICK REVIEW

[논문 리뷰] Terraform -- Automating Infrastructure as a Service

Michael Howard|arXiv (Cornell University)|2022. 05. 21.
Software System Performance and Reliability인용 수 9
한 줄 요약

이 논문은 HashiCorp Configuration Language(HCL)로 작성된 인간이 읽을 수 있는 설정 파일을 통해 클라우드 및 온프레미스 인프라를 선언적이고, 버전 관리 가능한 방식으로 프로비저닝할 수 있도록 해주는 Infrastructure as Code(IaC) 도구인 Terraform을 제시한다. 프로바이더 플러그인을 통해 인프라 정의를 실행 구현에서 분리함으로써 Terraform은 다수의 클라우드 제공업체 간에 이식 가능하고, 동일성 보장되며, 감사 가능성이 있는 인프라 관리를 가능하게 하여 수동 오류를 줄이고 DevOps 최적 실천 방식을 인프라 라이프사이클 관리에 통합한다.

ABSTRACT

Developing a software service requires a strict software development life cycle and process. This process demands controlling all application code through source control management as well as a rigorous versioning and branching strategy. However, the platform and infrastructure also benefit from this rigor. Software services must be deployed to a target run time environment and provisioning that environment through manual user actions is tedious and error-prone. Provisioning manually also becomes prohibitive as the number of resources grow and spread globally over multiple regions. The answer is to apply the same rigor to provisioning the infrastructure as applied to developing the application software. Terraform provides a platform allowing infrastructure resources to be defined in code. This code not only allows the automation of the infrastructure provisioning but also allows for a strict development and review life cycle, same as the application software.

연구 동기 및 목표

  • 클라우드 환경에서 수동이고 실수를 유발하기 쉬운 인프라 프로비저닝의 과제를 해결하기 위해.
  • 버전 관리, 분기, 코드 리뷰와 같은 소프트웨어 개발 최적 실천 방식을 인프라 관리에 적용하기 위해.
  • 다수의 클라우드 제공업체 간에 이식 가능하고, 동일성 보장되며, 감사 가능성이 있는 인프라 프로비저닝을 가능하게 하기 위해.
  • 프로바이더 플러그인을 통해 인프라 API를 추상화함으로써 벤더 종속성을 줄이기 위해.
  • 인프라 프로비저닝을 보다 넓은 DevOps 및 CI/CD 워크플로우에 통합하기 위해.

제안 방법

  • HashiCorp Configuration Language(HCL)로 작성된 선언적 설정 파일을 사용해 인프라 리소스를 정의하는 방식.
  • 쓰기(설정 파일 작성), 계획(실행 계획 생성), 적용(클라우드 제공업체 대상으로 작업 실행)의 세 단계 워크플로우를 사용하는 방식.
  • AWS, Azure, VMware와 같은 클라우드 플랫폼의 벤더별 API 호출로 HCL 리소스 블록을 변환하기 위해 프로바이더 플러그인을 활용하는 방식.
  • 현재 인프라 상태를 추적하고 동일성 보장된 작업을 가능하게 하기 위해 로컬 또는 원격에 상태 파일을 유지하는 방식.
  • 다양한 프로그래밍 언어를 지원하는 Cloud Development Kit(CDK)를 통해 고수준 언어 기반의 인프라 작성 기능을 제공하는 방식.
  • 원하는 인프라 상태를 기술하는 선언적 모델을 사용하여, 이를 달성하기 위한 단계별 절차를 기술하지 않는 방식.

실험 결과

연구 질문

  • RQ1다양한 클라우드 제공업체 간에 이식 가능성을 유지하면서 코드 기반으로 인프라 프로비저닝을 자동화할 수 있는 방법은 무엇인가?
  • RQ2버전 관리 및 코드 리뷰와 같은 소프트웨어 개발 라이프사이클 실천 방식을 인프라 관리에 적용할 경우의 이점은 무엇인가?
  • RQ3선언적 설정 언어가 인프라 프로비저닝의 신뢰성과 유지보수성에 어떻게 기여하는가?
  • RQ4Terraform이 벤더 종속성을 얼마나 줄이고 인프라의 이식 가능성을 향상시킬 수 있는가?
  • RQ5Terraform의 워크플로우가 AWS CloudFormation이나 OpenStack Heat와 비교할 때 다중 클라우드 지원 및 확장성 측면에서 어떻게 다른가?

주요 결과

  • Terraform은 HCL로 작성된 선언적 설정 파일을 통해 버전 관리, 동료 검토, 인프라 코드의 자동화된 테스팅이 가능한 인프라 프로비저닝을 가능하게 한다.
  • 쓰기, 계획, 적용의 세 단계 워크플로우는 구성 정의와 실행을 분리함으로써 안전하고 예측 가능하며 감사 가능한 인프라 변경을 가능하게 한다.
  • 프로바이더 플러그인은 클라우드 제공업체 간의 차이를 추상화하여 AWS, Azure, VMware 및 기타 플랫폼 간에 일관된 인프라 관리를 가능하게 한다.
  • 상태 파일은 현재 인프라 상태를 추적함으로써 업데이트 중에 의도하지 않은 변경을 방지함으로써 동일성 보장을 보장한다.
  • Terraform의 Cloud Development Kit(CDK) 통합 기능을 통해 개발자는 다섯 가지 주요 고수준 프로그래밍 언어를 사용해 인프라를 정의할 수 있어 개발 생산성을 향상시킬 수 있다.
  • AWS CloudFormation이나 OpenStack Heat와 달리 Terraform은 다중 클라우드 및 하이브리드 환경을 지원하여 단일 클라우드 제공업체의 생태계에 대한 의존도를 낮춘다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.