오늘 이 시간에는 LG CNS Cloud 플랫폼으로 활용 중인 OpenStack에 대해 알아보고 그 적용 사례를 소개하고자 합니다.
l OpenStack 정의 (출처: www.openstack.org)
위의 이미지와 같이 Common H/W(Server, Network, Storage)와 S/W기반에서 OpenStack이라는 제어도구를 활용하여 가상의 인프라 리소스를 IaaS 형태로 제공하는 역할을 담당합니다. 즉, OpenStack은 Public Cloud와 Private Cloud 환경을 구축할 수 있도록 해주는 오픈소스 소프트웨어로, 'SDDC(Software Defined Data Center)'의 기반 플랫폼이라고도 정의할 수 있습니다.
OpenStack과 클라우드를 이야기할 때 가상화와 가장 많이 비교되는데요. 기본적으로 가상화 기술을 활용하고 있으나 전통적인 가상화 기반의 업무형태와는 다르게 활용될 수 있습니다. 아래 이미지를 보시면 이해가 쉬울 것 같습니다.
l Virtualization(좌), Cloud(우)
가상화 업무는 고객의 서비스 요구에 따라 각 요소별 전문가들이 역할을 수행하여 구성되는 반면, Cloud의 경우 Self-Provisioning 또는 단일화된 창구를 통해 서비스 인프라가 구성됩니다.
즉, 모두 가상화 기술을 이용하여 H/W 자원의 효율성은 비슷하지만 리소스 제공의 시간이 단축되므로 업무 효율성을 증가시켜 줍니다. 이처럼 Cloud의 기반이 되는 것이 OpenStack이라 할 수 있습니다.
최근 2년 동안 많은 기능이 추가되고 있는 모습입니다만, 추가된 기능이 서비스로서 완전하지는 않습니다. 일반적으로 최초 릴리즈된 추가 기능을 서비스로 활용하는 경우는 드뭅니다. 기능이 부족하거나 버그 등도 많이 존재하기 때문입니다.
Nova(Compute): 서버 가상화 지원, 여러 가상화 S/W를 제어하여 VM 등을 관리합니다.
Swift(Object Storage): Rest API를 이용하여 URI를 가진 컨텐츠를 관리합니다. Amazon의 S3와 유사합니다.
Glance(Image): Nova에서 VM을 만들 때 필요한 OS이미지를 관리합니다.
Keystone(Identity): 모든 프로젝트의 인증 (허용된 사용자에게 서비스가 제공되도록)을 통합 관리합니다.
Neutron(Networking): 네트워크 서비스(L2, L3, L4, FW, VPN 등)를 지원하며, 1세대 SDN(Software Define Network)의 첫 사례로 볼 수 있습니다.
Cinder(Block Storage): 볼륨 서비스를 제공•관리합니다, Amazon의 EBS(Elastic Block Store)와 유사합니다.
Ceilometer(Telemetry): OpenStack에서 제공되는 자원의 사용량을 관리하며, 최근에는 모니터링 용도로도 확장되고 있습니다. (Monasca로 분리)
Heat(Orchestration): 인프라 자원을 개별적으로 생성하기보다 서비스 템플릿을 정의하여 네트워크부터 VM, 볼륨 및 필요한 S/W를 설치하는 오케스트레이션을 제공합니다. Amazon의 CloudFormation과 유사합니다.
Trove(Database): MySQL, Redis와 같은 데이터베이스를 관리합니다. 일반적으로 데이터베이스가 설치된 VM을 제공하지만 CLI나 API로 데이터베이스 VM내의 Agent로 명령을 전달하는 방식입니다.
Sahara(Data Processing): Hadoop과 같은 빅데이터를 지원하는 클러스터를 관리합니다. Trove와 유사하게 Hadoop 컴포넌트가 설치된 VM을 제공하는 방식입니다.
Ironic(Bare metal): 가상화가 아닌 베어메탈 방식으로 서버를 제공하는 기능입니다. Amazon의 Dedicated Server 서비스와 유사합니다.
Zaqar(Message): Queue 서비스를 제공•관리합니다.
Designate(DNS): DNS 서비스를 제공•관리합니다.
Manila(Shared File System): NFS와 같이 공유 디스크 서비스를 제공•관리합니다.
상기 이미지를 보시면 점선으로 구분된 영역이 OpenStack입니다.
사용자가 내리는 명령이 API 형태로 OpenStack에 전달되고 OpenStack이 정해진 정책과 규칙에 따라 판단한 결과에 따라 해당 기능을 실제 수행해 줄 수 있는 Legacy OS, S/W, H/W 등이 이해할 수 있는 명령어나 API로 다시 전달되어 사용자가 요구하는 IaaS를 구현한다는 것입니다.
실제 기능을 구현해주는 OS, S/W, H/W 등은 OpenStack에 자신을 제어할 수 있도록 Driver 등을 제공하여 OpenStack이 연동될 수 있도록 해주는 것입니다. 이러한 경우 사용자가 OpenStack에 내리는 명령은 하단의 S/W, H/W가 변동되거나 이기종을 사용하더라도 변하지 않으므로 유연하고 확장이 용이한 장점을 가지고 있는 것이죠.
예를 들어 전통적인 클라우드 환경에서는 ‘엔진’ 영역을 별도 개발하여 운영하였으나, 새로운 H/W나 S/W가 출시되어 활용하고자 할 때는 ‘엔진’을 새로이 개발하여야 하는 단점이 존재했었지만, OpenStack 환경에서는 Driver만 연결해준다면 이런 경우 ‘포털’이나 ‘엔진’ 등을 개발하거나 개선할 내용이 없거나 줄어드는 겁니다.
그리고 위와 같은 OpenStack의 장점을 누리기 위해서는 많은 준비와 노력도 필요합니다.
OpenStack으로 클라우드 서비스를 하기 위해서는 OpenStack 기술뿐만 아니라, 위에서 언급한 OS, S/W, H/W에 대한 전문지식도 많이 필요합니다. 더구나 OpenStack은 오픈소스 베이스라서 대부분 기능구현을 위해 오픈소스 S/W를 많이 사용하고 있습니다.
KVM(하이퍼바이저), OpenVSwitch(가상스위치), RabbitMQ, MySQL or MariaDB 데이터베이스, 리눅스OS의 Iptables, 스토리지 프로토콜(iSCSI, SAN, NAS 및 Ceph 등)에 대한 이해가 없이는 구현도 어려울 뿐 아니라, 각 요소의 이슈 발생 시 대처하기도 어려울 수 있기 때문입니다. (상기 컴포넌트는 필요에 따라 선택 가능합니다)
OpenStack을 하고자 하신다면 몇 명의 오픈소스 개발자로 시작할 것이 아니라 각 영역(서버, 스토리지, 네트워크 등)의 인프라 전문가, 그리고 데이터베이스, 빅데이터, DNS 등의 서비스 전문가 등이 함께 협업해야 원하는 결과를 얻으실 수 있을 것입니다. (몇 명의 개발자가 위에 언급한 모든 기술과 서비스를 이해하기도 어렵지만 전문기술을 단시간에 가지기란 더더욱 어렵겠지요).
일반 기업에서 위의 IT 기술 인력을 유지하고 OpenStack을 준비한다는 것은 어려울 수 있습니다. 최근 OpenStack을 구축•유지 보수하는 서비스를 상용화하여 지원하는 IT 기업들이 늘어나고 있는 이유일 것입니다.
l 출처: www.openstack.org
‘vHosting+’는 Nova-Network라는 아키텍처 기반으로 모든 VM이 Flat Network에 구현되어 사용되는 구조로 테넌트 간 네트워크 분리가 아닌 공유 구조의 서비스였습니다. 네트워크가 공유구조이므로 Security Group을 이용하여 테넌트 간 보안을 유지해야 했습니다.
같은 해에 추가적인 준비로 Swift를 이용한 오브젝트 스토리지 서비스인 ‘vStorage’, Quantum(현재 Neutron)을 이용한 테넌트 별 독립된 네트워크를 제공하는 ‘VPC’ 서비스도 퍼블릭에 오픈할 수 있었습니다.
l 출처: www.openstack.org
‘VPC(Virtual Private Cloud)’는 상기 이미지와 같이 각 테넌트 별로 프라이빗 네트워크를 원하는 Tier만큼 생성할 수 있으며, 테넌트 전용의 가상라우터를 제공하여 테넌트 내 네트워크를 연결하여 운영하는 방식으로 최근까지도 대표적인 퍼블릭 클라우드 서비스에서 가장 많이 활용되는 서비스 아키텍처를 제공하는 서비스입니다.
상기 서비스는 퍼블릭뿐만 아니라 기업의 프라이빗 클라우드에서도 활용할 수 있는 아키텍처이지만 Enterprise 기업의 경우 가상 라우터에 대한 성능, 신뢰성을 염려하거나, 기존 Legacy 네트워크와의 연계 등을 위해서 다르게 응용하여 활용하기도 합니다.
2013년의 경험을 바탕으로 2014년부터는 OpenStack을 이용한 ‘프라이빗 클라우드’를 시도했습니다.
이는 고객의 데이터센터 영역 내 Legacy 네트워크에 ‘프라이빗 클라우드’ 환경을 구성하여 가상화 기반의 SDDC(Software-Defined Data Center) 서비스 환경을 구축•제공하는 서비스입니다.
‘VPC’환경과 같이 구성할 수도 있지만, 고객의 데이터센터 라우터를 이용하고자 할 때는 이와 같은 아키텍처를 이용하여 구성할 수도 있는데요. 고객의 요구에 따라 다양한 아키텍처로 ‘프라이빗 클라우드’ 환경을 제공하고 있습니다.
2014년부터 Enterprise OpenStack 아키텍처(Private)를 구축한 경험을 바탕으로 2015년에는 국내유명 인터넷 가격 비교 사이트에 프라이빗 클라우드를 구축했습니다. 현재 이는 고객의 B2C 서비스에 활용되고 있습니다.
또한, 2015년에는 자체 Cloud Manager인 ‘LG CNS Cloud Manager’를 개발하여 좀 더 쉽고 친숙한 GUI방식의 Self-Provisioning•모니터링 등의 환경을 제공하고 있습니다. 그리고 2016년부터 현재까지 공공기업 및 다양한 Enterprise에 OpenStack을 이용한 ‘프라이빗 클라우드’환경을 제공하고 있습니다.
LG CNS는 OpenStack Folsom버전부터 최근 발표된 Newton버전까지 다양한 패치를 적용하여 활용 중입니다. OpenStack이 여러 H/W를 사용할 수 있는 범용 오픈소스이고 기능 위주의 솔루션이다 보니 가끔은 운영관점의 요구사항과 배치되는 경우도 있습니다.
LG CNS는 다양한 인프라 운영 경험과 OpenStack 소스 분석•패치를 통해 사용자 의향대로 설계하여 활용하고 있습니다. 또한 대규모 클라우드 환경에서 경험 가능한 기능적 제약 사항 및 버그(Bug)들을 식별하고 소스 수정을 통해 보다 나은 품질의 서비스를 제공합니다.
지금까지 OpenStack 클라우드 플랫폼 및 LG CNS의 OpenStack의 경험과 사례를 소개해 드렸습니다. 감사합니다.
글 ㅣ LG CNS 인프라서비스담당
* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.
* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.
'IT Solutions' 카테고리의 다른 글
쉽게 이해하는 블록체인 ‘What is Corda?’ (1) | 2017.12.18 |
---|---|
블록체인, 정말 혁명적 기술인가? (1) | 2017.11.21 |
디지털 사이니지에 더하는 특별함 ‘LG Signage Manager' (0) | 2017.07.28 |
LG CNS의 특별한 사이니지 솔루션 ‘LG Signage Manager’ (0) | 2017.06.19 |
디지털 사이니지를 넘어 스마트 사이니지로 (0) | 2017.05.22 |