홈
topics
Terraform이란?
HashiCorp에서 만든 오픈 소스 "코드형 인프라" 도구인 Terraform을 사용하면 프로그래머가 인프라를 안전하고 효율적으로 구축, 변경 및 버전화할 수 있습니다.
Terraform은 개발자가 HashiCorp 구성 언어(HCL)라는 고급 구성 언어를 사용하여 애플리케이션 실행에 필요한 “최종 상태” 클라우드 또는 온프레미스 인프라를 설명할 수 있도록 하는 선언적 코딩 도구입니다. 그런 다음 해당 최종 상태에 도달하기 위한 계획을 생성하고 인프라 프로비저닝 계획을 실행합니다.
Terraform은 간단한 구문을 사용하고, 여러 클라우드 및 온프레미스 데이터 센터에 인프라를 프로비저닝하고, 구성 변경에 대응하여 인프라를 안전하고 효율적으로 다시 프로비저닝합니다. 이것이 바로 Terraform이 현재 가장 널리 사용되는 인프라 자동화 도구 중 하나인 이유입니다. 조직에서 하이브리드 클라우드 또는 멀티클라우드 환경을 배포할 계획이라면 Terraform에 대해 관심을 가지거나 알아야 할 필요가 있습니다.
서비스형 데스크톱(DaaS)을 통해 기업이 온프레미스에 애플리케이션을 배포하는 것과 동일한 수준의 성능과 보안을 달성할 수 있는 방법을 알아보세요.
Terraform의 장점을 더 잘 이해하려면 먼저 코드형 인프라(IaC)의 이점을 이해하는 것이 좋습니다. IaC를 통해 개발자는 프로비저닝을 자동화하고, 더 빠르고, 반복 가능한 방식으로 인프라를 코드화할 수 있습니다. 이는 버전 제어, 지속적인 통합 및 지속적인 배포와 같은 애자일 및 DevOps 사례의 핵심 구성 요소입니다.
코드형 인프라는 다음과 같은 이점을 제공합니다.
개발자가 다른 코드형 인프라 도구보다 Terraform을 사용하기로 선택하는 몇 가지 주요 이유가 있습니다.
Terraform 모듈은 함께 사용되는 여러 인프라 리소스를 위한 재사용 가능한 소규모 Terraform 구성입니다. Terraform 모듈은 재사용 가능하고 구성 가능한 구조로 복잡한 리소스를 자동화할 수 있기 때문에 유용합니다. 매우 간단한 Terraform 파일이라도 작성하면 모듈이 생성됩니다. 모듈은 하위 모듈이라고 하는 다른 모듈을 호출할 수 있으며, 이를 통해 구성을 더 빠르고 간결하게 만들 수 있습니다. 모듈은 동일한 구성 내에서 또는 별도의 구성으로 여러 번 호출될 수도 있습니다.
Terraform 공급자는 리소스 유형을 구현하는 플러그인입니다. 공급자에는 사용자를 대신하여 일반적으로 퍼블릭 클라우드 공급자의 서비스를 인증하고 연결하는 데 필요한 모든 코드가 포함되어 있습니다. 사용 중인 클라우드 플랫폼 및 서비스에 대한 공급자를 찾아 구성에 추가한 다음 해당 리소스를 사용하여 인프라를 프로비저닝할 수 있습니다. 공급자는 거의 모든 주요 클라우드 공급자, SaaS 제품 등에서 사용할 수 있으며, Terraform 커뮤니티 또는 개별 조직에서 개발 및/또는 지원합니다. 자세한 목록은 Terraform 설명서(ibm.com 외부 링크)를 참조하세요.
때로는 Terraform과 Kubernetes가 수행하는 작업이 혼동되는 경우가 있습니다. 사실 이 둘은 대안이 아니며 함께 효과적으로 작동합니다.
Kubernetes는 개발자가 컴퓨팅 클러스터의 노드에 배포를 예약하고 컨테이너화된 워크로드를 적극적으로 관리하여 상태가 사용자의 의도와 일치하도록 할 수 있는 오픈 소스 컨테이너 오케스트레이션 시스템입니다.
Terraform은 더 광범위한 범위의 코드형 인프라 도구로, 개발자가 여러 퍼블릭 클라우드와 프라이빗 클라우드에 걸쳐 있는 전체 인프라를 자동화할 수 있습니다.
Terraform은 서비스형 인프라(IaaS), 서비스형 플랫폼(PaaS), 심지어 서비스형 소프트웨어(SaaS) 수준의 기능을 자동화 및 관리하고 모든 공급자에서 이러한 모든 리소스를 동시에 구축할 수 있습니다. Terraform을 사용하여 클라우드 플랫폼에서 Kubernetes, 특히 관리되는 Kubernetes 클러스터의 프로비저닝을 자동화하고 클러스터에 애플리케이션을 배포하는 작업을 자동화할 수 있습니다.
Terraform과 Ansible은 모두 코드형 인프라 도구이지만 둘 사이에는 몇 가지 중요한 차이점이 있습니다.
IBM Cloud Schematics는 원하는 클라우드 인프라를 위한 선언적 Terraform 템플릿을 제공하여 자동화를 제공합니다.
코드형 인프라(IaC)는 인프라 프로비저닝을 자동화하여 조직이 더 빠른 속도, 더 적은 위험, 더 낮은 비용으로 클라우드 애플리케이션을 개발, 배포, 확장할 수 있도록 지원합니다.
Kubernetes는 애플리케이션의 배포, 관리 및 확장을 자동화하는 오픈 소스 컨테이너 오케스트레이션 플랫폼입니다. Kubernetes가 어떻게 비용 효율적인 클라우드 네이티브 개발을 가능하게 하는지 알아보세요.
IaaS, 해당 구성 요소, 장점, 가격 및 PaaS, SaaS, BMaaS, 컨테이너 및 서버리스와의 관계를 소개합니다.