-
오픈스택이란?개발/클라우드컴퓨팅 2017. 3. 7. 21:58
클라우드 컴퓨팅을 공부하면 자주 등장하는 기술이 오픈스택이다. 오픈소스의 형태로 클라우드 컴퓨팅 환경에서 많은 부분을 지원한다고 하지만, 정확히 오픈 스택이 어떤 일을 하는지, 구체적으로 어떤 목적에 의해 만들어 졌는지에 대해선 아는 바가 없어서 간단히 정리를 해보려고 한다.
오픈스택 홈페이지에서는 오픈스택을 다음과 같이 소개한다.
OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
https://www.openstack.org/software/
요약 번역하면 계산, 저장소, 네트워크 자원들을 관리하는 클라우드 운영체제라고 소개하고 있다.
하지만 위 설명은 클라우드 컴퓨팅이란 것을 알지 못하면 이해하기 어렵다. 간단하게 클라우드 컴퓨팅에 대해서 소개를 먼저 해보면,
개인이 가진 단말기를 통해서는 주로 입/출력 작업만 이루어지고, 정보분석 및 처리, 저장, 관리, 유통 등의 작업은 클라우드라고 불리는 제3의 공간에서 이루어지는 컴퓨팅 시스템 형태라고 할 수 있다. - 위키피디아
예를들면 가지고 있는 스마트폰으로 친구에게 카톡을 보낼 때 나와 나의 친구는 카톡을 보내고 받는 일만 하는 것이고, 카톡 메시지를 친구에게 효율적으로 전송하는 컴퓨팅 방식은 클라우드에서 이뤄지는 것이다.
나와 친구는 메시지를 전송/수신만 한다. 나머지는 클라우드 컴퓨팅 서버에서 모두 관리한다.
클라우드 컴퓨팅에 사용되는 서버들을 제어하려면 전문적인 하드웨어 지식과 서버를 운영하는 운영체제의 지식이 필요한데 이것은 어떤 하드웨어와 운영체제를 사용하느냐에 따라 달라 환경이 바뀔 때 마다 새로운 지식을 습득해야하는 문제가 있다.
이러한 문제를 해결하기 위해 서버의 하드웨어와 운영체제와 관계 없이 클라우드 컴퓨팅 개발의 표준을 제공하는것이 오픈스택이다.
(Hardware, Hypervisor 위에서 Shared Service의 형태로 Compute, Networking, Storage를 제어 할 수 있는 서비스를 제공한다)
Compute, Networking, Storage를 관리 할 수 있는 API를 제공하고 이를 관리하는 Dashboard를 둬서 개발자들이 쉽게 클라우드 컴퓨팅 환경에서 작업 할 수 있도록 돕는 서비스이다. 또한 Hardware, Hypervisor 관련 작업들은 모두 오픈스택이 처리하기 때문에 개발자는 Application을 만드는데 집중 할 수 있다.
현재 오픈스택 프로젝트는 집중 연구 분야에 따라서 여러 형태로 나눠진다.
1단계는 Computing/Storage로 나눠져있고
2단계는 오브젝트 스토리지, Compute, Image Service등으로 나뉘어져 있으며
3단계에서는 추가적인 서비스인 Dashboard, Database등으로 나뉘어져 여러가지 프로젝트가 진행중이다.
앞으로 관심 분야에 따라서 선택해서 공부해보면 좋을것 같다.
'개발 > 클라우드컴퓨팅' 카테고리의 다른 글
SDN과 NFV (0) 2019.04.21 Kubernetes 소개 (0) 2018.06.23 오픈스택 구조 분석 (0) 2017.03.07 클라우드 가상화와 Docker (2) 2017.03.05 클라우드 컴퓨팅(Cloud Computing) (0) 2017.02.25