티스토리 뷰

카테고리 없음

테라폼의 구조와 특징

미리별투어 2022. 11. 15. 19:05
반응형

테라폼이란?

테라폼이란? 테라폼은 DevOps 엔지니어가 애플리케이션 실행에 필요한 물리적 리소스를 프로그래밍 방식으로 프로비저닝할 수 있는 코드 소프트웨어 도구로서의 오픈 소스 인프라입니다. Infrastructure as code는 프로그래밍을 통해 애플리케이션의 기본 IT 인프라를 관리하는 IT 관행입니다. 이러한 자원 할당 방식을 통해 개발자는 자원을 논리적으로 관리, 감시 및 프로비저닝할 수 있습니다. 이는 운용팀이 필요한 자원을 일일이 수동으로 구성할 필요가 있는 것과는 다릅니다. 테라폼 사용자는 HCL이라는 JSON과 같은 구성 언어를 사용하여 인프라 구성을 정의하고 적용합니다. HCL의 단순한 구문 덕분에 DevOps 팀은 여러 클라우드 및 사내 데이터 센터에 걸쳐 인프라를 쉽게 프로비저닝하고 재프로비저닝할 수 있습니다. HashiCorp은 테라폼 엔터프라이즈라고 불리는 테라폼의 상용 버전을 제공합니다. HashiCorp 웹사이트에 따르면 상용 버전은 오픈 소스 테라폼 위에 엔터프라이즈 기능을 포함하고 있으며 코드로서 정책을 구현할 수 있는 Sentinel이라는 프레임워크를 포함하고 있습니다. 그렇다면 본격적으로 테라폼의 구조에 대해서 알아보겠습니다. 테라폼을 사용하면 구성 파일과 버전 제어를 사용하여 인프라스트럭처 전체를 정의할 수 있습니다. 서버, 데이터베이스 또는 로드밸런서를 전개 및 실행하는 명령어가 지정되면 테라폼은 코드를 해석하여 자원 공급자에 대한 응용 프로그램프로그래밍 인터페이스 호출로 변환합니다. 테라폼은 오픈 소스이기 때문에 개발자는 항상 새로운 플러그인을 작성하거나 기존 플러그인의 다른 버전을 컴파일함으로써 툴의 유용성을 확장할 수 있습니다. 테라폼에는 2개의 중요한 컴포넌트가 있습니다. 바로 테라폼 코어와 테라폼 플러그인입니다. 먼저 테라폼 코어는 리소스 계획 실행, 리소스 그래프, 상태 관리 기능 및 구성 파일의 읽기 및 보간을 감독합니다. 코어는 Go 프로그래밍 언어로 작성된 컴파일된 바이너리로 구성됩니다. 컴파일된 각 바이너리는 리모트 프로시저 콜을 통해 플러그인과 통신하기 위한 명령줄 인터페이스로서 기능합니다. 그리고 테라폼 플러그인은 특정 서비스에 대한 리소스 정의를 담당합니다. 여기에는 인프라스트럭처 프로바이더의 인증과 API 호출에 사용되는 라이브러리의 초기화가 포함됩니다. 테라폼 플러그인은 Go에서 특정 서비스 또는 프로비저닝자로 사용할 수 있는 실행 가능한 바이너리로 작성됩니다. 이러한 테라폼은 무엇에 사용될까요? 첫번째로 외부 자원 관리에 사용됩니다. 테라폼은 퍼블릭 및 프라이빗 클라우드 인프라스트럭처뿐만 아니라 네트워크 어플라이언스 및 SaaS 도입을 지원합니다. 그리고 멀티 클라우드 도입를 도입합니다. 여러 클라우드 서비스를 지원하는 소프트웨어 툴의 기본 기능을 통해 내결함성을 높일 수 있습니다. 다음으로 다중 계층 응용프로그램입니다. 테라폼을 사용하면 각 리소스 수집을 필요에 따라 쉽게 확장하거나 축소할 수 있습니다. 그리고 셀프 서비스 클러스터입니다. 레지스트리를 사용하면 현재 사용하거나 특정 요구에 맞게 수정할 수 있는 사전 패키지 구성을 쉽게 찾을 수 있습니다. 더불어 소프트웨어 정의 네트워크입니다. 테라폼의 가독성을 통해 네트워크 엔지니어는 SDN 구성을 쉽게 코드화할 수 있습니다. 다음으로 리소스 스케줄러입니다. 테라폼 모듈은 AWS에서 리소스를 중지 및 시작하고 쿠버네티스가 도커 컨테이너를 예약할 수 있습니다. 마지막으로 욀회용 환경입니다. 코드를 실제 가동하기 전에 모듈을 사용하여 임시 일회용 테스트 환경을 만들 수 있습니다. 이러한 테라폼의 특징은 어떻게 될까요? 테라폼은 운영자에게 리소스 종속성에 대한 통찰력을 제공하는 그래프 데이터베이스를 구축하여 작동합니다. 또한, 테라폼이 설정이 적용되거나 변경되었을 때 어떤 절차를 밟을 것인지 운영자가 확인할 수 있는 실행 계획도 생성한다. 또한, 테라폼 소프트웨어에는 다음이 포함됩니다. 사용자가 숫자, 문자열, 날짜 및 시간, 수집 및 인코딩 기능과 같은 기능을 관찰할 수 있는 콘솔입니다. 그리고 보간을 지원하고 관리자가 일련의 작업을 수행하기 위한 문자열로서 기능을 전달할 수 있도록 하는 구성 언어와 HCL 코드를 JSON 형식으로 변환하는 기능 및 모듈 수라고 불리는 기능으로 인프라스트럭처에 적용된 모듈의 수를 지정합니다. 이러한 테라폼을 대체할 수 있는 툴로는 펄루미와 솔트스택이 있습니다. 펄루미는 테라폼에서 사용자를 이동시키기 위해 특별히 제작된 도구 세트를 사용하여 설계된 코드로서의 인프라의 업스타트입니다. 펄루미는 쿠버네티스와 같은 클라우드 네이티브 플랫폼을 지원하며 크로스가드와 같은 테라폼과 유사한 기능을 추가합니다. 이 소프트웨어는 GitOps 워크플로우 및 자동화된 테스트 프레임워크를 위한 CI/CD 도구와도 통합됩니다. 테라폼과의 주요 차이점은 사용되는 언어입니다. 테라폼은 도메인 고유의 HCL을 사용하는 반면 펄루미는 자바스크립트, TypeScript 및 Python, Go 및 와 같은 보다 주류 프로그래밍 언어를 사용합니다. 솔트스택은 이벤트 기반 자동화 및 IaC 툴로 IT 조직이 클라우드 인프라를 관리하고 보호할 수 있도록 지원합니다. 이 도구를 사용하여 엔터프라이즈 DevOps 워크플로우의 효율적인 조정을 자동화할 수 있습니다. 솔트스택의 기능에는 자동화된 프로비저닝, 네트워크 프로비저닝, 스케줄링, 디바이스 구성 유지 보수 자동화 및 모바일 디바이스로부터의 원격 액세스가 포함됩니다. 지금까지 테라폼의 구조와 특징에 대해서 설명해드렸습니다.

반응형
댓글