1. OpenStack

 

  요즘 IT 분야에서는 클라우드 컴퓨팅에 대한 관심이 뜨겁다. 그러나 정작 클라우드가 무엇인지 검색해 보면 속 시원한 설명은 하나도 없다. 나 또한 작년에 클라우드를 접한 후 개념을 잡는데 상당한 시간이 걸렸었는데, 가장 좋은 방법은 역시 직접 사용해 보는 것이었다. 시중에는 클라우드 컴퓨팅의 표준이 되어가고 있는 Amazon이나 국내에서도 통신사업자, 인터넷 서비스업체들이 무료로 클라우스를 접해볼 수 있는 서비스를 제공하고 있다. 하지만 이들의 서비스를 제대로 사용하려면 일정 요금을 지불해야 한다. 또한 내부 구조가 어떻게 되어있는지 파악할 목적이라면 직접 클라우드를 구축해 보는 것이야 말로 가장 좋은 방법일 것이다.

 

  OpenStack은 Rackspace와 NASA가 주축이 되어 시작된 클라우드 매니지먼트 스택으로 Apache 2.0 기반의 오픈소스이다. 현재는 Cisco, HP, Dell, KT, Samsung과 같은 대기업들도 관심을 가지고 적극적으로 개발과 상용화에 참여하고 있으며 Canonical, Suse와 같은 Linux 진영에서도 OpenStack을 기본 패키지에 포함하여 릴리즈 할 계획을 밝히는 등 무서운 성장을 하고 있다. OpenStack은 스토리지 서비스(Swift)와 컴퓨트 서비스(Nova), 이미지 서비스(Glance) 세 가지로 이루어져 있지만 내가 사용해 본 것은 컴퓨트 서비스(이하 Nova)와 이미지 서비스(이하 Glance) 이다. 클라우드 컴퓨트 서비스란 쉽게 말해 강력한 컴퓨팅 파워나 디스크를 가진 먼지 날리고 시끄러운 서버를 집에 두는 것이 아니라 이런 서비스를 제공하는 업체의 데이터 센터에 만들어 두고 인터넷이 되는 곳이라면 어디든 접속할 수 있도록 하는 서비스이다. 작업의 자동화와 관리의 편의를 위해 가상화 기술이 여기에 이용된다. 즉, 사용자에게 제공되는 서버는 가상머신이다. 사용자의 수에 따라 서버 두 세대만 있어도 운영이 가능하다. 나 또한 처음에는 한 대의 서버로 테스트를 했었다. Nova는 원하는 OS 설치와 네트워크 연결, 보안 설정이 완료된 가상의 서버를 클릭 한 번으로 손쉽게 제공해 주는 기능을 포함하는 소프트웨어이다.

그림1.jpg

[그림 1. Nova의 역할]

  소스가 완전히 오픈되어 있고 현재도 활발히 개발이 진행 중이기 때문에 오픈소스 소프트웨어를 사랑하는 사람이라면 설치, 테스트를 해 보는 일이 상당히 재미있을 것이다.

 

2. 설치법

 

  Nova는 간단한 응용프로그램이 아니기 때문에 설치가 간단하지는 않다. 우선 Linux가 깔린 서버가 한 대 이상 필요한데, 여의치 않다면 VirtualBox를 이용해 생성한 가상머신도 괜찮다. 개발자들이 Ubuntu를 사용해서 인지 Ubuntu 환경이 가장 안정적인 것 같았다. 여러 대의 서버로 시스템을 구성하더라도 각 서버의 설치 과정은 동일하다. 서버가 준비되었다면 아래의 방법을 통해 모든 서버에 Nova와 Glance를 설치한다. 설치 과정을 모두 설명하기 보다는 가장 설명이 잘 되어있는 웹 페이지의 링크를 적어두겠다.

 

 

옵션 1. 패키지를 이용한 설치: wiki.openstack.or.kr/index.php/Nova_설치가이드

옵션 2. 스크립트를 이용한 설치: www.devstack.org

옵션 3. 소스코드를 이용한 설치: wiki.openstack.or.kr/index.php/Nova_설치가이드

 

 

  UI 기반의 설치가 아니라서 그리 쉽지는 않지만 패키지나 스크립트를 이용한 설치는 간단한 편이다. 또한 설치하는 과정을 통해 어떻게 클라우드 컴퓨트 시스템이 구성되어 있는지 이해할 수 있을 것이다. 여러 대의 서버로 시스템을 구성 할 경우 어떤 실행파일이나 서비스들이 어떤 서버에서 실행중인지만 config 파일에 잘 명시해 주면 된다.

 

3. 기능 및 사용법

 

  Nova의 설치가 완료되었다면 아래의 과정을 통해 가상머신을 생성할 수 있다. Nova 시스템에 명령을 내리는 방법은 DB, 네트워크, 계정 관리에 필요한 명령이 포함된 관리자 커맨드라인 툴 nova-manage와 가상머신 생성, 사용, 관리에 필요한 명령이 포함된 사용자 커맨드라인 툴 euca2ools, novaclient가 있다.

 

그림2.jpg

 

[그림 2. 가상머신 실행 과정]

 

1) DB 생성

그림_3.jpg    

 

2) 서버별로 필요한 서비스 실행

그림_4.jpg

 

3) 네트워크 생성 및 유동 IP 등록

그림_5.jpg  

 

4) 계정 및 인증 생성

그림_6.jpg  

 

5) Glance 실행

그림7.jpg

 

6) 이미지 등록

그림8.jpg

 

7) 이미지 등록 확인

그림9.jpg

 

8) Keypair 생성

그림10.jpg  

 

9) 이미지 확인 및 선택

그림11.jpg

 

10) 가상머신 생성

그림12.jpg

 

  커맨드라인 툴의 사용이 어렵다면 Dashboard를 이용해도 된다. 다만 Dashboard는 아직까지 불안정한 상태이고 커맨드라인 툴이 제공하는 기능을 모두 포함하고 있지는 않다.

 

그림13.jpg

[그림 3. Dashboard]

 

  이렇게 생성된 가상머신에 접속하는 방법 또한 여러 가지다. 사용 가능한 공인 IP가 있다면 가상머신에 할당해서 공인 IP로 바로 접속이 가능하다. 그렇지 않다면 OpenVPN을 이용해 가상머신과의 가상 네트워크를 만들어 접속하는 방법이 있다. 마지막으로 Web Socket이 지원되는 브라우저(Chrome, Firefox)를 통해 VNC Console 접속이 가능하다.

 

옵션 1) 공인 IP 할당

그림_14.jpg    

 

옵션 2) VPN 접속

계정 및 인증 생성 과정에서 얻어진 nova-vpn.conf와 인증파일들을 이용하면 OpenVPN 프로그램을 이용해 가상머신과 같은 네트워크에 연결이 된다. 

그림_15.jpg

 

Windows로 nova.zip 파일을 다운받아 풀고 nova-vpn.conf 파일의 확장자를 ovpn으로 변경하면 OpenVPN 프로그램을 통해 네트워크 생성이 가능하다.

 

그림16.jpg

 

3) VNC Web Console

 

그림17.jpg

 

 

4. 비교

 

  OpenStack은 오래 전에 클라우드 컴퓨팅 분야에서 자리매김을 한 Amazon의 서비스와 비교해 볼 때 기능 면에서 전혀 뒤지지 않는다. 특히 Nova는 아마존의 컴퓨트 서비스인 EC2 서비스의 API와 호환되도록 설계되었으며 OpenStack이 자체적으로 개발한 OpenStack API는 EC2 API 보다 더 다양한 인터페이스를 제공하고 있다. 뿐만 아니라 대부분의 기능을 드라이버 방식으로 수용할 수 있도록 설계하여 같은 기능이라 하더라도 관리자가 원하는 방식을 선택할 수 있어 확장성/유연성에 있어서는 Amazon의 서비스보다 큰 잠재력을 지녔다고 볼 수 있다.

 

 

5. 결론

 

  OpenStack은 간단한 응용프로그램이 아니기 때문에 일반 사용자들이 관심가질 만한 오픈소스 소프트웨어는 아님이 분명하다. 하지만 클라우드를 알고 싶고 배우고 싶은 사람에게는 최고의 소프트웨어가 아닐까 생각한다.

  그 동안 4번의 공식 릴리즈를 통해 기본적인 기능은 많이 안정화된 상태이며 소규모의 클라우드를 구축하기에는 무리가 없는 수준이다. 다만 지금까지는 기본 기능 개발에 초점이 맞춰져 있었기 때문에 문서화나 사용자 interface가 잘 되어 있지는 않다. 하지만 문제에 부딪히면 직접 파 볼 수 있는 소스가 있고, 덕분에 배울 수 있는 것도 상당하다. 이것이 오픈소스 소프트웨어의 단점이기도 하지만 어찌 보면 장점이 아닐까?