Community

앤서블(Ansible)과 테라폼(Terraform)의 차이를 알아봅시다.

오랜만에 만난 고객께서 앤서블과 테라폼의 차이에 대해 문의하셔서, 해당 기사 포스팅합니다. 🌈 Ansible vs. Terraform Demystified(이해하기 쉽게 해 주기?) ❗️결론(Spoiler?): 이 2개의 도구는 같이 사용하면 더 좋으며, 조화롭게 작동하여 개발팀 운영팀에게 더 나은 경험을 제공할 수 있습니다. 이 기사는 앤서블과 테라폼, 오픈 소스 프로젝트 및 다운스트림 엔터프라이즈 제품 간의 차이점과 유사점을 살펴보겠습니다. 🚩 테라폼이란? - 테라폼은 HashiCorp에서 후원하는 오픈 소스 프로젝트이며, HashiCorp에서 제품화된 여러 오픈 소스 프로젝트 중 하나입니다. 다른 프로젝트로는 Vagrant, Packer, Consul 및 Vault가 있습니다. - HashiCorp는 프로젝트와 제품이 단순하고 모듈식이며 구성 가능하기를 원하는 HashiCorp의 Tao라는 디자인 철학을 가지고 있습니다. 이 경우 각 프로젝트 및 제품 페어링에는 범위가 잘 정의되어 있으며 더 큰 워크플로우의 경우 여러 프로젝트와 제품을 결합합니다. - 그들은 다음과 같은 목적으로 테라폼을 정의합니다. > 테라폼은 HashiCorp에서 제공하는 IaC입니다. > 안전하고 반복 가능한 방식으로 인프라를 구축, 변경 및 관리하기 위한 도구입니다. > 운영팀 및 인프라 팀은 Terraform을 사용하여 사람이 읽을 수 있고 자동화된 배포를 위해 HCL(HashiCorp 구성 언어)이라는 구성 언어로 환경을 관리할 수 있습니다. > 테라폼은 주로 CLI 전용이지만 널리 사용되는 퍼블릭 클라우드 집합과 잘 통합됩니다. > 테라폼은 고정된 클라우드 인프라 세트를 프로비저닝하고 나중에 해체하는 데 탁월합니다. > HashiCorp는 고객을 위해 테라폼의 두 가지 제품화 방법을 제공합니다. 고객은 Terraform Enterprise로 사용자 지정 배포를 자체 관리하거나 관리 서비스인 Terraform Cloud를 사용할 수 있습니다. 비즈니스 계층은 drift 감지, SSO 감사(audit) 로그, 자체 호스팅 에이전트 및 사용자 지정 동시성을 제공합니다. 🚩 앤서블이란? - 앤서블은 IT 자동화 도구입니다. 시스템을 구성하고, 소프트웨어를 배포하고, 지속적인 배포 또는 다운타임 없는 롤링 업데이트와 같은 고급 IT 작업을 오케스트레이션할 수 있습니다. - 대부분의 사람들은 Ansible 플레이북을 실행하기 위한 명령줄 도구인 커뮤니티 Ansible에 익숙합니다. - 테라폼과 마찬가지로 앤서블은 단순성과 사용 편의성에 중점을 둡니다. - 앤서블은 앤서블 플레이북에 YAML 구문을 사용합니다. YAML을 사용하는 이유는 XML이나 JSON과 같은 다른 일반적인 데이터 형식보다 사람이 읽고 쓰기가 더 쉽기 때문입니다. - Red Hat Ansible Automation Platform은 고객에게 제공되는 제품입니다. > 수많은 엔터프라이즈 기능을 갖춘 Ansible 기반 위에 구축되어 12개 이상의 업스트림 프로젝트를 통합되고 간소화된 제품으로 결합합니다. > 각 제품 구성 요소에는 HashiCorp의 디자인 철학과 유사한 범위가 잘 정의된 특정 목적이 있습니다. > 예를 들어 자동화 컨트롤러(Automation Controller)는 업스트림 프로젝트 AWX를 기반으로 하는 Ansible 자동화용 웹 UI 및 API입니다. > 이 구성 요소는 자동화를 관리하기 위해 플랫폼에 번들로 제공됩니다. > Ansible Automation Platform은 온프레미스에서 실행하고 노드(사용자가 아닌)별로 요금을 청구하거나 Microsoft Azure에서 제공되는 관리형 서비스를 사용할 수 있습니다. 🚩 요약 - 앤서블과 테라폼 모두 오픈 소스 CLI 전용 버전이 있습니다. - 둘 다 웹 UI 또는 SSO와 같은 엔터프라이즈 기능과 함께 사용할 수 있는 제품이 있습니다. - 커뮤니티 버전의 주요 차이점은 앤서블은 다목적 자동화 도구인 반면 테라폼은 코드 도구로서의 인프라라는 것입니다. - 어느 도구로든 잠재적으로 해결할 수 있는 수많은 사용 사례가 있고 앤서블과 테라폼 모두 서로를 호출하는 플러그인이 있기 때문에 혼란이 발생할 수 있습니다. 1️⃣ 불변(Immutable)의 인프라: The Killer App? 🚩 테라폼 - 테라폼은 인프라에 대한 불변의 접근 방식을 취합니다. 이 접근 방식의 장점 중 하나는 최종 상태에 도달하는 방법을 이해하지 않고도 반복해서 배포할 수 있는 Single source of truth(해당 HCL 파일)를 생성한다는 것입니다. - 이 접근 방식은 개인이 빠르게 시작하는 경우 간단하고 우아할 수 있지만 인프라의 크기에 따라 복잡하고 관리하기 어려울 수 있습니다. - 불변 접근 방식의 또 다른 장점은 클라우드 리소스를 쉽게 해체(디프로비저닝)할 수 있다는 것입니다. 이를 통해 개발자는 신속하게 리소스를 가동하고 무언가를 테스트한 다음 해체할 수 있습니다. 🚩 앤서블 - 앤서블은 설계상 자동화에 대한 필수 접근 방식을 취합니다. 각 리소스를 반복하는 작업 목록만 있으면 됩니다. 즉 이 VPC, 이 Subnet, 이 VM을 프로비저닝하도록 지시할 수 있습니다. - 이해하기 매우 쉽고 숨겨진 마법(magic)이 없기 때문에 문제를 쉽게 해결할 수 있습니다. - 단점은 일반적으로 올바른 순서를 모른 채 분해나 프로비저닝 해체를 수행하는 것이 더 번거롭습니다. 예로, 인스턴스를 삭제한 다음 보안 그룹 등을 삭제해야 합니다. 2️⃣ 활용 사례 비교 🚩 테라폼 - 테라폼에 대한 모든 기사를 읽으면 퍼블릭 클라우드에 초점을 맞추고 있음을 알 수 있습니다. - 이것은 불변 인프라가 잘 작동하는 곳이며 Terraform은 AWS, Azure, Docker, GCP 및 OCI용 클라우드 리소스 및 애플리케이션을 프로비저닝하는 데 탁월합니다. - 그러나 IT 운영에는 자동화된 인프라 프로비저닝보다 더 많은 것이 있으며 이것이 앤서블이 매우 인기 있는 이유이기도 합니다. 🚩 앤서블 - 앤서블은 레거시 사일로(silos)로 인해 일반적으로 도메인으로 구분되는 다양한 사용 사례의 자동화에 중점을 둡니다. > 인프라 자동화 - NetApp, PureStorage 및 HPE와 같은 스토리지 벤더뿐만 아니라 Linux 및 Microsoft Windows의 자동화를 포함합니다. > 네트워크 자동화 - Arista, Cisco, F5 및 Juniper와 같은 유명 공급업체의 물리적 스위치, 라우터, 로드 밸런서 및 SDN 컨트롤러가 포함됩니다. > 보안 자동화 - IBM, Checkpoint와 같은 공급업체의 SIEM, IDPS 및 방화벽과 ServiceNow와 같은 ITSM 도구를 통합합니다. > 에지 및 하이브리드 클라우드 공간. 3️⃣ 이벤트 드리븐 IT 전략으로의 이동 - 테라폼과 달리 앤서블은 전체 IT 워크플로에 더 중점을 둡니다. 예를 들어 다음 워크플로우를 고려하십시오. 1. 웹 애플리케이션을 AWS에 배포합니다. 2. 웹 애플리케이션 정보로 ServiceNow ITSM을 업데이트합니다. 3. 스케쥴을 실행하여 웹 애플리케이션이 올바른 포트에서 응답하는지 매시간 확인하거나 이벤트 스트림을 사용하여 추가 자동화를 위해 포트 및 애플리켕션을 모니터링합니다. 4. 웹 애플리케이션이 응답을 중지하고 문제 해결을 위해 자동화를 시도하는 경우 ServiceNow 티켓을 업데이트/생성합니다. - 이 예에서 단순히 웹 애플리케이션을 퍼블릭 클라우드에 프로비저닝하는 것만으로는 충분하지 않습니다. - 이 자동화 워크플로우에서 수행해야 하는 다른 단계가 있습니다. 고객의 ITSM 도구와 동기화하고 웹 애플리케이션이 올바르게 작동하는지 확인하기 위해 이벤트 기반 검사를 포함하는 자동화가 필요합니다(이를 지속적인 IT 규정 준수라고 함). - 상태 저장(Stateful) 자동화는 사람인 운영자가 자동화에서 대역 외 변경을 수행하는 동안에도 이 서비스가 계속 실행되도록 보장할 수 있습니다. 4️⃣ 더 나은 향상: 앤서블 오케스트레이션 테라폼 - 테라폼은 코드형 인프라를 위한 뛰어난 클라우드 프로비저닝 및 디프로비저닝 도구이고, 앤서블은 뛰어난 다목적 교차 도메인 자동화 솔루션입니다. - 둘 다 놀라운 오픈 소스 커뮤니티와 잘 지원되는 다운스트림 유료 제품을 보유하고 있습니다. - 이미 테라폼에 투자한 경우 앤서블을 사용하면 해당 HCL 템플릿을 보다 통합적인 자동화 워크플로우로 래핑(wrap)할 수 있습니다. - 앤서블은 구성 관리 및 애플리케이션 배포와 같은 작업을 테라폼 IaC 배포에 추가할 수 있도록 자동화를 더욱 확장합니다. 5️⃣ 사람들은 Ansible을 어떻게 사용하고 있나요? 1. 인프라 가시성 2. 규정 준수(Compliance) 3. 비즈니스 연속성 4. 클라우드 운영 업무 5. 클라우드 마이그레이션 6. 인프라 최적화 7. 인프라 오케스트레이션 8. 자동화된 문제 해결(Troubleshooting) 6️⃣ 결론 - 앤서블과 테라폼 사이의 혼란은 부정확한(또는 오래된) 소스 자료 또는 둘 중 하나/두 가지 기술 사용 경험 부족으로 인해 한동안 존재해 왔습니다. - 이 기사는 적어도 앤서블과 테라폼 간의 더 깊은 연결에 대한 대화를 시작하는 데 도움이 될 것입니다. - 모든 상황, 사용 사례 및 솔루션을 구현하는 사람은 다를 수 있지만 이러한 요인 때문에 우리는 앤서블이 자동화를 위한 최고의 솔루션이라고 믿습니다. 원본 기사 링크 공유합니다. 감사합니다.

알림

알림이 없습니다