오픈스택(OpenStack)이란?
1. 오픈스택의 탄생
클라우드 컴퓨팅의 대표 오픈소스 플랫폼인 오픈스택은 NASA의 연구 프로젝트에서 그 뿌리를 찾을 수 있다.
2008년, NASA 에임스 연구소는 웹사이트 통합과 표준화를 위해 NASA.net이라는 내부 프로젝트를 시작했다. 이 프로젝트는 점차 방대한 양의 데이터를 효율적으로 저장하고 분석하기 위한 Nebula 프로젝트로 확장되었고, 클라우드 컴퓨팅의 필요성이 대두되기 시작한다.
비슷한 시기, 전 세계에서 두 번째로 큰 퍼블릭 클라우드 기업인 Rackspace는 자체 개발한 컴퓨팅 및 스토리지 기술을 오픈소스로 개방하고자 했다. 이들은 NASA의 Nebula 프로젝트에 주목하며, NASA는 컴퓨팅 자원 기술을, Rackspace는 스토리지 기술을 제공하며 협업을 시작한다.
그 결과 2010년 6월, OpenStack이라는 이름으로 정식 오픈소스 클라우드 인프라 플랫폼이 공개되었다.
이 프로젝트는 공개된 그 순간부터 세계 개발자 커뮤니티의 관심을 받았고, 다양한 기업과 기관에서 채택되어 점차 클라우드 인프라의 표준으로 자리 잡게 된다.
2. 오픈스택의 철학
오픈스택은 100% 파이썬으로 개발된 오픈소스 프로젝트이다. 따라서 상용 클라우드 솔루션과 가장 큰 차이는 바로 자유도에 있다.
예를 들어, AWS나 Azure 같은 상용 클라우드는 문제가 발생했을 때 벤더사의 기술 지원을 받을 수 있지만, 내부 구조에 직접 접근해서 수정하는 것은 어렵다. 반면, 오픈스택은 모든 코드가 공개되어 있기 때문에 인프라 엔지니어가 직접 원인 분석 및 수정을 할 수 있다. 이는 단순히 개발 편의성의 문제가 아니라 운영 효율성, 비용 절감, 독립성 확보라는 중요한 가치로 이어진다.
또한 파이썬은 스크립트 기반의 언어이자 학습 곡선이 낮아, DevOps 환경에서의 자동화에도 매우 적합하다. 오픈스택은 "누구나 자신만의 클라우드를 만들고 운영할 수 있도록" 하는 철학을 바탕으로 설계된 인프라 플랫폼이다.
3. 오픈스택의 클라우드 제공 방식
클라우드 인프라는 물리적인 IT 인프라(서버, 스토리지, 네트워크 등)를 가상화하여 사용자에게 서비스 형태로 제공하는 구조이다. 핵심은 이 물리 자원을 API 기반으로 추상화하고, 필요할 때 즉시 생성·확장·삭제할 수 있는 환경을 제공하는 것이다.
오픈스택은 이 인프라를 직접 만들지는 않지만, 각각의 리소스를 제어하고 상태를 관리하는 역할을 한다. 실제 가상머신(VM)을 만드는 건 하이퍼바이저(KVM, QEMU 등), 스토리지를 제공하는 건 백엔드 스토리지 시스템(NAS, SAN 등)이지만, 오픈스택이 이들을 하나의 시스템처럼 통합하여 관리해주는 것이다. 이 역할을 수행하기 위해 오픈스택은 드라이버 기반 아키텍처를 갖추고 있어, 다양한 하드웨어 및 가상화 도구와 연동할 수 있다.
4. 오픈스택의 핵심 컴포넌트
오픈스택의 핵심 컴포넌트는 다음과 같다.
컴포넌트 | 설명 |
Nova | 가상머신 인스턴스를 생성하고 관리하는 컴퓨팅 서비스 |
Glance | OS 이미지를 저장하고 배포하는 이미지 서비스 |
Cinder | 블록 스토리지(디스크 볼륨)를 제공하는 서비스 |
Neutron | 가상 네트워크를 구성하는 네트워크 서비스 |
Swift | 대용량 오브젝트 파일 저장을 위한 스토리지 서비스 |
Keystone | 사용자 인증, 권한 부여를 담당하는 인증 서비스 |
이외에도 Horizon(웹 대시보드), Heat(오케스트레이션), Ceilometer(모니터링) 등 다양한 확장 서비스가 존재한다.