Openstack

Openstack horizon이란? (dashboard)

Somaz 2022. 8. 8. 18:24
728x90
반응형

 

Overview

 

오늘은 OpenStack의 대시보드(Dashboard) 서비스인 Horizon에 대해 학습하고 정리하려고 한다.

 

출처 : https://docs.vscentrum.be/cloud/dashboard.html

 

 

 

📅 관련 글

2022.05.11 - [Openstack] - Openstack이란?

2022.07.29 - [Openstack] - Openstack Nova란?

2022.08.08 - [Openstack] - Openstack Neutron이란? (network)

2022.08.08 - [Openstack] - Openstack 배치 서비스 Placement란?

2022.08.08 - [Openstack] - Openstack Glance란? (image)

2022.08.08 - [Openstack] - Openstack Keystone이란? (identity)

 

 

 


 

1️⃣ Horizon이란?

 

🔹 OpenStack Horizon 개요

Horizon은 OpenStack 환경을 웹 기반 GUI(Graphic User Interface)로 관리할 수 있도록 제공하는 대시보드(Dashboard) 서비스이다. 즉, 사용자와 관리자가 OpenStack 클라우드의 인프라 및 서비스를 손쉽게 제어할 수 있도록 지원하는 웹 인터페이스다.

 

📌 Horizon의 주요 기능

  • ✔ GUI 기반의 OpenStack 관리 기능 제공
  • ✔ 클라우드 리소스(Nova, Glance, Cinder, Neutron 등) 관리
  • ✔ 사용자 계정 및 권한(Role) 관리
  • ✔ 인스턴스 생성 및 관리(Compute 관리)
  • ✔ 스토리지 및 네트워크 설정 변경 가능

📌 CLI 없이도 OpenStack을 쉽게 관리할 수 있도록 돕는 핵심 컴포넌트다.

 

 

 

 


 

 

2️⃣ Horizon의 주요 특징

Horizon은 웹 기반 GUI 대시보드로 동작하며, OpenStack의 여러 서비스와 API를 연동하여 다음과 같은 기능을 제공한다.

 

기능 설명
사용자 인터페이스 제공 웹 브라우저에서 OpenStack 자원을 손쉽게 관리 가능
멀티 테넌트(Multi-Tenancy) 지원 프로젝트별로 자원을 격리하여 관리
REST API 기반 서비스 연동 OpenStack 서비스(Nova, Glance, Cinder, Neutron 등)와 연동
RBAC(Role-Based Access Control) 적용 사용자 역할(Role)에 따라 접근 권한을 제어
확장성(Extensibility) 지원 필요에 따라 추가 기능(Custom Panels) 개발 가능

📌 Horizon은 CLI 없이도 OpenStack을 쉽게 사용할 수 있도록 돕는 필수 요소다.

 

 

 


 

 

 

3️⃣ Horizon의 아키텍처 및 동작 원리

Horizon은 Django 기반의 웹 애플리케이션으로 개발되었으며, OpenStack 서비스와 REST API를 통해 통신한다.

 

🔹 Horizon의 논리적 아키텍처

+---------------------+
|  Web Browser (UI)  |
+---------------------+
         |
         v
+---------------------+
|     Horizon UI     |
|  (Django Web App)  |
+---------------------+
         |
         v
+---------------------+
|   OpenStack APIs   |
|  (Keystone, Nova,  |
|  Glance, Neutron,  |
|   Cinder, Swift)   |
+---------------------+

📌 Horizon은 OpenStack API를 통해 백엔드 서비스와 직접 연결되며, 웹 인터페이스를 통해 이를 쉽게 관리할 수 있도록 한다.

 

 

 


 

 

4️⃣ Horizon의 주요 구성 요소

Horizon은 여러 개의 Django 모듈로 구성되어 있으며, OpenStack 서비스와 연동하여 클라우드 자원을 관리할 수 있도록 한다.

 

 

구성 요소 설명
Django Web Framework Python 기반의 웹 프레임워크 (Horizon의 기반)
Horizon Dashboard (horizon module) 웹 UI를 렌더링하는 메인 대시보드 모듈
Panels & Tabs 특정 기능(예: Nova, Cinder, Neutron 관리)을 위한 개별 패널
OpenStack API Client OpenStack 서비스(Nova, Glance, Neutron 등)와 API를 통해 통신

📌 Horizon은 Django 웹 프레임워크 기반으로 설계되었으며, OpenStack API와 연결하여 대시보드를 구성한다.

 

 

 


 

 

5️⃣ Horizon에서 관리할 수 있는 주요 기능

Horizon을 통해 OpenStack의 주요 서비스를 직접 관리할 수 있다.

 

 

기능 설명
사용자 및 프로젝트 관리 사용자 계정 생성 및 프로젝트(Role) 할당
인스턴스(Compute) 관리 Nova 인스턴스(VM) 생성, 삭제, 스냅샷 생성
스토리지 관리 Cinder 볼륨 생성, 삭제, 스냅샷 관리
네트워크 관리 Neutron 네트워크 및 서브넷, Floating IP 설정
이미지 관리 Glance 이미지 업로드 및 삭제
보안 그룹 및 키페어 관리 방화벽 규칙(Security Group) 및 SSH Key 등록

📌 Horizon을 활용하면 OpenStack CLI 없이도 다양한 기능을 손쉽게 사용할 수 있다.

 

 

 


 

 

 

 

6️⃣ Horizon의 인증 및 접근 제어

Horizon은 Keystone과 연동하여 인증(Authentication) 및 접근 제어(Authorization)를 수행한다.

 

🔹 Horizon 인증 과정

1️⃣ 사용자가 로그인 화면에서 ID & 비밀번호 입력

2️⃣ Horizon이 Keystone API에 인증 요청

3️⃣ Keystone이 사용자의 인증을 수행 후, 세션(Session) 또는 Token 발급

4️⃣ 사용자가 인증된 상태에서 OpenStack 서비스(Nova, Glance 등)에 접근 가능

 

📌 Keystone과 연동하여 프로젝트 및 사용자 기반 접근 제어를 수행한다.

 

 

 


 

 

 

 

7️⃣ Horizon을 활용한 OpenStack 관리 예제

 

🔹 1) 인스턴스(Compute) 생성

1️⃣ Horizon에 로그인

2️⃣ 왼쪽 메뉴에서 "Compute → Instances" 선택

3️⃣ "Launch Instance" 클릭

4️⃣ 필요한 정보(이름, 이미지, 네트워크, 보안 그룹 등) 입력 후 생성

 

📌 CLI 없이도 GUI에서 쉽게 인스턴스를 생성할 수 있다.

 

🔹 2) 네트워크(Floating IP) 할당

1️⃣ 왼쪽 메뉴에서 "Network → Floating IPs" 선택

2️⃣ "Allocate IP" 클릭하여 외부 IP 할당

3️⃣ "Associate" 버튼을 눌러 인스턴스와 연결

📌 외부 네트워크에 접근하기 위해 Floating IP를 설정할 수 있다.

 

 

🔹 3) 볼륨(스토리지) 생성

1️⃣ 왼쪽 메뉴에서 "Volumes → Create Volume" 선택

2️⃣ 볼륨 이름 및 크기 입력 후 "Create" 클릭

3️⃣ 인스턴스에 연결하려면 "Manage Attachments"에서 연결 수행

📌 GUI에서 볼륨을 생성하고 관리할 수 있다.

 

 

 


 

 

8️⃣ Horizon의 확장성(Extensibility)

Horizon은 커스텀 플러그인을 추가하여 새로운 기능을 확장할 수 있다.

 

📌 Horizon 확장 기능

  • ✔ Custom Dashboard 추가 가능
  • ✔ 새로운 Panel(기능) 개발 가능
  • ✔ Django 기반 확장 모듈 활용 가능

 

 

 


 

 

9️⃣ 결론

 

📌 Horizon은 OpenStack을 GUI 환경에서 손쉽게 관리할 수 있도록 제공되는 대시보드 서비스다.

  • ✔ OpenStack의 웹 기반 관리 인터페이스 제공
  • ✔ Nova, Glance, Neutron, Cinder 등의 서비스와 연동
  • ✔ 사용자, 프로젝트, 네트워크, 스토리지 등을 GUI에서 쉽게 관리 가능
  • ✔ Django 기반으로 확장성이 뛰어나며, REST API를 통해 OpenStack 서비스와 연동

 

 

📌 Horizon을 효과적으로 활용하려면?

  • ✔ OpenStack CLI와 API 활용법을 이해하고 Horizon과 비교해보기
  • ✔ 사용자 인증 및 접근 제어(RBAC) 구조 익히기
  • ✔ Horizon의 확장 기능(커스텀 패널, 대시보드 개발 등) 활용하기

 

 

 

 

 


Reference

https://wiki.openstack.org/

https://www.openstack.org/

 

728x90
반응형