2018년 06월 22일         

ⓒ CIO Korea, Martin Heller | InfoWorld

 

 

지난 10년간 서버 프로비저닝과 구성 자동화에 가장 많이 사용된 오픈 소스 툴이자 업체가 바로 셰프(Chef)다. 이 업체는 최근 몇 년 동안 정책 컴플라이언스(준수) 테스트와 애플리케이션 배포 및 구성을 자동화하는 오픈 소스인 인스펙(InSpec)과 해비태트(Habitat)를 포트폴리오에 추가했다. 업체의 플래그십 상용 제품인 셰프 오토메이트(Chef Automate)에는 이 모두가 통합돼 있다.

셰프 오토메이트는 워크플로우와 노드 가시성, 컴플라이언스에 대한 엔터프라이즈 기능을 모두 제공한다. 오픈 소스 제품인 셰프, 인스펙, 해비태트와 통합돼 있다. 셰프 오토메이트에는 오픈 소스 구성 요소를 포함해 전체 플랫폼에 대한 지원 서비스가 포함돼 있다. 운영과 컴플라이언스, 워크플로우 이벤트에 대한 가시성을 제공하는 것은 물론 지속적으로 인프라와 애플리케이션을 전달할 수 있는 파이프라인이 포함돼 있다.

셰프의 구성 요소와 워크플로우
사용자는 셰프 DK(개발자 키트) 워크스테이션을 이용해 셰프를 조작한다. 이 워크스테이션에서 테스트 가상머신(VM)을 생성하는 테스트 키친(Test Kitchen) 같은 도구를 사용해 쿡북(cookbook)을 작성해 테스트하고, 명령줄 도구를 사용해 셰프 서버를 조작한다. 셰프 리포지토리와 셰프 서버 간 인터페이스를 제공하는 명령줄 도구인 나이프(Knife)를 사용하면 된다. 나이프는 사용자가 노드와 쿡북, 데이터 백을 관리하고, 노드에 셰프 클라이언트를 설치(부트스트랩)하는 작업 등에 유용하다. 셰프 쿡북 파일 대부분은 루비(Ruby)로 작성돼 있지만 일부 구성 파일은 YAML에 기반을 두고 있다.

 

spill_800x800_1c2c8bc6488f2a33e013a5549bc4196bf18d8d59.jpg

오픈 소스인 셰프 서버는 구성 데이터의 허브 역할을 한다. 셰프 서버에는 쿡북, 노드에 적용된 정책, 셰프가 관리하는 각 등록 노드의 설명인 메타데이터가 저장돼 있다. 노드는 셰프 클라이언트를 사용해 셰프 서버에 레시피, 템플릿, 파일 배열 같은 구성 세부 정보를 요청한다. 다시 말해, 셰프는 푸시(Push) 기능도 갖고 있지만 기본적으로 풀(Pull) 기반 시스템.

셰프 슈퍼마켓(Chef Supermarket)은 커뮤니티 쿡북이 공유, 관리되는 공간이다. 셰프 오토메이트의 일부로 셰프 관리 콘솔, 셰프 클라이언트(에이전트) 실행 보고서, 고가용성 구성, 셰프 서버 복제 등의 기능을 지원한다. 인스펙은 애플리케이션과 인프라를 테스트 및 감사할 수 있는 무료 오픈 소스 프레임워크다. 셰프 오토메이트의 구성 요소인 컴플라이언스의 토대가 된다. 셰프는 물론 퍼핏(Puppet), 앤서블(Ansible)과 통합된다. 해비태트는 엔터프라이즈나 플랫폼 관점이 아닌 애플리케이션 관점에서 설계된 오픈 소스 기반의 클라우드 네이티브 애플리케이션 자동화 및 애플리케이션 생애주기 관리 플랫폼이다.

spill_800x800_383933c924c4c091fd08ba2b1385d94faeec9f21.jpg

데브옵스와 컴플라이언스, 클라우드를 위한 셰프
셰프 오토메이트는 더 빨리, 더 자주, 더 높은 신뢰도로 앱을 프로비저닝, 개발하도록 도와준다. 즉, 데브옵스(Devops)를 지원한다. 또 서버 드리프트를 줄이고, 컴플라이언스 위반을 발견하고, 문제를 자동으로 줄여 컴플라이언스를 자동화한다. 셰프 컴플라이언스는 오픈 소스인 인스펙에 기반으로 한다. 이전에는 별개 제품이었지만, 지금은 셰프 오토메이트의 일부로 포함됐다.

클라우드 마이그레이션은 셰프의 흥미로운 활용 사례 중 하나다. AWS와 마이크로소프트 애저, 구글 클라우드 플랫폼, 혼합형 배포, 하이브리드 클라우드 등을 지원한다. 또 다른 중요 활용 사례는 PIC와 HIPAA, 기타 보안 및 프라이버시 규정에 대한 컴플라이언스다. 셰프의 중요한 셀링 포인트 중 하나는 도입 기업이 보유한 기술과 호환된다는 것이다. 주요 기트(Git) 기반 리포지토리, CI/CD 시스템, 운영 체제, 클라우드, 컨테이너 오케스트레이션 시스템 등을 그대로 사용할 수 있다.

spill_800x800_1b9bf424238e3517467f62563dae34af417323cb.jpg

셰프 설치와 초기 설정
셰프 오토메이트는 통상 2개 이상의 서버로 구성된다. 셰프 오토메이트와 보유 인프라에 구성 요소를 빌드, 테스트, 배포할 때 사용하는 데이터와 쿡북이 저장된 셰프 서버(4개 이상의 vCPU와 8GB RAM), 워크플로우 파이프라인에서 변경 사항을 옮기는 프로세스를 조정하고 셰프 오토메이트 클러스터에 대한 인사이트와 시각화를 제공하는 셰프 오토메이트 서버(4개 이상의 vCPU와 16GB RAM)다.

또 선택 사항인 2개 서버가 있다. 먼저 푸시 작업 서버는 배포 테스트를 위한 인프라 노드 구성에 사용한다. 테스트 및 배포 프로세스의 일부로 푸시 작업 기반의 빌드 노드를 사용하는 경우에도 이 서버가 필요하다. 두번째는 빌드 노드(Runner로도 지칭, 최소 2개 이상의 vCPU와 4GB RAM)가 있다. 이는 빌드 실행 작업, 테스트, 셰프 오토메이트 외부에 대한 배포 작업에 사용한다. 셰프 오토메이트에 워크플로우 기능을 사용하는 경우에만 필요하다.

먼저 스탠드얼론이나 고가용성 구성으로 셰프 서버를 설치해야 한다. 그런 다음 chef-server-ctl 명령으로 셰프 오토메이트를 사용할 조직과 사용자를 생성한다. 선택에 따라 코드를 다운로드 받고, 푸시 작업 서버를 생성한 후, 다시 chef-server-ctl을 사용해 셰프 서버를 재구성할 수 있다. 이렇게 한 후, rpm이나 dpkg를 사용해 셰프 오토메이트를 설치, 구성할 수 있다. 라이선스를 설치하고, automate-ctl 명령을 사용해 pre-flight 체크와 셋업 프로세스를 실행한다. 셋업을 시작하면 워크플로우에 대한 러너를 생성할 수 있는 프롬프트가 표시된다. 마지막으로 데이터 모음에 대한 노드를 구성할 수 있다.

셰프 오토메이트용 AWS 옵스워크(OpsWorks)를 이용하면 설치 프로세스를 크게 간소화할 수 있다. AWS에 오토메이트 및 셰프 서버를 구현하고 싶은 경우에 사용하면 된다. 10분도 안걸려 배포를 완료할 수 있다. 옵스워크에서 온프레미스 노드를 관리할 수도 있다. 그러나 노드 대부분이 AWS에 위치할 때는 옵스워크가 효과적이다. 노드를 자동으로 오토스케일링 그룹에 등록하기 때문이다.

셰프 웹사이트를 보면 AWS에 큰 도움을 주는 튜토리얼을 찾을 수 있다. 셰프, 셰프 오토메이트, 옵스워크에 대해 자세히 알려준다. 단계 별로 모든 것을 설정해 작업을 자동화할 수 있다. 기본적인 배포 작업보다 많은 시간을 튜토리얼에 투자해야 하지만 셰프를 처음 쓰는 경우라면 충분한 가치가 있다. 또 AWS 마켓플레이스에서 VM에 셰프 오토메이트를 설치할 수도 있다. 여기에 더해 구글 클라우드 플랫폼, 마이크로소프트 애저 마켓플레이스, VM웨어 통합도 지원한다.

데브옵스와 컴플라이언스에 큰 도움을 주고, 광범위한 플랫폼을 지원하며, 모듈이 광범위한 셰프 오토메이트는 하이브리드 인프라 자동 구현 및 지속적 운영에 필요한 모든 엔터프라이즈 기능 모음을 제공한다. IT 자동화와 관련된 대부분의 필요 사항을 충족시킨다.
 

비용과 플랫폼
오픈 소스 프로젝트인 셰프, 인스펙, 해비태트 등은 무료다. 셰프 오토메이트는 137달러(노드/연간, 표준 주 5일 12시간 지원 포함)이다. AWS 옵스워크와 셰프 오토메이트는 0.0155달러(노드/시간)이고, 호스팅된 셰프는 72달러(노드/연간)이다.

셰프 오토메이트 서버에는 RHEL, SUSE, 우분투 OS가 필요하다. 셰프 오토메이트 작업 러너(Job Runner)는 맥OS에서도 쓸 수 있다. 셰프 오토메이트는 VM웨어, 코어OS, 도커, 윈도우, 리눅스 OS, 구글, AWS, 애저, 오픈스택, VM웨어 클라우드, 쿠버네티스, 도커 스왐, 메소피어(Mesophere) 컨테이너 오케스트레이션 시스템과 호환된다. 클라우드 기반 셰프 오토메이트 서비스를 셰프 오토메이트용 AWS 옵스워크로 사용할 수 있다. 구글 크롬용 오토메이트 콘솔이 있으며, IE는 공식 지원하지 않는다.

셰프 DK(개발자 키트) 상용 버전은 맥OS 10.11, RHEL 6, SUSE 11, 우분투 LTS, 윈도우 10, 윈도우 서버 2012 이상의 버전에서 사용할 수 있다. 데비안 7과 사이언티픽 리눅스 6 이상에서는 커뮤니티 지원을 사용할 수 있다. ciokr@idg.co.kr


 

 

 

※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지


[원문출처 : http://www.ciokorea.com/news/38625]

 

맨 위로
맨 위로