OpenStack의 아키텍쳐를 이해하자.
OpenStack은 오픈 소스로 개발되고있는 클라우드 환경 구축을위한 소프트웨어 군입니다. 클라우드의 분류 중 이른바 IaaS이라고하는 가상 머신과 스토리지, 네트워크 등 가장 낮은 계층의 자원을 제공하는 클라우드 환경을 구축 할 수 있습니다. 원래 AWS (Amazon Web Services)를 참고로 개발이 시작된 것도 있고, AWS 같은 것을 자신의 환경에서 개인에 구축 할 수 있다고 생각하면 좋을 것입니다.
OpenStack의 국내 도입 사례
OpenStack은 IaaS 환경을 구축하는 소프트웨어 군이지만, 국내에서의 도입 사례를 보면 IaaS 클라우드 서비스를 제공하기 위해 사용하는 예와 Web 서비스를 제공하는 인프라에 채용하고있는 패턴이 많습니다 . 몇 가지 사례를 들어 보겠습니다.
GMO 인터넷의 VPS 서비스 "ConoHa"
VPS (Virtual Private Server)를 서비스로 제공하는 시스템에 OpenStack을 활용하고있는 사례입니다. 사용자는 Web 대시 보드 화면에서 자신의 필요한 가상 서버를 시작할 수 있습니다.
참고 : ConoHa에서 OpenStack 구현에 관한 설명 자료를 공개합니다
Yahoo! JAPAN
Yahoo! JAPAN에서는 다양한 자사 서비스를 제공하는 서버를 관리하기 위해 OpenStack을 사용하고 있습니다. IaaS 환경에서 실행되는 여러 가상 서버와로드 밸런서를 결합 대처 등이 공개되어 있습니다.
참고 : Yahoo! JAPAN 가상화 이니셔티브 ~ OpenStack with LBaaS ~
GREE
GREE는 각종 서버 자원을 자원 풀로 관리하기 위해 OpenStack을 사용하고 있습니다. OpenStack뿐만 아니라 다양한 OSS를 함께 사용하고있는 것을 알 수 있습니다.
참고 : OpenStack Use Case at GREE (PDF)
OpenStack의 도입에 임하고있는 기업은 계속 증가하고 있기 때문에 앞으로도 다양한 사례가 등장 해 온다고 생각됩니다.
OpenStack의 역사와 구조
OpenStack은 2010 년 10 월에 공개 된 'Austin'를 비롯해 다음과 같이 알파벳 순으로 약 반년에 1 회 출시되고 있습니다. 그리고 최근 2014 년 4 월 17 일 최신 버전 Icehouse가 공개되었습니다.
2010 년 10 월 Austin
2011 년 2 월 Bexar
2011 년 4 월 Cactus
2011 년 9 월 Diablo
2012 년 4 월 Essex
2012 년 9 월 Folsom
2013 년 4 월 Grizzly
2013 년 10 월 Havana
2014 년 4 월 Icehouse
이 연재에서는 OpenStack의 구성 요소를 Icehouse에서 새롭게 추가 된 것도 포함 해 소개하고 환경 구축의 기본적인 흐름을 설명합니다. OpenStack
은 여러 서비스 구성 요소로 구성되어 있으며, 구성 요소간에 HTTP 기반의 REST API 또는 AMQP (Advanced
Message Queuing Protocol)를 사용한 비동기 통신으로 연결하여 분산 협조 동작을 실시하고 있습니다. 따라서 기능 확장이 실시 쉽다는 특징을 가지고 있습니다 만, 한편으로 구조와 각 구성 요소의 역할을 제대로 이해하고 있지 않다고 구축 및 운영이 어려워집니다. 다음 그림은 OpenStack의 공식 사이트에있는 아키텍처 그림입니다. 이후 각 구성 요소에 대해 소개하고 있습니다.
OpenStack의 중심이되는 Nova
OpenStack은 여러 요소의 조합으로 구성되어 있지만 가장 핵심 구성 요소는 Nova 것입니다. Nova의 기본적인 역할은 가상 머신 인스턴스를 시작할 수 있습니다. OpenStack은 가상 머신 이외에 물리적 시스템과 LXC, Docker 등의 컨테이너도 지원하지만, 가장 기본이되는 것은 역시 가상 머신이므로 특별한 예외가없는 한,이 연재에서는 가상 머신 인스턴스를 전제 해설합니다.
Nova는 사용자의 요청에 따라 필요한 가상 머신 인스턴스를 시작하기위한 일체를 주재합니다. 가상 머신에는 게스트 OS 안 스토리지, 네트워크 등의 자원을 제공해야하지만, 이전 버전에서는 Nova에서 모든 조달하고있었습니다. 그러나 기능이 확장되는에 따라서 각각의 자원 관리를 다른 구성 요소로 충당하도록되어갔습니다. Nova는 각종 하이퍼 바이저에 대응하고 있습니다 만 주로 이용되는 것은 Linux에서 가상 머신을 실행하는 Linux KVM입니다.
Nova가 그대로 적용되는 것은 아니지만 주로 가상 머신 인스턴스를 다룬다는 점에서 Amazon EC2에 상당하는 구성 요소입니다.