‘앤서블’ 및 ‘테라폼’ 솔루션 혼합 활용 추세…시장 고속 성장

[컴퓨터월드] 기업들의 IT 인프라 환경이 복잡해지면서 인프라 관리를 자동화할 수 있도록 해주는 기술인 IaC(Infrastructure as Code)가 떠오르고 있다. 인프라 운영 관리 효율성을 높이고, 개발과 운영 프로세스를 자동화하는 등 유기적인 개발체계를 구현하기 위해 기업들이 IaC 솔루션에 관심을 갖기 시작한 것이다. 솔루션 공급 업체들 역시 이러한 시장 움직임에 저극 대응하고 있다. 관련 시장 진출에 속도를 내고 있다. IaC 툴 가운데, 오픈소스인 ‘앤서블’이 특히 많은 관심을 받고 있다. IaC 기술과 솔루션 전반에 대해 알아봤다.


인프라 관리 자동화 수요 증가

기업들의 IT 환경이 점차 파편화되고 있다. 새롭게 등장한 신기술 적용에 적합하다고 평가받는 클라우드 서비스, 활용 방법을 달리하며 등장한 멀티‧하이브리드 클라우드 등과 같은 인프라부터 그 위에서 구동되는 애플리케이션의 종류와 수가 늘어나면서 관리해야 할 접점이 빠르게 늘어나고 있다. 이런 상황에서 인프라 운영팀과 개발팀은 업무의 효율성을 높이고 보다 관리를 쉽게 하기 위해 관리 접점을 한 곳에 모으기 시작했다.

복잡해지는 기업의 IT 환경 (출처: 레드햇)

그러나 흩어진 인프라와 애플리케이션을 한 곳에서 관리한다는 것이 말처럼 쉬운 일이 아니다. 실제 기업의 IT 인프라 담당자들은 개발팀에서 요구하는 인프라 자원 배포 그리고 배포된 자원을 관리하는 기본적인 업무 이외에도 회사에서 운영 중인 각종 비즈니스 애플리케이션을 관리해야 하는 등 관리포인트가 늘어나고 있어 많은 어려움을 겪고 있다. 개발과 운영영역으로 나뉘어져 있는 기업들의 IT자원의 관리 포인트 증가는 앞으로도 계속 될 것이 확실시 돼 현재 상황에서는 해결하기 쉽지 않아 보인다.

이처럼 IT 인프라 환경이 복잡해지자 운영과 개발 영역을 결합하려는 움직임이 나타나고 있으며 이와 관련된 기술이 등장하고 있다. 바로 코딩 작업을 통해 인프라를 생성, 배치, 관리할 수 있는 기술인 IaC(Infrastructure as Code)다.

IaC를 이용할 경우 개발팀은 직접 작성한 코드로 인프라를 배포할 수 있고, 관리도 자동화할 수 있다. 짧아지는 애플리케이션 개발 주기에 적절히 대응할 수 있다는 것이다. IaC 솔루션을 활용해 게임 서비스를 개발‧운영한다고 가정할 경우, 주기가 짧은 게임 서비스를 빠르게 개발, 운영, 폐기할 수도 있어 변화하는 시장상황에 빠르게 대응할 수 있게 된다.

실제 개발팀은 게임에 필요한 인프라를 코드 작업으로 직접 배포할 수도 있고, 여러 대의 PC에 동일한 인프라를 한 번에 배포해 동시에 게임 개발 작업을 진행할 수도 있다. 게임 출시 후 인프라 관리도 간단하다. 게임이 흥행했을 경우 코드로 쉽게 인프라를 추가할 수 있고, 게임이 실패했을 경우 인프라를 빠르게 회수할 수도 있다. 물론 IaC 솔루션을 활용해 인프라를 자동으로 배포하고 회수하기 위해선 개발팀과 운영팀의 동시 참여가 반드시 필요하다.


인프라 설정부터 관리까지

IaC를 활용할 경우 개발팀은 인프라 설정에서 관리까지, 인프라 운영팀이 수행해야 하는 번거로운 작업을 쉽게 수행할 수 있다. 보통 개발자가 애플리케이션 개발을 위해 하는 첫 번째 작업은 운영팀과 협의해 인프라를 설치하는 것이다. 이 때 개발자는 개발에 필요한 인프라 자원을 운영팀에 요청한다. 운영팀은 서버, 라우팅 항목, 데이터베이스(DB) 구성 및 로드 밸런서를 일일이 개발 컴퓨터에 설치해야 한다.

IaC는 이러한 기존 개발환경이 갖는 일련의 프로세스를 간소화한다. IaC는 개발자에게 ▲IT 인프라 환경 자동 프로비저닝과 패치 자동화 ▲관리 용이성 ▲재해복구 환경 구축 등의 장점을 제공한다.

구체적으로 IaC는 먼저 IT 인프라 환경을 자동으로 배포해준다. 간단한 파일과 코드를 사용해 인프라 환경을 구축할 수 있다. 특히 부하 분산 검증을 비롯한 다양한 테스트 환경도 구축할 수 있다. 코드가 적힌 스크립트를 ‘깃(Git)’과 같은 저장소에 보관하는데, 이를 자동으로 불러내 테스트 환경을 배포할 수 있도록 한다. 일련의 테스트 환경 배포 과정을 대폭 단축시켜 작업을 최소화할 수 있도록 해주는 것이다.

코드로 배포된 인프라 수정 작업 역시 간편하게 할 수 있도록 해준다. IaC는 인프라에 대한 사양이 저장된 스크립트를 생성하기 때문에, 인프라를 구성하고 있는 정보를 코드 수정만으로 편집해 배포할 수 있다.

IaC는 인프라 규모에 제약이 없어 관리도 편리하다. 스크립트에 코드를 작성할 때 가상머신(VM)의 개수와 상관없이 필요한 만큼 생성할 수 있다. 인프라 사양이 저장된 구성요소를 세분화해 자동으로 결합할 수 있기 때문에, 개발자가 부분적으로 제어할 수도 있다. 특히 네트워크, 저장소, DB, 사용자 권한과 같이 인프라에 종속된 리소스를 쉽게 관리할 수 있다.

관리가 간편하다는 것은 혹시 모를 문제가 발생하더라도 빠른 대처가 가능하다는 의미이기도 하다. IaC는 기존 애플리케이션 인프라에 대한 구성 정보를 코드로 확인할 수 있기 때문에 문제가 발생하더라도 빠르게 조치를 취할 수 있다. 또 개발팀과 운영팀 모두가 스크립트를 검토할 수 있기 때문에 문제가 발생한 지점이 어느 곳인지 쉽게 확인이 가능하다. 어느 한 직원이 비즈니스에 타격을 주고자 인프라를 임의로 변경했다면, 인프라 구성정보가 담긴 스크립트에 변경한 내용이 드러나기 때문에 이를 빠르게 확인하고 해결할 수 있다는 것이다.


2가지 구동 방식, 대세는 선언형 접근 방식

이와 같은 장점을 갖고 있는 IaC를 구동하기 위해선 코드 작성 방식을 선택해야 한다. 방식은 2가지로, 최종 결과물을 구성하는 선언형 접근 방식(Declarative)과 순차적인 명령을 주는 명령형 접근 방식(Imperative)으로 나뉜다. 각 접근 방식은 사용하고자 하는 IaC 툴이 지원하는 것을 따라야 한다.

 명령형 방식(좌측)과 선언형 방식
명령형 방식(좌측)과 선언형 방식

먼저 선언형 접근 방식은 필요한 리소스와 리소스 속성을 포함해 ‘원하는 시스템 상태’를 먼저 정의한다. 이 경우 IaC 툴이 사용자가 지정한 인프라 환경을 자동으로 구현한다. 애플리케이션 개발을 위해 클라우드를 활용할 것인지 온프레미스를 사용할 것인지, 컨테이너 오케스트레이션을 활용하기 위한 쿠버네티스 엔진을 사용할 것인지 등 일일이 작성할 필요 없이 사양만 작성하면 된다. 선언형 접근 방식으로 인프라를 할당받은 시스템은 현재 상태 목록을 유지하기 때문에 인프라가 중단되더라도 다시 그 상황으로 쉽게 복구할 수 있다.

명령형 접근 방식은 선언형 접근 방식과 다르게 원하는 설정에 필요한 특정 명령을 정확한 순서로 정의해야 한다. 가령, 애플리케이션을 구동하기 위한 클라우드 서비스는 AWS로, 스토리지는 AWS S3로, 쿠버네티스 엔진은 AWS EKS로 지정하는 등 반드시 그 순서를 지키며 명령어를 작성해야 한다.

명령형 방식은 사양에 대한 지식부터 인프라가 구동되는 순서, 코드 작성까지 모든 부분을 사람이 직접 해야 하기 때문에 난이도가 높다. IaC 솔루션 제공사들이 대부분의 선언형 방식으로 솔루션을 제공하고 있는 이유도 여기에 있다.

솔루션 제공사의 한 관계자는 “IaC 툴은 대부분 ‘선언형 접근 방식’을 채택하고 있다. IaC의 이점을 쉽게 사용하기 위해서다”면서, “선언형을 채택한 IaC 솔루션은 원하는 인프라를 사람이 지정한 사양에 맞춰 자동으로 구성해준다. 인프라를 변경할 때에도 해당 변경 사항을 자동으로 적용한다. 쉽고 빠르게 사용하기에는 명령형 방식보다 선언형 방식이 적합하다”고 설명했다.

IaC 도구인 셰프(CHEF), 퍼펫(puppet), 솔트스택(SALTSTACK), 클라우드포메이션(Cloudformation), 앤서블(Ansible), 테라폼(Terraform) 등은 선언형 방식과 명령형 방식 2가지를 모두 채택하고 있지만, ‘퍼펫’, ‘클라우드포메이션’, ‘테라폼’ 등은 선언형 방식만을 채택하고 있다. 현재 시장에 공개된 IaC 툴들은 레스트(REST) API를 호출하는 방식으로 코드에 맞춰 인프라를 구성한다.


영역별로 다르게 활용되는 IaC 툴

IaC 솔루션을 활용해 IT 인프라 자동화를 구현하기 위해선 프로비저닝과 구성관리(CM, Configuration Management)가 핵심이다. 이때 사용되는 IaC 툴은 각각 다르다. 이 단계 중 프로비저닝과 구성관리는 서로 다른 영역이지만 기능이 중복되기도 한다. 해당 영역에 맞는 솔루션을 적절해 사용해야 인프라 관리 자동화를 성공적으로 구축할 수 있다.

 각 단계별 적용되는 IaC 툴
각 단계별 적용되는 IaC 툴

‘프로비저닝’은 일반적으로 운영팀의 담당자가 컴퓨터나 가상 호스트를 사용해 개발팀에서 필요한 라이브러리나 서비스를 설치하는 것을 의미한다. 프로비저닝 영역에서는 개발팀이 사용하는 코드 버전과 동일한 버전을 사용해 네트워크, VM, DB, 네트워크 구성 포톨로지부터 등을 구성한다. 이 때 중요한 점은 인프라를 바로 배포하는 것이 아니라 HW적인 부분을 어떠한 절차로 배포할 것인지를 먼저 정해아 하는 것이다. 프로비저닝 단계에서는 DB, 네트워킹 구성 등은 이뤄지지 않고 다음 단계인 구성관리에서 이뤄진다.

적용되는 솔루션은 ‘테라폼’과 ‘클라우드포메이션’이다. 이 두 솔루션은 프로비저닝을 위한 도구로, 서버 자체를 프로비저닝하도록 설계됐다.

구성관리는 성능부터 HW 속성과 라이프사이클 전반에 걸친 요구 사항, 설계 및 운영 정보의 일관성 등을 설정하고 유지하기 위한 시스템 프로세스다. 프로비저닝이 인프라에 대한 배포 위주로 진행된다면, 구성관리는 애플리케이션의 구성 설정을 관리하는 영역이다. 그렇기 때문에 코드 저장소, 애플리케이션 빌드 및 배포 프로세스 개발, 구성 및 테스트 환경 생성 및 보안관리 구성 등이 여기에서 정해진다. 구성관리를 위해 사용할 수 있는 IaC 툴은 ‘앤서블’, ‘셰프’, ‘퍼펫’, ‘솔트스택’ 등이다.

레드햇의 파트너사인 김정한 메타넷티플랫폼의 이사는 “대부분의 구성관리 툴은 어느 정도 프로비저닝을 수행할 수 있고 대부분의 프로비저닝 툴은 어느 정도의 구성관리를 수행할 수 있다. 또 두 단계는 서로 유동적으로 합쳐진다”면서, “구성관리를 통해 인프라의 일관성을 높일 수 있다. 특히 시스템의 모든 변경 사항을 기록할 수도 있다. IaC를 활용하면 인프라 관리가 간편하다는 장점이 바로 이 단계에서 나온다”고 설명했다.


대세는 ‘앤서블’…‘테라폼’ 혼용 추세

IaC 시장에 대한 국내 기업들의 관심은 뜨겁다. IaC 툴 가운데 특히 주목받는 솔루션이 있다. 바로 ‘앤서블’이다. ‘앤서블’은 레드햇이 2015년 오픈소스 커뮤니티 프로젝트인 ‘앤서블’을 인수하며 ‘레드햇 앤서블 오토메이션(Red Hat Ansible Automation)’이라는 제품으로 국내 시장에 공급되고 있다.

‘앤서블’은 전 세계 IaC 시장에서 자동화 솔루션으로 큰 인기를 끌고 있다. 시장조사기관 포레스터리서치가 발간한 ‘2020년 3분기 포레스터 웨이브: 인프라 자동화 플랫폼’ 보고서에서 ‘레드햇 앤서블 오토메이션’이 ‘리더’를 차지했다는 점이 이러한 주장을 뒷받침하고 있다.

레드햇 측 관계자는 “포레스터는 ‘레드햇 앤서블 오토메이션 플랫폼’이 다양한 배포 옵션을 제공하고 폭넓은 자동화 툴의 서비스 브로커 역할을 잘 수행한다고 평가했다”면서, “강력한 커뮤니티 생태계가 ‘앤서블’ 성공에 기여하고 있다. 레드햇의 솔루션은 다양한 벤더의 인프라와 통합되는 자동화 플랫폼을 원하는 고객에게 적합하다”고 평가했다.

 포레스터리서치가 발간한 2020년 3분기 포레스터 웨이브 인프라 자동화 플랫폼 보고서 (출처: 포레스터리서치)
포레스터리서치가 발간한 2020년 3분기 포레스터 웨이브 인프라 자동화 플랫폼 보고서 (출처: 포레스터리서치)

‘레드햇 앤서블 오토메이션’은 ‘레드햇 앤서블 타워’와 ‘레드햇 앤서블 엔진’ 등으로 구성돼있다. ‘레드햇 앤서블 오토메이션’의 장점은 ▲모든 IT 영역의 반복 운영 작업 간소화 ▲자동화작업 결과 시각적 분석 가능 ▲레드햇 소유 콘텐츠 및 소스에 접근 가능 ▲셀프 서비스 자동화 생성 및 관리 4가지다.

 ‘레드햇 앤서블 타워’ 및 ‘레드햇 앤서블 엔진’ 특장점 (출처: 레드햇)
‘레드햇 앤서블 타워’ 및 ‘레드햇 앤서블 엔진’ 특장점 (출처: 레드햇)

‘레드햇 앤서블’이 타 IaC 툴에 비해 강점을 보이는 부분은 바로 온프레미스와 클라우드 환경 모두를 아우를 수 있다는 점이다. 메타넷티플랫폼 김정한 이사는 “이미 ‘레드햇 앤서블’은 온프레미스에 대한 검증을 마쳤으며, HW 인프라 및 OS, 미들웨어 등 하단 인프라 종류에 관계없이 다양한 계층에서 여러 방식으로 운영 자동화를 구축할 수 있다”고 말했다. 그는 이어 “인프라 종류에 영향을 받지 않기 때문에 OS를 보유하고 있는 컨테이너를 IaC로 배포한다면 멀티‧하이브리드 클라우드 환경을 쉽게 구축할 수 있다. 또 이를 지원하기 위한 쿠버네티스 솔루션인 ‘오픈시프트’도 함께 제공하고 있다”고 설명했다.

계속해서 그는 “최근 많은 관심을 받고 있는 ‘테라폼’은 구현 영역이 클라우드 서비스 제공사(CSP)의 인프라에 보다 집중돼있다. 각 CSP별로 인프라를 구현하는 방법이 상이하기 때문에 A사의 CSP에서 구현한 IaC 코드를 B사의 클라우드 서비스에 적용하기 위해선, 코드를 수정해야 한다”며, “이를 검증하고 테스트하기 위해서는 시간과 노력이 투입돼야 한다. 멀티‧하이브리드 클라우드를 구축할 때 초기 비용이 ‘레드햇 앤서블’에 비해 높게 책정될 수 있다”고 말했다.

 ‘레드햇 앤서블’ 동작 순서 (출처: 레드햇)
‘레드햇 앤서블’ 동작 순서 (출처: 레드햇)

기존 오픈소스인 ‘앤서블’은 에이전트리스(Agentless) 아키텍처로 구성돼 간단한 방식으로 자동화를 실현하는 IaC 툴이다. 설정을 정의하거나 작업 순서를 지정할 수 있는 플레이북(Playbook)이라고 하는 ‘AML 구성 언어’로 작동하며, 반복적인 작업을 자동화할 수 있다.

‘앤서블’은 설치된 인프라를 자동으로 관리하는데 초점이 맞춰졌다. ‘앤서블’은 ‘선언형’의 코드 작성 방식을 채택하고 있으며, ‘AML 구성 언어’로 작성해야 한다. 그 이후에 인프라에 원하는 상태를 지정한 다음 프로비저닝을 수행할 수 있도록 한다. 레드햇 측 관계자에 따르면, ‘앤서블’은 도커(Docker) 컨테이너 및 쿠버네티스(Kubernetes) 배포 프로비저닝 자동화에 적합하다.

레드햇은 이 같은 ‘레드햇 앤서블’을 토대로 아직 열리지 않은 국내 IaC 시장 공략에 적극 나서고 있다. 한 번 도입한 자동화 솔루션을 교체하기 어렵다는 점을 이용해 금융권, 대기업음 물론 중견‧중소기업으로도 고객층을 넓혀나간다는 전략이다. 실제 국내 금융권 상당수가 ‘레드햇 앤서블’을 활용해 IT 인프라 자동화를 구현한 것으로 전해진다. 아울러, 기존 고객에게는 ‘레드햇 앤서블’과 시너지가 극대화될 수 있는 ‘레드햇 오픈시프트’, ‘레드햇 테라폼’, ‘깃허브’ 등을 조합해 제안하고 있다.

 레드햇의 대표 파트너사 메타넷티플랫폼 CI
레드햇의 대표 파트너사 메타넷티플랫폼 CI

레드햇은 수많은 파트너사를 통해 영업과 기술 지원에 나서고 있다. 대표 파트너사로는 메타넷티플랫폼, 오픈나루, 락플레이스, 씨플랫폼 등을 들 수 있다.

레드햇은 IaC를 활용할 때 ‘앤서블’과 ‘테라폼’을 함께 사용하는 것도 추천하고 있다. ‘테라폼’은 하시코프(Hashicorp)에서 오픈소스로 개발한 ‘IaC’ 도구로 인프라 자동화를 목표로 설계됐다. 서버와 같은 기본적인 인프라 배포에 최적화돼 있다. ‘테라폼’도 ‘앤서블’과 마찬가지로 독자적인 언어인 ‘하시코프 설정 언어(HCL, Hashicorp Configuration Language)’를 사용해 클라우드 리소스를 생성한다. AWS, 구글 클라우드 플랫폼(GCP, Google Cloud Platform), 마이크로소프트 애저(Microsoft Azure)와 같은 주요 클라우드 서비스를 비롯한 다양한 클라우드 서비스들을 생성할 수 있다.

 레드햇이 제안하는 ‘앤서블’ 및 ‘테라폼’ 조합 사용법 (출처: 레드햇)
레드햇이 제안하는 ‘앤서블’ 및 ‘테라폼’ 조합 사용법 (출처: 레드햇)

김정한 메타넷티플랫폼 이사는 “‘앤서블’과 ‘테라폼’을 함께 사용할 경우 특정 부분에서만 IaC를 적용하는 것이 아닌, 인프라 전체 영역에서 IaC 툴을 적용해 보다 효율적으로 관리할 수 있다”면서, “예를 들면 ‘테라폼’을 이용해 네트워크 토폴로지(VPC, 라우팅 테이블), 데이터 저장소, 로드 밸런서 및 서버를 포함한 인프라를 배포한 후에, 자동화 애플리케이션인 ‘앤서블’을 활용해 자동화 프로세스를 구축하면 클라우드 인프라를 보다 효율적으로 관리할 수 있다”고 설명했다.

현재 국내 IaC 시장은 성숙된 것이 아니다. 대기업을 비롯해 몇몇 기업을 중심으로 솔루션이 도입되고 상황이다. 그럼에도 IT 개발과 운영을 유기적으로 만드는 ‘데브옵스’를 구현할 수 있고, 인기를 더해가는 클라우드 인프라 사용의 효율성을 가져다줄 수도 있다는 점은 국내 기업들로 하여금 도입 의지를 불태우기 충분하다. 향후 더욱 확대될 IaC 시장의 주도권을 거머쥐기 위한 기업들의 제품 고도화와 영업 전략이 더욱 치열해질 것으로 예상된다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지