Openstack

OpenStack Heat란? (Orchestration)

Somaz 2025. 2. 27. 14:27
728x90
반응형

Overview

오늘은 OpenStack의 오케스트레이션 서비스인 Heat에 대해 공부해보려고 한다.

출처 : https://wiki.openstack.org/wiki/Heat/Blueprints/Multi_Region_Support_for_Heat

 
 
 

📅 관련 글

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)
2022.08.08 - [Openstack] - Openstack horizon이란? (dashboard)
2022.08.09 - [Openstack] - Openstack Cinder/Swift란? (block storage/object storage)
 
 
 
 


 

OpenStack Heat란? (Orchestration)

OpenStack Heat는 클라우드 환경에서 인프라 리소스를 코드로 정의하고 자동으로 배포할 수 있도록 지원하는 Orchestration as a Service(OaaS)이다.

 

Heat는 YAML 형식의 템플릿을 사용하여 클라우드 인프라를 정의하고, 이를 통해 가상 머신, 네트워크, 스토리지 등을 자동으로 생성하고 관리할 수 있다.

 

AWS CloudFormation과 유사한 기능을 제공하며, 인프라의 일관성을 유지하고 반복적인 배포 작업을 간소화하는 데 유용하다.

 
 

 


 
 

 


 
 

Heat의 역할 및 구성요소

 

역할

  • 클라우드 환경에서 인프라를 코드(Infrastructure as Code, IaC)로 정의하여 자동화된 배포 가능
  • OpenStack의 다양한 서비스(Nova, Neutron, Cinder 등)와 통합하여 워크플로우 자동화 지원
  • 동일한 환경을 재현할 수 있도록 인프라의 버전 관리 및 템플릿화 가능
  • 확장성과 가용성을 고려하여 애플리케이션 배포 및 스케일링 가능

 

Heat의 구성요소

구성요소 설명
Heat API 사용자 요청을 받아 Heat 엔진으로 전달하는 RESTful API 서비스
Heat Engine 템플릿을 분석하고 OpenStack 서비스와 연동하여 리소스를 배포
Heat CLI 명령줄에서 Heat를 조작할 수 있도록 하는 CLI 도구
Heat Template (HOT) YAML 기반의 템플릿으로 인프라를 정의하는 문서
Heat Orchestration Stack Heat가 관리하는 인프라 구성 요소들의 집합

 
 
 

Heat 템플릿 (HOT - Heat Orchestration Template)

Heat에서는 YAML 형식의 템플릿을 사용하여 인프라를 정의한다. 이 템플릿을 Heat Orchestration Template (HOT)이라고 하며, 주요 구성 요소는 다음과 같다.

heat_template_version: 2018-08-31

description: Simple Heat Example

parameters:
  image_id:
    type: string
    description: Image ID for the instance

resources:
  my_instance:
    type: OS::Nova::Server
    properties:
      name: ExampleVM
      image: { get_param: image_id }
      flavor: m1.small

 

템플릿 주요 구성 요소

  • heat_template_version: 사용할 Heat 템플릿 버전 지정
  • description: 템플릿에 대한 설명
  • parameters: 템플릿 실행 시 사용자 입력을 받을 변수 정의
  • resources: 생성할 OpenStack 리소스 정의 (예: 가상 머신, 네트워크 등)
  • outputs: 배포 후 사용자에게 제공할 값 (예: IP 주소 등)

 
 


 
 
 
 

Heat의 주요 기능

 

1️⃣ 자동화된 인프라 배포

  • YAML 템플릿을 사용하여 동일한 환경을 반복적으로 생성 가능
  • 개발 환경, 테스트 환경, 운영 환경을 동일한 설정으로 유지 가능

 

2️⃣ 스택(Stack) 관리

  • Heat를 사용하면 여러 개의 OpenStack 리소스를 하나의 Stack으로 그룹화하여 관리할 수 있다.
  • Stack 생성, 수정, 삭제를 한 번에 수행 가능

 

3️⃣ Auto Scaling & Self-Healing

  • 특정 조건이 충족되면 자동으로 인스턴스를 추가/제거하여 스케일링 가능
  • 장애 발생 시 자동 복구(Self-Healing) 지원

 

4️⃣ 다른 OpenStack 서비스와 통합

  • Nova(컴퓨트), Neutron(네트워크), Cinder(스토리지) 등과 연동하여 전체 인프라 구성 가능
  • Load Balancer, Database 등 추가 리소스까지 한 번에 배포 가능

 
 
 
 


 
 
 
 

Heat 사용 예제

 

1️⃣ Heat Stack 생성

openstack stack create -t my_template.yaml --parameter image_id=abcd1234 my_stack

 

2️⃣ 배포된 Stack 확인

openstack stack list

 

3️⃣ Stack 삭제

openstack stack delete my_stack

 

 


 

 

결론

  • OpenStack Heat는 Infrastructure as Code(IaC) 개념을 적용하여 클라우드 환경을 자동화하는 강력한 도구이다.
  • YAML 템플릿을 통해 OpenStack 리소스를 쉽게 배포하고 관리할 수 있으며, Auto Scaling 및 Self-Healing 기능을 지원하여 가용성을 높일 수 있다.
  • OpenStack 기반의 클라우드를 구축하거나 운영할 때 Heat를 활용하면 반복적인 배포 작업을 자동화하고 인프라를 일관되게 관리할 수 있다.
  • AWS CloudFormation과 유사한 기능을 제공하므로, 클라우드 운영 자동화를 고려한다면 Heat는 필수적인 서비스라 할 수 있다.

 
 
 
 


Reference

https://wiki.openstack.org/wiki/Heat
https://github.com/openstack/heat
https://wiki.openstack.org/wiki/Heat/Blueprints/Multi_Region_Support_for_Heat

728x90
반응형