예전 포스팅 (~2018)

Private Cloud - Openstack

akaranch 2021. 9. 23. 15:14

- 프라이빗 클라우드와 퍼블릿 클라우드의 차이점 -

  • 프라이빗 클라우드와 퍼블릭 클라우드서비스에서 제공하는 서비스의 유형은 크게 다르지 않다.
  • 클라우드 서비스를 제공하는 클라우드 컴퓨팅 인프라를 관리 운영하는 역할을 누가 맡느냐의 차이다.
  • 사용자가 직접 맡는 것 - 프라이빗 클라우드 (별도의 기업이나 조직을 위한 클라우드 서비스)
  • 서비스 제공자가 맡는것 - 퍼블릭 클라우드 (이용 대상에 제한을 두지 않는 클라우드 서비스)

 

  • 클라우드 컴퓨팅 인프라 계층 : 클라우드 서비스를 위해 구축하는 하드웨어나 소프트웨어로 이루어지는 영역
  • 클라우드 플랫폼 계층 : 클라우드 컴퓨팅 인프라를 관리하기 위한 플랫폼으로 예를 들면 오픈스택같은 플랫폼을 구축해야하는 계층
  • 클라우드 포털 계층 : 클라우드 플랫폼과 연동하여 사용자와 운영자의 창구역할을 담당 (대부분 웹 서비스로 구성)
  • 클라우드 서비스 제공 계층 : 가상머신 서비스, 스토리지 서비스 등의 클라우드 서비스를 제공하는 영역

---------------↑서비스 제공자의 역할과 책임---------------↓클라우드 서비스 사용자의 역할과 책임---------------

  • 클라우드 서비스 사용 계층 : 가상머신 서비스나 스토리지 서비스 같은 클라우드 서비스를 이용하기 위한 컨설팅, 구축, 운영하는 업무
  • 미들웨어 서비스 계층 : 응용 시스템을 개발, 운영하는 조직이나 TA(Technical Architecture) 조직에서 미들웨어의 구성이나 운영역할을 수행
  • 응용 서비스 계층 : 클라우드 서비스 영역 X 기존 시스템을 개발, 운영하는 조직의 역할과 동일

- 고려사항 -

 

1.표준화된 기술을 활용하여 아키텍처를 설계할 것 

-확장성을 확보하고 향후 비용 투자를 최소화할 수 있기 때문이다.

2.장애에 대한 내성을 가진 아키텍처로 설계할 것

-클라우드는 서비스 형태로 제공하며 SLA(Service Level Agreement)를 만족해야 하는 계약 아래에서 서비스를 제공하기 때문이다.

3.자동화가 가능한 아키텍처로 설계할 것

-비용 면에서 효율적인 클라우드 서비스를 구축하기 위해서는 자동화된 설계가 필요하다. 자동화는 운영 비용을 낮추고 적시성을 높여준다. 

 

 

 

 

- 프라이빗 클라우드 개념적인 구조 -

  • 제일 하단에 서버, 네트워크, 스토리지 등의 물리적 계층이 존재하고 바로 위에 이를 가상화한 가상화 계층이 존재한다.
  • 가상화 계층은 CPU, 메모리와 같은 물리 자원을 Hypervisor를 통해서 가상화 하고, 네트워크와 스토리지를 가상화하여 가상 머신에게 제공하는 계층
  • 가상화 계층 위에 위치하는 클라우드 플랫폼은 가상화된 자원을 기반으로 클라우드 서비스를 제공하는 개발 도구이자 관리도구의 역할이다.
  • 클라우드 포털은 사용자 포털과 관리자 포털로 구성하는 것이 일반적이다.

- OPENSTACK 이란 -

 

​오픈스택 소프트웨어는 하나의 소프트웨어가 아닌 여러 개의 소프트웨어로 구성이 되어 있다. 전체적으로 OpenStack은 클라우드 컴퓨팅의 한분야인 IaaS(Infrastructure-as-a-Service)를 제공하며 이를 구성하는 세부 프로젝트들은 사용자에게 API(Application Program Interface)로 제공한다.

 

- OPENSTACK 설치시 유의 사항 -

 

설치 과정 복잡하고 어렵기 때문에 Ubuntu에서는 스크립트를 이용하는 devstack 방식으로 먼저 설치 해본다.

단, 이경우는 시스템을 재부팅하면 사용불가

   Redhat 계열은 자동화 프로그램인 Puppet을 이용하여 설치하는 PackStack 방식으로 설치해본다.

 

- OPENSTACK 기본 구조 (Network Node 포함) -

오픈스택은 크게 네트워크 컴포넌트와 오픈스택 컴포넌트로 구분할 수 있다.

 

네트워크 컴포넌트 : 프라이빗 클라우드 서비스 보호를 위한 방화벽등의 보안 시스템과 네트워킹 부하 분산을 위한 L3, L4 스위치들로 구성

오픈스택 컴포넌트 : 기본적으로 컴퓨터 노드와 컨트롤러 노드로 구성

  (추가적으로 스토리지 노드와 네트워크 노드를 구성할 수 있다)

  • Compute Node : 인스턴스 프로비져닝 서비스를 제공하는 노드(Nova)
  • Controller Node : 이미지 서비스, 컴퓨트 노드 제어, 네트워킹 제어, 인증, 대시보드 등등 클라우드 제어와 운영을 위한 서비스 제공

(단일 노드로 구성하는 것이 가능하지만, 장애 발생시를 유념하여 최소 3대의 노드로 HA를 구성하여 가용성을 확보)

  • Storage Node : 가상 머신에 파일 시스템을 제공하는 Cinder와 오브젝트 데이터의 저장공간을 제공하는 Swift로 구성
  • Network Node : Network Node 는 Controller Node와 통합하여 구성할 수 있지만, Network Node가 제공하는 다양한 고급 네트워크 기능(DHCP,SNAT,DNAT등)을 사용하기 위해 따로 구성하기도 한다. 그러나 컨트롤러 노드와 통합하여 구성하고 HA를 구성하는 것이 좋다. 별도로 구성하게 될 시, 관리해야 될 노드가 많아진다는 문제점이 생김

오픈스택 서비스 컴포넌트 : 오픈스택을 구성하는 서비스 컴포넌트로 6개의 코어 서비스 컴포넌트와 13개의 옵셔널 서비스들로 구성

6개의 코어 서비스 컴포넌트 중에 Swift를 제외한 5개의 서비스는 클라우드 구축을 위해 필수적으로 필요하다.

 

 서비스 서비스 컴포넌트  상세 설명 
 Compute Nova  가상 머신의 라이프사이클을 관리한다.
 Networking Neutron 사용자가 직접 가상머신의 네트워크를 정의할 수 있도록 지원한다.
 Object Storage Swift  오브젝트 기반 저장 공간을 제공한다.
 Block Storage Cinder  컴퓨트 노드와 가상 머신에 물리 저장 공간을 제공한다.
 Identity Keystone  오픈스택 전반에 걸친 인증과 권한 관리 서비스를 제공한다. 
 Image  Glance  가상 머신 생성을 위한 디스크 이미지를 제공한다.