[커버스토리] IT 인프라 표준화·자동화의 핵심 ‘IaC’
코드 기반 배포·운영 지원…‘테라폼’과 ‘앤서블’ 솔루션 각광
[컴퓨터월드] 온프레미스부터 멀티·하이브리드 클라우드까지 기업들의 IT 인프라가 계속해서 파편화되며 관리해야 할 영역이 늘어나고 있다. 이에 복잡한 인프라를 코드로 표준화·자동화해 운영 관리하는 ‘코드형 인프라(Infrastructure as Code; IaC)’ 기술이 주목받고 있다. IaC는 손쉬운 인프라 생성·배치·관리를 가능케 하고, 개발과 운영을 통합하는 데브옵스(DevOpS) 구현의 기반으로도 활용되고 있다. IaC 기술 개념과 주요 솔루션 등 활용 현황 전반을 알아본다.
IaC, 표준화·자동화된 인프라 운영 방법론
폭발적인 데이터 증가, IT 신기술의 발전으로 최근 기업들은 전통적 인프라에서 현대적 인프라로의 변화를 꾀하고 있다. 높은 수준의 확장성과 가용성을 확보하고자 데이터센터에서 프라이빗·퍼블릭 클라우드, 나아가 멀티·하이브리드 클라우드까지 기업이 운영하는 인프라는 지속적으로 고도화돼 왔다.
하지만 기업 내 인프라가 다양해지면서 데이터와 애플리케이션은 여러 지점으로 분산돼, 통합된 운영 관리가 어려워지고 소프트웨어(SW) 개발과 운영이 분리되는 문제 또한 대두됐다. 인프라 배포, 보안, 네트워크, 애플리케이션 등 IT 부서가 관리해야 하는 대상이 너무 많아졌고, 이 때문에 일부 기업에서는 개발자들이 개발 업무에만 집중할 수 있는 환경을 조성하기 힘들었다. 또 인프라와 리소스는 지속적으로 비대해지는 데 반해 운영 관리는 수작업으로 이뤄져 왔고, 이를 맡아 온 담당자가 이직하거나 변경되는 경우에는 운영 관리 프로세스를 다시 익혀야 하는 등 여러 가지 문제들이 야기됐다.
이를 해결할 수 있는 방법으로 부상한 기술이 바로 ‘코드형 인프라(Infrastructure as Code; IaC)’다. IaC는 코드를 기반으로 인프라 프로비저닝(Provisioning)과 관리를 자동화하는 기술이다. 프로비저닝은 서버, 스토리지, 네트워크, 애플리케이션 등을 포함한 IT 인프라를 생성·설정하는 프로세스로, IaC를 활용하면 이 과정을 자동화하고 오류를 줄여 일관성을 유지할 수 있다. 정리하면 IaC는 컴퓨터에서 읽을 수 있는 코드와 정의 파일을 사용해 사용자의 요구에 맞게 인프라 자원을 할당할 수 있는 프로세스이자 실행 가능한 문서다.
IaC의 큰 특징 중 하나는 ‘벤더 종속’ 탈피다. 단일 인프라를 넘어 다양한 클라우드 서비스 제공사(CSP)의 인프라와 멀티, 하이브리드 클라우드 환경을 코드로 호출하고 배포·운영할 수 있다. 아마존웹서비스(AWS), 마이크로스프트 애저(MS AZURE), 구글 클라우드 플랫폼(GCP)을 비롯해 프라이빗 클라우드 등 모든 클라우드 환경을 코드 기반으로 정형화함으로써 분산된 인프라를 통합적으로 관리할 수 있고, 보안과 거버넌스도 포함해 표준화·자동화된 인프라 배포가 가능하다.
또 인프라가 코드로 작성돼 변경 사항을 쉽게 추적할 수 있고 롤백도 간편하다. 코드로 작성된 템플릿을 자산화해 보유할 수 있다는 것도 큰 강점이다. 예컨대 인프라 관리 담당자가 이직하거나 변경되더라도 이미 작성한 템플릿으로 동일한 인프라 구성이 가능하다. 이를 통해 지속적인 인프라 구성 버전 관리가 가능하고, 인적 수작업 오류를 줄여 인프라 배포·수정 속도를 향상시킬 수 있다. 작성한 코드를 보고 문제점을 빠르게 파악할 수 있고, 코드 템플릿에는 기업의 규정 준수 요구 사항도 포함할 수 있다.
이에 대해 레드햇 측 관계자는 “IaC 기술은 인프라를 코드로서 효율적이고 일관성 있게 관리할 수 있어 크게 주목받고 있다. laC의 주요 장점은 자동화를 통해 수작업을 줄임으로써 시간과 비용을 절감할 수 있다는 점이다. 코드로 작성된 설정은 항상 동일한 결과를 보장해 휴먼 에러를 방지하고 일관성을 유지한다. 또한 코드 변경 이력을 쉽게 추적할 수 있어 버전 관리도 용이하다”며 “협업 도구들과 표준화된 방식으로 쉽게 통합돼 팀 간 협업이 향상되고, 반복 가능한 환경을 구축해 신속하게 인프라를 배포할 수 있다. 투명성 측면에 있어서도 모든 설정이 코드로 명확하게 기록할 수 있어 재활용이 용이하다”고 설명했다.
CMP와 IaC 접목 추세
통상적으로 기업들은 인프라를 관리하기 위해 소프트웨어(SW)와 클라우드 관리 플랫폼(CMP) 등을 주로 활용한다. 이러한 솔루션들은 그래픽 유저 인터페이스(GUI)를 제공해 비전문가도 편리하게 인프라를 모니터링할 수 있도록 돕는다. 반면 특정 요구 사항에 맞춤화하기 어려우며, 라이선스 비용이 발생하고 더 나아가 특정 벤더 솔루션에 종속될 수도 있다.
이 점을 IaC가 보완할 수 있다. IaC 기반의 코드를 이용한 자동화는 원하는 형태로 맞춤형 설정이 가능하고, 오픈소스 도구를 활용할 경우 비용도 절감할 수 있다. 코드 기반으로 인프라와 관련된 모든 변경 사항을 추적할 수 있어 투명성과 버전 관리도 용이하다. 물론 코드 기반의 관리는 초기 학습과 전문성이 요구된다. 이에 솔루션과 코드 활용 2가지를 모두 접목하는 방식이 인프라 운영 관리 자동화를 위한 표준 구성으로 자리 잡았다.
이와 관련해 하시코프 김정훈 매니저는 “프라이빗 클라우드가 떠오른 클라우드 트렌드 초기, 기업들은 CMP와 자동화에 초점을 맞췄다. 서버, 스토리지, 가상화 등 여러 가지 클라우드 요소들을 CMP를 통해 한 번에 관리하자는 목적이었고 큰 어려움은 없었다”면서 “퍼블릭 클라우드, 그리고 멀티 클라우드가 대세가 된 이후에는 CMP만으로 모든 인프라를 통합 관리하기는 힘들어졌다. AWS, MS 애저, GCP 등 각각의 서비스들이 제공하는 툴이 다양하다 보니 익혀야 할 기술이 많아졌고, API나 신규 서비스가 추가되면 이를 일일이 CMP에 반영하는 것도 노력이 든다. 이런 어려움들 때문에 멀티, 하이브리드 클라우드를 하나의 인프라처럼 관리하기를 추구하지만 쉽지 않았다”고 말했다.
이어 김 매니저는 “이 가운데 등장한 것이 IaC다. 여러 클라우드 인프라를 하나의 표준화된 도구로 배포할 수 있어야 하나의 인프라처럼 운영 관리할 수 있다는 관점이 대두된 것이다”라며 “IaC는 인프라를 콘솔로 클릭하던 것을 코드로 구성한다는 개념을 넘어, 이 코드를 표준화해서 모든 클라우드에 적용할 수 있게 한다는 것이 기본 모토다”라고 덧붙였다.
CI/CD와 데브옵스, 코드 기반으로 구현
IaC가 특히 더 주목받는 이유는 개발과 운영팀 간의 헙업을 촉진하고, 나아가 ‘지속적 통합/지속적 배포(CI/CD)’와 ‘데브옵스(DevOps)’를 구현할 수 있기 때문이다. 인프라가 코드로 관리된다는 IaC 개념은 개발자가 애플리케이션 코드를 개발할 때 사용하는 다양한 개발 도구와 방법론을 적용할 수 있다는 의미이기도 하다.
이는 곧 형상관리 도구인 깃(Git)을 통해 자동화된 테스트와 배포 파이프라인을 만들어 인프라를 제어하는 깃옵스(GitOps)를 적용해 CI/CD를 구현하는 기반이다. IaC가 단지 인프라를 코드로 표시할 뿐만 아니라, 개발자들에게 친숙한 코드 기반 도구와 워크플로우까지 제공하는 것이다.
또 IaC로 SW 개발에 필요한 일관된 인프라를 신속하게 개발·운영팀에 할당해, 협업과 업무 효율을 극대화하는 데브옵스도 구현할 수 있다. 동일하게 정의된 인프라에서 모든 구성원이 개발 코드를 검토하고, 버전 관리 시스템에 저장된 코드 모음과 IaC 템플릿을 바탕으로 개발 과정에서 문제가 발생해도 손쉬운 롤백이 가능하다.
이와 관련해 ‘사이트 신뢰성 엔지니어링(SRE)’도 주목받는 조직 개념으로 부상 중이다. 기업 내 데브옵스 팀이 IaC 기술을 토대로 SW를 개발하는 역할을 맡는다면, SRE팀은 IaC로 구성된 인프라 배포, 문제 식별, 해결 등을 담당한다. IaC를 중심으로 한 IT 인력의 역할 배분으로 개발자는 개발에만, 클라우드 엔지니어는 인프라 운영 관리에 집중하는 환경을 조성할 수 있다.
SRE 개념에 대해 한국IBM 김종서 상무는 “SRE는 데브옵스 운영 방법론을 차용한 인프라 자동화 운영에 포커싱된 운영 방법이다. SRE를 구현하는 기본적인 기술이 IaC다. 이전에는 자동화할 수 있는 방법이 없어 서버, 스토리지, 네트워크 등을 구성할 때 엔지니어들이 수동으로 설정했지만, IaC가 등장하면서 자동화가 가능해지면서 SRE라는 개념이 등장했다. SRE팀은 인프라 운영 전반과 관련된 서비스 수준 지표(SLI), 서비스 수준 목표(SLO), 서비스 수준 계약(SLA)을 측정하고 설정하는 역할을 담당한다”고 설명했다.
하시코프 김정훈 매니저
Q. IaC 기술이 주목받게 된 이유는.
A. 멀티, 하이브리드 클라우드가 새로운 IT 트렌드로 떠오르면서 기업들은 효율적이고 자동화된 인프라 운영 및 관리를 고려하게 됐다. 기존 온프레미스 인프라나 프라이빗 클라우드의 경우에는 CMP만 도입하더라도 운영에 큰 어려움은 없었다. 하지만 퍼블릭 클라우드를 함께 이용하려는 과정은 어려움이 있었다. CSP 마다 제공하는 도구가 다양하고, 주기적으로 API가 업데이트된다. 이 모든 것들을 기업들이 하나하나 따라가면 운영 관리 도구에 추가하기는 쉽지 않다.
또한 인프라 배포·운영의 표준화·자동화가 되지 않을 때의 가장 큰 문제는 수작업이 일어난다는 것이다. 수작업은 곧 리스크라고 볼 수 있다. 이러한 총체적인 기술적·인적 문제들을 코드로 표준화하고 하나의 인프라처럼 관리하고 자동화할 수 있는 기술로서 IaC가 주목받게 됐다. IaC를 통해 파편화된 인프라를 표준화하고 자동으로 배포·관리할 수 있다. 대표적인 IaC 솔루션이 하시코프의 테라폼이다.
Q. 테라폼의 강점은.
A. 테라폼은 인프라 형상관리와 배포에 목적을 둔, 즉 인프라 전반의 구성을 담당하는 IaC 솔루션이다. 테라폼의 강점은 CSP사들과의 긴밀한 협력을 통해 3천 개에 달하는 거의 모든 클라우드 서비스를 지원한다는 점이다. CSP사들이 업데이트한 사항들이 테라폼 템플릿에도 실시간 반영된다. 또 각 CSP 서비스에 맞는 샘플 코드도 제공하기에 손쉽게 수정하고 활용할 수 있다. 그래서 우리는 테라폼을 프로바이더이자 엔진이라고 부른다.
가령, 어떤 기업에서 AWS를 배포한다고 하면 테라폼 홈페이지에서 AWS 서비스를 선택하고 해당 프로그램 패키지와 API를 자동으로 불러올 수 있다. 또 하시코프 설정 언어로 작성된 직관적인 코드 템플릿으로 바로 확인할 수 있다. 현재는 다양한 기업들의 CMP와 솔루션의 엔진으로 테라폼이 활용되기도 한다.
Q. IaC 도입 시 유의해야 할 사항은.
A. IaC 기술은 주로 기업에서 애플리케이션 현대화 프로젝트를 수행할 때 도입된다. 이때 유의해야 할 사항은 오픈소스 솔루션보다는 기술 지원이 되는 기업용 버전의 솔루션을 활용해야 한다는 것이다. 예컨대 IaC 도입 프로젝트를 빠르게 끝내기 위해 테라폼의 오픈소스 버전을 도입하는 기업들이 있는데, 이는 기업용보다는 개인용으로 디자인돼 있다. 또 빠른 도입에만 중점을 두다 보면 실제 IaC 기반 운영 시, 작성된 코드가 실제 기업 인프라와 맞지 않아 지속적인 관리가 어려워지는 일들이 발생한다.
이를 방지하기 위해서는 하시코프에서 제공하는 테라폼 엔터프라이즈 버전 도입을 추천한다. 특히 하시코프는 기술 지원 차원에서 전문 파트너사들과 함께 고객 기업 환경에 맞는 코드 작성도 돕는다. 뿐만 아니라, 지속적인 IaC 운영을 위해 기업들은 작성된 코드 템플릿을 바탕으로 서비스 운영 위탁 업체인 MSP들과도 긴밀하게 협업할 필요가 있다.
6단계 거쳐 프로비저닝…코드 작성 방식은 2가지
IaC를 활용한 인프라 프로비저닝은 크게 6단계로 진행된다. 첫 번째, 요구 사항 정의 및 설계다. 프로비저닝할 인프라의 요구 사항을 명확하게 정의해야 한다. 여기에는 서버 유형, 스토리지 용량, 네트워킹 구성 등이 포함된다. 두 번째는 IaC 도구 선택이다. ‘테라폼(Terraform)’, ‘앤서블(Ansible)’, ‘AWS 클라우드포메이션(AWS CloudFormation)’과 같은 IaC 도구 중 적절한 것을 선택한다. 다음 세 번째는 IaC 템플릿 작성이다. 정의된 요구 사항과 선택한 도구의 언어에 따라 인프라 구성 요소를 코드로 작성한다. 작성된 코드는 깃에 저장해 버전을 관리하고 변경 사항을 추적할 수 있다.
네 번째, IaC 템플릿 테스트다. 작성된 IaC 템플릿을 검토해 오류나 누락된 사항이 있는지 확인하고, 로컬 또는 테스트 환경에서 코드가 의도대로 작동하는지 테스트한다. 다섯 번째는 실제 배포다. 검토된 IaC 템플릿을 프로덕션 환경에 적용해 인프라를 프로비저닝한다. 마지막 여섯 번째 단계는 모니터링이다. 배포된 인프라를 모니터링하고, 필요에 따라 코드를 수정하거나 업데이트해 최적의 상태를 유지해야 한다.
이 과정으로 IaC를 구동하기 위해서는 코드 작성 방식을 선택해야 한다. 방식은 2가지로, ‘선언적 접근(Declarative)’과 ‘명령형 접근(Imperative)’이다. 어떤 IaC 도구가 어떤 방식을 지원하는 지도 유의해야 한다. 먼저 선언적 접근은 원하는 인프라 상태를 정의하는 데 중점을 두고 서버 유형, 스토리지 용량, 네트워킹 구성 등 최종 인프라 형태를 결정해 코드를 작성하는 방식이다. 활용과 이해가 쉽고, 선언적 템플릿을 여러 차례 실행해도 동일한 인프라 구성이 가능하다. 선언적 접근 방식을 대표하는 IaC 도구로는 하시코프(HashiCorp)의 테라폼이 있다.
다음으로 명령형 접근은 인프라를 프로비저닝 및 관리하는 데 필요한 특정 단계를 순차적으로 정의하는 방식이다. 인프라 프로비저닝에 필요한 단계를 정의하면 IaC 솔루션이 정의된 단계를 순서대로 실행하며 인프라를 구성한다. 선언적 접근 방식보다 사용하기 어렵고 코드 작성 스크립트가 변동되면 원하는 결과가 크게 바뀌기에 전문성이 요구된다.
선언적 접근 방식과 명령형 접근 방식 중 어느 것을 선택할지는 사용자의 요구 사항에 따라 달라진다. 사용 편의성과 이해 편의성을 중시한다면 선언적 접근 방식을 선택하는 것이 적절하고, 인프라 프로비저닝 및 관리 과정에 대한 더 많은 제어력이 필요하다면 명령형 접근 방식을 선택하는 것이 옳다. 통상적으로는 난이도가 상대적으로 낮은 테라폼 기반의 선언적 접근 방식이 주로 채택되고 있다.
이에 대해 AWS코리아 최우형 인프라 전문 수석 솔루션즈 아키텍트는 “IaC의 선언적 접근과 명령형 접근 방식은 각기 인프라 관리의 서로 다른 두 가지 목적을 중심으로 접근한다. 선언적 접근은 최종 상태를 정의하는 데 중점을 둔다. 가령 AWS 클라우드포메이션과 테라폼은 리소스의 원하는 상태를 코드로 기술하고, 이를 바탕으로 자동으로 필요한 변경을 수행한다. 이 방식은 사용자가 ‘무엇’을 원하는지에 초점을 맞춘다. 반면 명령형 접근은 인프라를 설정하는 절차를 단계별로 기술한다. 앤서블과 같은 도구는 일련의 명령어를 순차적으로 실행해 인프라를 구성한다. 이 방식은 사용자가 ‘어떻게’ 해야 하는지에 집중한다. 각 접근 방식은 사용자의 요구에 따라 선택된다”고 설명했다.
한국IBM 김종서 상무
Q. IaC 도입 후 주의해야 할 점이 있다면.
A. 먼저 IaC 기술을 도입할 때 엔지니어들의 역량 편차가 있을 수 있다. 이에 대한 준비로써 IaC 초기 학습 기간 동안 역량 강화에 신경써야 한다. 직원들 간 역량 편차가 있다보면 한 직원이 IaC로 작성된 코드 자산을 독점해서 모두 관리하는 경우가 생길 수 있다. 이 경우 담당 직원이 이직하거나 변경될 시 큰 리스크로 다가온다.
따라서 무엇보다도 표준화와 거버넌스에 중점을 둬야 한다. 각각의 팀마다 개별적으로 IaC 활용과 인프라 배포를 맡긴다면 향후에 비용 지출이 더 커질 수 있다. 따라서 IaC로 작성된 코드에 대해 리뷰하는 담당자가 코드 템플릿을 점검하고, 또 개발자와 엔지니어 간에도 코드를 리뷰하는 과정을 체계화하는 게 중요하다.
Q. IaC를 지원하는 IBM의 솔루션은.
A. 테라폼과 앤서블 등 IaC 솔루션을 기반으로 한 IBM 클라우드 스키매틱스라는 멀티, 하이브리드 클라우드 구현 서비스를 지원하고 있다. 먼저 테라폼을 이용해 서버, 스토리지, 네트워크 등 전체 인프라 환경을 구성한다. 이후 구성된 인프라의 요소별로 구성 관리를 레드햇 앤서블 오토메이션 플랫폼으로 지원한다.
또한 고객이 IaC를 더 효율적으로 활용할 수 있도록 오픈시프트를 기반으로 데브옵스 개발·운영 체계를 모두 지원한다. 즉, 형상관리에서부터 데브옵스, CI/CD, 모든 리포지토리 등 IaC 기반의 서비스들로 인프라 구성과 자동화 운영을 지원한다.
Q. IaC 관련 솔루션을 어떻게 고도화하고 있는가.
A. IaC를 통해 구성된 인프라는 지속적으로 최적화하고 모니터링해야 한다. 이를 위해 ‘IBM IT 오토메이션 포트폴리오’를 마련해 고객의 인프라 운영을 지원하고 있다. IT 오토메이션 포트폴리오는 애플리케이션 퍼포먼스 관리부터, 네트워크 관리, 핀옵스, 리소스 관리, 기업 자산, AI 기반 운영 관리 등 전반을 지원하는 풀스택 옵저벌리티 솔루션이다. 이러한 전체적인 솔루션을 제공함으로써 고객이 IaC로 구성한 인프라에 대해 지속적인 최적화와 비용 효율을 향상할 수 있도록 돕고 있다.
‘테라폼’과 ‘앤서블’ 각광…시각화 솔루션도 등장
다양한 IaC 도구들 가운데 전 세계적으로 가장 많이 채택되는 제품은 하시코프의 테라폼이다. 테라폼은 하시코프에서 오픈소스로 개발한 IaC 도구로, 기본적인 형상관리와 인프라 배포에 최적화된 글로벌 선두 솔루션이다. 테라폼은 하시코프 설정 언어(HCL)를 사용해 인프라를 정의하고 클라우드 리소스를 생성한다. AWS, MS 애저, GCP와 같은 주요 클라우드 서비스를 비롯한 3,000개 이상의 프로바이더 서비스를 지원하기에 거의 모든 인프라를 테라폼만으로도 배포할 수 있다.
IaC 도구인 테라폼 외에도 하시코프는 보안 관리 자동화를 위한 ‘볼트(Vault)’, 네트워크 자동 관리를 지원하는 ‘컨설(Consul)’, 애플리케이션 관리를 돕는 ‘노마드(Nomad)’ 등 인프라부터 애플리케이션까지 기업의 IT 전 영역에 대한 표준화된 자동 관리 지원 SW 제품군을 서비스하고 있다. 2012년 설립된 하시코프는 현재 전 세계 4,500개 이상의 엔터프라이즈 고객사를 확보했으며 19개가 넘는 글로벌 지사를 운영하고 있다. 한국에서는 메가존클라우드, 베스핀글로벌 등 클라우드 관리 서비스 제공사(MSP)를 포함한 20곳 이상의 파트너사와 협력 중이다.
테라폼 다음으로 인기를 끄는 솔루션은 레드햇의 ‘앤서블 오토메이션 플랫폼(Red Hat Automation Platform)’이다. 레드햇은 2015년 오픈소스 커뮤니티 프로젝트를 인수하며 해당 명칭으로 IaC 도구를 공급하고 있다. 레드햇 앤서블 오토메이션 플랫폼은 자동화 개발 도구, 자동화 환경, 콘텐츠 및 컨테이너 레지스트리, 자동화 분석 도구 등으로 구성된다. 테라폼이 기본적인 형상관리에 최적화돼 있다면, 레드햇 앤서블은 자동화 영역에 방점을 둔 솔루션이다. 이러한 테라폼과 앤서블을 혼용해 사용하는 것이 최근 추세다.
구체적으로 레드햇 앤서블 오토메이션 플랫폼은 ‘YAML’ 형태의 코드로 관리할 수 있도록, 필요로 하는 인프라별 모듈을 제공한다. 플레이북, 시각적 대시보드, 이벤트 기반 솔루션, 분석 등 전사적 자동화를 구현하는 데 필요한 툴이 모두 포함돼 있다. 앤서블 플레이북에는 사용자가 원하는 시스템 상태가 YAML로 작성된다. 또한 사용자는 리눅스 타입이나 버전, 네트워크 서비스 벤더 등에 관계 없이 코드 형태로 인프라를 통합 관리할 수 있다.
이 같은 오픈소스 기반 IaC 솔루션이 대세인 가운데, CSP에서 직접 개발한 IaC 서비스도 있다. AWS 클라우드포메이션이 대표적이다. AWS 클라우드포메이션은 AWS 인프라를 코드로 정의하고 관리하는 IaC 솔루션이다. 선언적 접근 방식과 JSON 및 YAML 형식의 템플릿을 사용해 AWS 리소스를 정의한다. AWS 리소스들을 그룹화해 하나의 단위로 관리할 수 있게 하는 ‘스택’, 실제 인프라와 템플릿 간의 차이를 감지하고 수정하는 ‘드리프트 디텍션(Drift Detection)’ 기능, 롤백 메커니즘 등을 제공한다.
다양한 멀티 클라우드 환경 구축을 지원하는 테라폼이나 앤서블과 달리, AWS 클라우드 서비스를 위주로 IaC를 지원한다는 점 때문에 AWS 클라우드포메이션은 고객들에게 제한적일 수 있다. 다만 AWS 클라우드를 단일 인프라로 이용 중이라면 AWS 클라우드포메이션은 활용해 볼 만한 IaC 도구다. 특히 최근 AWS는 생성형 AI 서비스인 ‘아마존 Q 디벨로퍼(Amazon Q Developer)’를 인프라 코드 개발에도 활용하도록 지원하는 등 더욱 자동화된 IaC를 위한 고도화를 추진 중이다.
테라폼과 앤서블 IaC 엔진을 기반으로 멀티, 하이브리드 클라우드 구성을 지원하는 IBM의 ‘IBM 클라우드 스키매틱스(Cloud Schematics)’와 같은 솔루션도 있다. 스키매틱스는 테라폼과 앤서블, 깃을 비롯한 오픈소스를 활용해 IaC 자동화를 서비스로 제공한다. 테라폼을 활용해 클라우드 리소스의 프로비저닝 및 수명주기 관리를 자동화하고, 레드햇 앤서블 오토메이션 플랫폼을 사용해 클라우드 리소스와 아키텍처 구성을 돕는 서비스다. 테라폼을 통해 서버, 스토리지, 네트워크 등 전체 인프라 환경을 구성하면 이후 구성된 하나하나의 요소들을 또 앤서블로 관리하는 방식이다.
아울러 최근에는 IaC 코드 템플릿과 사용자가 구성한 인프라를 가시적으로 보여주는 시각화 솔루션도 출시되고 있다. 인프라 구성 요소들로 이뤄진 아이콘을 시각화 템플릿에 드래그 앤 드롭(Drag and Drop)만 해도 인프라를 생성·배포할 수 있고, 오류도 쉽게 파악할 수 있어 코드 입력이 어려운 비전문가도 사용할 수 있는 도구다. 해외에서는 이러한 도구들이 많이 활용되고 있다. 해외 기업 중에서는 브레인보드(Brainboard), 클라우드 메이커(Cloud Maker), 루시드스케일(Lucidscale) 등이 클라우드와 IaC 시각화 솔루션을 서비스하고 있다.
국내에도 지난 4월 공식 출시된 IaC 기반 시각화·배포 서비스가 있다. 바로 클라우드로(CLOUDRAW)의 ‘클라우드스튜디오(CloudStudio)’다. 클라우드스튜디오는 클라우드 시각화 및 배포 관리 서비스로, IaC를 기반으로 인프라 설계부터 배포, 상태 관리 등을 포괄적으로 지원한다. AWS, MS 애저와 같은 주요 클라우드 서비스를 포함한 네이버클라우드, NHN클라우드 등 국내 CSP사의 서비스도 지원하며, 추가적으로 쿠버네티스 활용도 가능하다.
클라우드스튜디오는 리소스를 시각화된 캔버스에 드래그 앤 드롭 방식으로 쉽게 설계하고, 구성된 인프라를 테라폼 엔진 기반의 코드 템플릿으로 확인할 수 있다. 이를 통해 취약점이나 기타 미흡사항을 쉽게 파악할 수 있다. 또한 인프라 배포에 앞서 예상 비용을 산정하는 기능도 제공 중이다. 클라우드로는 해당 서비스를 토대로 ‘2024년 중소기업 클라우드 서비스 보급·확산 사업’에 공급기업으로 선정된 바 있다.
클라우드로 김창규 소장
Q. 클라우드로에 대해 소개해 달라.
A. 우리 클라우드로는 한국정보보호경영연구소의 자회사로, 2021년 11월에 설립된 클라우드 전문 기업이다. IaC 기반 시각화 솔루션인 클라우드스튜디오와 보안 점검 도구인 ‘CS 체커(CS Checker)’ 등을 보유하고 있다. 현재 네이버클라우드, NHN클라우드와 솔루션 파트너 계약을 맺고 이 2개 퍼블릭 클라우드 마켓플레이스에 서비스를 등재했다. 올해 4월에 클라우드스튜디오 정식 버전을 출시했으며, 2024년 중소기업 클라우드 서비스 보급·확산 사업의 공급기업으로도 선정됐다.
Q. 클라우드스튜디오의 구조와 강점은.
A. 클라우드스튜디오는 IaC를 기반으로 쉽고 빠르게 클라우드 인프라를 구성하고 실제 배포와 관리까지 할 수 있는 시각화 솔루션이다. 시각화로 구성돼 있어 코딩 비전문가도 아이콘의 드래그 앤 드롭만으로 손쉽게 인프라를 구성할 수 있다. 그리고 이를 테라폼 엔진의 코드 템플릿으로도 확인할 수 있다. 보안 취약점도 빠르게 파악할 수 있고, CSP 서비스별로 예상 비용도 산정할 수 있다. 뿐만 아니라, 우리가 미리 구성해 놓은 인프라 구성 샘플을 고객들이 이용할 수도 있다.
현재는 AWS, MS 애저, 네이버클라우드, NHN클라우드, 쿠버네티스 등을 지원하고 있으며, 향후 오라클을 비롯한 주요 클라우드 서비스들을 지속적으로 추가할 예정이다. 아울러 클라우드스튜디오 고객들이 각자 구성한 시각화 템플릿을 서로 공유하는 커뮤니티와 마켓도 론칭할 계획이다.
Q. 또다른 클라우드 솔루션은 무엇이 있나.
A. 대표적으로 CS 체커가 있다. 클라우드 인프라에 대한 자산관리와 취약점을 전문적으로 점검하는 서비스로, 현재는 베타 서비스로 제공 중이다. CS 체커도 클라우드스튜디오와 마찬가지로 인프라 자산과 취약점을 시각화해 보여준다. 기존에는 클라우드 콘솔에서 영역별로 하나씩 취약점을 확인했다면, CS 체커는 API를 통해 한 번에 진단하고 점검할 수 있다.
또 클라우드 계정들의 취약점을 자동으로 점검하고 나면 엑셀과 워드 형태의 보고서로도 발급받을 수 있다. 클라우드스튜디오에서 인프라 영역을 다뤘다면, CS 체커에서는 인프라를 활용하는 조직에 대한 관리를 다룬다. 클라우드스튜디오와 CS 체커가 올해 본격적으로 출시된 만큼, 앞으로 유의미한 레퍼런스를 만들어 나갈 계획이다.
“초기 도입부터 운영까지 신경써야”
기업에서 IaC를 도입하고자 한다면 적절한 솔루션 선정에 앞서 초기 도입 프로젝트 계획 마련이 중요하다. 특히 클라우드 이관 과정 중 컨테이너와 쿠버네티스를 적용하는 애플리케이션 현대화 프로젝트 내에 IaC가 도입되는 것이 적절하다는 게 IaC 솔루션 기업들의 의견이다. 또한 개인용으로 디자인된 오픈소스 IaC 도구보다는 하시코프 테라폼 엔터프라이즈, 레드햇 앤서블 오토메이션 플랫폼과 같은 엔터프라이즈 버전을 활용하는 것이 적절하다고 강조한다.
이에 대해 하시코프 김정훈 매니저는 “보통 기업들은 애플리케이션 현대화 프로젝트를 수행할 때 IaC 도입을 고려한다. 그 이후 서비스 오픈을 준비한다. 문제는 IaC를 도입했으니 앞으로도 회사의 IaC 운영이 문제 없이 지속될 것이라고 기대한다는 점이다”라며 “국내의 경우 초기 프로젝트 과정에서 IaC 코드를 제조사 기술 지원이 가능한 엔터프라이즈 버전이 아닌, 오픈소스를 이용하는 경우가 많다. 오픈소스 IaC 도구는 기업에서 활용하기에는 적절하지 않으며, 상용 제품으로 변환할 때도 별도의 작업이 많이 필요하다”고 말했다.
이어 김 매니저는 “또 IaC 코드 작성을 SI 업체에 맡기는 일도 흔하다. 그리고 IaC 프로젝트를 단지 빨리 끝내기 위함에만 초점을 맞추다 보면, 실제 지속적인 운영으로 이어지지 않는 경우가 다반사다. 회사 담당자가 다른 업체에서 작성한 코드를 다시 체크해야 하고, 회사 인프라와 맞지 않는 코드로 구성된 경우에는 결국 IaC 기반의 클라우드 운영을 포기하고 다시 CSP 콘솔로 인프라를 운영하는 수작업 방식으로 퇴행하는 일이 발생한다”며 “이를 해결하기 위해서는 초기 프로젝트 과정부터 기술 지원이 가능한 엔터프라이즈 IaC 솔루션 도입을 고려해야 하고, 서비스를 위탁 운영하는 MSP들과도 코드 작성을 인수인계하고 협업하는 것이 필요하다”고 강조했다.
향후 고성장 기대…AI와의 기술 통합도
글로벌 시장에서 IaC는 많은 기업들의 핵심 기술로 뿌리를 내렸다. 국내에서도 클라우드와 IaC 기술 성숙도가 높아지면서 IaC에 대한 수요와 관심이 늘어나고 있다. 대기업은 물론 중소·스타트업까지 다양한 기업들이 IaC를 도입하고 있으며, 멀티·하이브리드 클라우드 인프라를 운영하는 기업에서는 필수 요소로 자리 잡았다.
글로벌 시장조사기관인 포춘 비즈니스 인사이트(Fortune Business Insights)에 따르면, 전 세계 IaC 시장 규모는 2023년 9억 870만 달러(한화 약 1조 2,431억 160만 원)에서 2030년 33억 490만 달러(한화 약 4조 5,211억 320만 원)로 연평균 20.3% 성장할 것으로 전망된다. 멀티 클라우드에 대한 수요 증가와 함께 인프라 운영의 표준화·자동화에 관한 기업들의 요구도 급증할 것으로 예상된다.
뿐만 아니라, IaC 솔루션과 AI 기술이 통합된 ‘AIaC’ 확산도 전망되고 있다. 거대언어모델(LLM)을 활용해 자연어 기반 IaC 코드 템플릿을 생성하는 등 IaC 기술이 AI와 접목돼 더욱 고도화되고 있다는 설명이다.
IaC의 향후 성장세가 예상되는 가운데, IBM이 2019년 레드햇 인수에 이어 최근 IaC 솔루션의 강자인 하시코프까지 인수한다고 발표했다. 양대 오픈소스 SW 업체를 인수함으로써 IBM이 IaC 시장에서 어떤 시너지와 영향력을 발휘할지도 주목된다.