목록으로

클라우드

DevStack 완전 가이드: OpenStack 개발과 테스트 환경의 구조와 활용

BeanCon
DevStack 완전 가이드: OpenStack 개발과 테스트 환경의 구조와 활용

DevStack의 개념, 아키텍처, 설치, 설정, 지원 서비스, 네트워킹, 문제 해결, 활용 사례와 베스트 프랙티스를 정리한 완전 가이드입니다.

OpenStack은 수십 개 서비스가 맞물려 동작하는 강력한 클라우드 플랫폼입니다. 그러나 개발이나 테스트 목적으로 환경을 빠르게 띄우려면 프로덕션 설치처럼 복잡한 준비가 필요하지 않아야 합니다. DevStack은 그런 목적을 위해 OpenStack 커뮤니티가 제공하는 공식 배포 도구입니다.

DevStack이란?

DevStack은 단일 머신에 OpenStack 서비스를 자동으로 설치하고 구성하기 위한 스크립트 모음입니다. 개발, 테스트, 학습, 개념 검증, 기능 검증, CI/CD 환경에서 빠르게 반복 가능한 OpenStack 배포를 만드는 데 사용되며, 프로덕션 배포용으로는 설계되지 않았습니다.

DevStack이 필요한 이유

Database services
Message queues
Identity services
Compute services
Networking
Storage
APIs
Authentication

OpenStack을 수동으로 설치하면 데이터베이스, 메시지 큐, 아이덴티티, 컴퓨트, 네트워킹, 스토리지, API, 인증까지 수많은 설정을 직접 맞춰야 합니다. DevStack은 이 과정을 자동화해 몇 가지 명령만으로 환경을 구성할 수 있게 해 줍니다.

DevStack 아키텍처

DevStack Host
Keystone
Nova
Neutron
Glance
Cinder
Horizon
MariaDB / RabbitMQ
대부분의 서비스는 단일 서버에서 실행됩니다.
  • 개발용으로 단순하고 빠른 배포를 제공합니다.
  • 서비스 설치와 초기 구성을 자동화합니다.
  • 실험과 테스트에 적합한 일관된 환경을 만듭니다.

DevStack의 주요 목적

대상주요 용도
OpenStack 개발자코드 변경사항 테스트
QA 팀새 릴리스 검증
학생OpenStack 아키텍처 학습
엔지니어PoC 환경 구축
CI/CD 파이프라인자동화 테스트 환경

DevStack은 어떻게 동작하는가?

스크립트역할
stack.shOpenStack 설치
unstack.sh서비스 중지
clean.sh환경 정리
rejoin-stack.sh서비스 세션 재연결
worlddump.py진단 정보 수집

설치 워크플로

Linux 설치
DevStack 저장소 복제
local.conf 구성
stack.sh 실행
서비스 설치
Horizon 대시보드 접근

지원 운영 체제와 하드웨어 요구사항

지원 배포판비고
Ubuntu 22.04 LTS가장 흔한 환경
Ubuntu 24.04 LTS최신 장기 지원 배포판
Rocky Linux엔터프라이즈 계열
CentOS Stream개발/테스트에 사용 가능
Debian가벼운 실험 환경에 적합
리소스최소 랩권장 풀 테스트
CPU4코어8코어 이상
메모리8GB16~32GB
저장소50GB SSD100GB 이상 SSD
가상화인터넷 연결KVM 지원

DevStack 설치하기

sudo useradd -s /bin/bash -d /opt/stack -m stack
sudo passwd stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
git clone https://opendev.org/openstack/devstack
cd devstack
./stack.sh

local.conf 파일

[[local|localrc]]

ADMIN_PASSWORD=SecretPass
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

HOST_IP=192.168.1.100

서비스 활성화와 비활성화

enable_service heat
enable_service magnum
enable_service swift
disable_service cinder

기본 OpenStack 서비스

서비스기능
Keystone아이덴티티
Nova컴퓨트
Neutron네트워킹
Glance이미지
Horizon대시보드
Placement리소스 추적
Cinder블록 스토리지
RabbitMQ메시징
MariaDB데이터베이스

Networking in DevStack

Public Network
Router
Private Network
Instances
  • Networks
  • Subnets
  • Routers
  • Floating IPs

Horizon 접근

http://SERVER_IP/dashboard

예시:
http://192.168.1.100/dashboard

기본 사용자: admin
비밀번호: local.conf의 ADMIN_PASSWORD

서비스 관리

systemctl status devstack@...
sudo systemctl list-units

중지, 재시작, 정리

./unstack.sh - 모든 OpenStack 서비스를 중지합니다.
./rejoin-stack.sh - 터미널 연결이 끊긴 뒤 서비스 세션에 다시 연결할 때 유용합니다.
./clean.sh - 데이터베이스, 네트워크, OpenStack 서비스, 임시 파일을 제거합니다.

주요 사용 사례

  • OpenStack 학습 랩: 학생이 인스턴스, 네트워크, 볼륨을 생성하며 구조를 익힙니다.
  • OpenStack 개발: Nova, Neutron, Horizon, API 변경을 빠르게 검증합니다.
  • CI/CD 테스트: 프로젝트가 자동화 파이프라인에서 DevStack을 배포해 검증합니다.
  • 플러그인 개발: Horizon 플러그인, Neutron 확장, Cinder 드라이버, Nova 통합을 시험합니다.

멀티 노드 DevStack

Controller Node
Compute Node 1
Compute Node 2
고급 테스트용으로만 사용합니다.

DevStack vs Production OpenStack

FeatureDevStackProduction
PurposeDevelopmentProduction
High AvailabilityNoYes
Security HardeningMinimalExtensive
Multi-NodeLimitedFull Support
MonitoringBasicEnterprise Grade
ReliabilityTesting OnlyMission Critical

DevStack의 장점

  • 빠른 배포
  • 공식 OpenStack 프로젝트
  • 최신 OpenStack 릴리스 지원
  • 학습에 적합
  • 개발에 이상적
  • 자동 구성
  • 서비스 활성화/비활성화가 쉬움
  • 강한 커뮤니티 지원

DevStack의 한계

  • 프로덕션 준비가 되어 있지 않습니다.
  • 보안 하드닝이 제한적입니다.
  • 단일 노드 중심입니다.
  • 빈번한 업데이트로 동작이 바뀔 수 있습니다.
  • 상당한 리소스를 소비합니다.
  • 장기 운영용으로 설계되지 않았습니다.

문제 해결

문제확인 사항로그/명령
설치 실패로그 확인/opt/stack/logs/
RabbitMQ 문제서비스 상태systemctl status rabbitmq-server
데이터베이스 문제MariaDB 상태systemctl status mariadb
Horizon 미노출Apache 상태systemctl status apache2 / httpd
VM 생성 실패Nova 로그/opt/stack/logs/n-cpu.log

베스트 프랙티스

  • VM 내부에서 실행할 경우 Nested Virtualization을 활성화합니다.
  • 편안한 사용을 위해 최소 16GB RAM을 확보합니다.
  • OpenStack 서비스의 I/O 특성상 SSD 저장소를 사용합니다.
  • VMware, Proxmox, KVM 같은 플랫폼에서는 주요 변경 전에 스냅샷을 찍습니다.
  • 학습, 개발, 테스트, CI/CD 용도로 DevStack 환경을 분리해서 운영합니다.

릴리스 테스트와 활용

OpenStack 개발자들은 Antelope, Bobcat, Caracal, Dalmatian, Epoxy 같은 릴리스를 검증할 때 DevStack을 자주 사용합니다. 이 도구는 OpenStack 개발 생태계에서 핵심적인 위치를 차지하며, 새로운 기능과 변경 사항을 빠르게 검증할 수 있는 표준 실험 환경에 가깝습니다.

결론

DevStack은 개발, 테스트, 학습 환경에서 OpenStack을 배포하는 가장 널리 사용되는 공식 도구입니다. Keystone, Nova, Neutron, Glance, Cinder, Horizon 같은 핵심 서비스를 자동으로 설치하고 구성해 OpenStack 실험 환경 구축의 복잡성을 크게 줄여 줍니다. 프로덕션 용도는 아니지만, 개발자, 시스템 엔지니어, 학생, QA 팀에게 빠르고 유연하며 반복 가능한 OpenStack 환경을 제공한다는 점에서 매우 중요한 도구입니다.

댓글

0

댓글을 불러오는 중입니다.