클라우드 컴퓨팅

JIWON·2025년 6월 9일

Cloud

목록 보기
1/6
post-thumbnail

클라우드 컴퓨팅

1) On-Premise

cloud 개념이 도입되기 전에는 대부분의 기업이 자체 데이터 및 솔루션 등을 저장하기 위해 데이터 센터를 구축하여 IT 서비스를 수행하는 방식

  • 최근 많은 기업이 On-Premise 방식에서 벗어나 Cloud 서비스 전환을 고민하고 있는데 그 이유는 높은 초기 도입 비용과 운용에 따른 추가 비용 때문

2) 클라우드 관련 용어

💠 Cloud Computing

사용자의 직접적인 관리없이 데이터 스토리지와 컴퓨팅 파워와 같은 컴퓨터 시스템 리소스를 필요 시 바로 On-Demand 방식으로 제공하는 것

일반적으로 인터넷을 통해서 사용자가 사용할 수 있는 Data Center


💠 On-Demand

우리가 원하는 시점에 원하는 자원을 사용할 수 있다는 것

자원의 유연성 : 필요할 때 언제든지 쓸 수 있어야 한다


💠 Clustering (클러스터링)

독립된 컴퓨터를 네트워크로 연결해서 마치 하나의 컴퓨터처럼 활용하는 것

느슨하게 또는 강력하게 연결되어 작업을 처리하는 컴퓨터로 하나의 단일 시스템으로 보이게 함

  • 느슨하게는 다른 데이터센터의 컴퓨터를 연결하는 것

  • 강력하게는 동일한 데이터센터 내의 컴퓨터를 연결하는것

❓ 클러스터링을 하는 이유

  • 고가용성(HA) : 한 서버가 죽어도 다른 서버가 서비스 지속
  • 부하 분산(Load Balancing) : 여러서버가 요청을 나눠서 처리하여 성능 향상
  • 확장성(Scalability) : 필요 시 서버를 수평적으로 추가해 성능 확장
  • 장애 복구 : 장애 발생 시 다른 노드로 자동 전환 가능


3) 컴퓨팅 자원의 효율적 활용

1️⃣ 유휴 자원의 활용

유휴자원이란?

  • 컴퓨터가 100% 자원을 항상 사용하는 것이 아니기 때문에, 사용되지 않는 컴퓨팅 자원이 존재함
  • 이 자원을 효율적으로 활용하면 전체 시스템 성능과 자원 활용도를 높일 수 있음

활용 사례 : SETI@HOME 프로젝트

  • 이 프로젝트는 외계에서 온 신호를 수집하고 분석해서 외계 생명체를 탐색하는 프로젝트이다.

  • 참여자의 컴퓨터가 idle 상태일 때, 화면보호기 형태로 외계신호 데이터를 처리함

  • 자발적으로 유휴 자원을 제공받아 대규모 분석 작업 수행

유휴 자원 활용의 한계

  • 네트워크 환경이나 하드웨어/소프트웨어 환경이 다를 경우 작업 실패 가능성 있음

  • 일부 작업이 다른 시스템에 영향을 주거나 시스템 전체를 재부팅시키는 등 안정성 문제 발생 가능


2️⃣ 중재자(Mediator)의 개입

중재자의 역할

  • 자원의 상태를 모니터링하고, 필요 시 유휴 자원을 다른 작업에 할당
  • 사용자가 직접 자원을 관리하지 않아도 되도록 자동화된 스케줄링 기능 제공

대표적 기술: Hypervisor

  • 물리 자원을 가상화하여 서로 격리된 가상 시스템으로 분리
  • 문제가 발생해도 다른 가상 시스템에 영향을 주지 않음
  • 대표적인 가상화 기반 기술이며, 클라우드 컴퓨팅의 핵심 구성 요소

🔸 작업의 로드가 적은 컴퓨팅 자원의 활용

  • 대부분의 컴퓨터는 자원을 100% 사용하지 않는데, 이때 남은 자원을 이용하는 것

  • 이 경우에도 중재자가 필요하다.

🔸 컴퓨팅 자원의 활용과 안정성

낮은 활용성 상태의 컴퓨터에 일부 작업을 전송해서 처리하는 경우

작업의 일부분을 다른 컴퓨터에 전송해서 처리하게 되면 활용도를 높일 수는 있지만 속도와 안정성은 담보할 수 없다.

다른 두개의 컴퓨터의 환경이 다르다면 한 쪽의 작업을 다른 쪽으로 일부 전송해을 때 환경이 맞지 않아서 완료되지 못할 수도 있다.

작업이 완료되지 않으면 작업 완료 시간만 늘어난다.

한쪽의 작업이 다른 쪽으로 전송되어 실행되는 도중에 시스템 전체에 영향을 줄 수 있는 작업을 수행하게 되면 문제가 발생할 수 있다.

재부팅을 하는 경우가 대표적이다.

📌 Hypervisor

양쪽의 작업이 섞이지 않도록 하고 한쪽의 작업에 문제가 생겼을 때 다른 한쪽에 영향을 주지 않도록 해야 한다. 이러한 중재자를 Hypervisor라고 한다.

하이퍼바이저는 물리적 자원을 여러 대의 가상 자원으로 관리해주는 역할을 수행한다.

물리적 시스템에 설치된 하이퍼바이저를 통해서 독립된 가상의 컴퓨터를 만들 수 있고, 이러한 가상의 컴퓨터로 작업을 처리한다.

📌 오케스트레이션

클러스터링을 통해 컴퓨터의 성능을 향상시키는 방법의 기반이 되는 기술

오케스트레이션은 유휴한 컴퓨팅 자원을 네트워크를 통해서 연결한다.

그리드 컴퓨팅과 클러스터링이 대표적인 예이다.

그리드 컴퓨팅까지는 유휴 자원을 활용하는 방식으로 컴퓨터 개수를 늘리는 방식

유휴 자원의 성능을 높이는 방법은 하이퍼바이저가 개입하는 방법

가상화

하이퍼바이저의 기반 기술이 가상화이다.

가상화 기반으로 자원의 효율성을 높이는 대표적인 에가 클라우드 컴퓨팅이다.

📌 HTC(High Through Computing)

그리디 컴퓨팅과 클라우드 컴퓨팅 서비스의 핵심 기술은 오케스트레이션과 가상화로 조금 다름

  • 2가지 서비스의 궁극적인 목표는 활용성을 높이는 것이다

  • 두가지 서비스는 배타적인 관계는 아님

  • 많은 데이터 센터들이 가상화를 기반으로 한 클라우드로 구축되고 있고 클라우드를 통해 제공된 컴퓨팅 자원들이 네트워크를 통해 그리드 컴퓨팅으로 구현될 수 있음

  • 활용성을 높이기 위한 그리드 컴퓨팅과 클라우드 컴퓨팅을 HTC(High Through Computing) 라고 한다.

📌 HPC(High Performance Computing)

HTC와 대비되는 개념으로, 슈퍼컴퓨터와 같이 빠른 계산을 목적으로 하는 컴퓨팅
얼마나 많은 자원을 오랫동안 사용했는지가 중요한 목표가 아니라 오직 빠른 계산이 최상의 목표이다.

  • HPC 목적으로 도입된 시스템에 HTC와 같은 역할을 기대하는 것과 HTC 와 같이 활용하는 것은 비용측면에서 비효율적이다.

  • HPC로 대변되는 슈퍼컴퓨터는 고가의 컴퓨팅 장비이고 대부분 Infiniband 와 같은 고속 네트워크로 연결되지만HTC의 경우 범용 장비를 Ethernet과 같은 일반적인 네트워크로 연결해서 사용한다.


💠 데이터 센터의 3대 이슈

클라우드 컴퓨팅이 이슈를 해결하기 위한 가장 좋은 방법으로 여겨지고 있음

자원의 활용성

  • 데이터 센터에 도입된 인프라는 비용적 관점에서 보면 낭비없이 활용되기를 원함
  • 가상화 기술을 중심으로 한 클라우드 컴퓨팅이 자원의 활용성을 높일 수 있다

안정성

  • 작업을 분리 (컨테이너 ? )

빠른 복구

  • 서비스에 문제가 발생했을 때 빠르게 복구할 수 있어야 한다.
  • 최소한의 다운타임으로 비용적 손실을 최소화해야 한다
  • 이미지 기술을 이용 -> 실제 프로그램을 이미지로 만들어놓고 사용

😶‍🌫️ 클라우드 컴퓨팅 서비스

💠 클라우드 컴퓨팅 서비스 종류

IaaS ( Infrastructure as a Service ) : 물리적인 머신을 가상 머신으로 제공해주는 서비스, 컴퓨팅 파워를 제공하는 서비스
PaaS ( Platform as a Service ) : IaaS 위에 플랫폼을 만들어서 서비스를 제공하는 것, 소프트웨어 개발 환경을 빌려주는 것
SaaS ( Software as a Service ) : 응용프로그램을 서비스


💠 관리부분

On Premise : Networking, Storage, Servers, Virtualization, O/S, Middleware, Runtime, Data, Applications 모두를 직접 관리

  • 물리적인 시스템에 모든 서비스와 기능을 사용자가 직접 구축하는 것

IaaS : O/S, Middleware, Runtime, Data, Applications 부분을 직접 관리

  • 클라우드 서비스 제공자가 가상 서버를 생성할 수 있는 가상화 기능이 탑재된 물리 머신을 제공
  • OS를 선택하면 바로 서비스를 사용할 수 있는 컴퓨팅 파워를 제공

PaaS : Data, Applications 부분을 직접 관리

  • 가상 서버에 플랫폼을 같이 재공하기 때문에 플랫폼에서 동작하는 애플리케이션과 데이터만 관리하고 설정하면 된다

SaaS : 관리하는 부분은 없음, 제공되는 서비스를 사용만 합니다.

  • 서비스에 필요한 애플리케이션을 포함한 모든 환경을 제공

🔸 클라우드 서비스 스택

IaaS -> PaaS -> SaaS


💠 클라우드 서비스를 가능하게 해주는 기술

🔸 가상화 기술

컴퓨터 시스템을 여러개의 가상 컴퓨터로 만들 수 있는 기반 기술

  • 컴퓨터를 가상화해야 하기 때문에 컴퓨터의 기본 시스템을 가상화해야 한다.

  • CPU, Memory, I/O 장치를 가상화

  • 가상화 기술을 이용해서 실제 구현한 것이 Hypervisor 이다.
    대표적으로 KVM , Xen , VMware , Virtual Box

  • 가상화 기술은 다시 전가상화반가상화로 나눌 수 있다.

  • 베어메탈 방식호스티드 방식으로도 구분한다


📌 베어메탈 방식과 호스티드 방식

베어메탈방식 : 물리시스템 위에 하이퍼바이저를 설치하는 방식

  • 타입 1이라고 하는데, 네이티브 방식이라고도 부른다.
  • Xen, KVM, MS의 Hyper-V 등이 있음

호스티드 방식 : 물리시스템 위에 운영체제를 설치하고 운영체제 위에 하이퍼바이저를 설치해서 동작시키는 방식

  • Virtual Box, VMware Player

📌 전가상화 방식 과 반가상화 방식

전가상화 방식으로 구현된 하이퍼바이저는 Guest OS가 수정되지 않은 상태로 동작

전가상화 방식에서는 하이퍼바이저 상에서 동작하는 Guest OS가 자신이 가상화 환경에서 동작하고 있다는 사실을 인지하지 못함

물리적인 시스템에 접근하기 위해서는 반드시 하이퍼바이저의 개입이 필요한 방식으로 오버헤드가 필연적으로 발생

반가상화 방식으로 구현된 하이퍼바이저는 Guest OS가 수정된 상태로 동작

반가상화 방식은 Guest OS가 하이퍼바이저 위에서 동작하고 있을을 인지하는데 이를 위해서는 OS의 코드 수정이 필요

하이퍼바이저가 제공하는 API를 Hyper Call 이라고 하는데 이를 호출해서 물리적인 시스템에 접근하기 때문에 성능이 전가상화보다 우수

운영체제의 코드를 수정해야하기 때문에 리눅스와 같은 오픈 소스에서만 사용 가능


가상머신 관리 툴

  • 가상머신은 하이퍼바이저 상에서 동작하기에 하이퍼바이저를 통해서 가상머신을 관리할 수 있다

  • 하이퍼바이저는 모든 물리 시스템에 설치되어야 하고 해당 시스템의 가상머신만을 해당 하이퍼바이저가 관리하기 때문에 대규모의 물리 시스템을 운영하고 있는 데이터 센터에서 직접적으로 하이퍼바이저를 통한 가상 머신의 관리는 어려움

  • 가상머신을 관리하는 툴 : Open Stack , Open Nebula

  • 관리 툴들은 저마다 장단점을 가지고 있는데 오픈소스를 기반으로 한 클라우드를 구축하는 경우라면 RedHat이 지원하는 소프트웨어 관심을 갖게 됨

    • RedHat이 리눅스 커널에 가장 많은 컨트리뷰션을 하는 회사임
    • 리눅스 기반의 솔루션과 서비스를 해야 할 경우 RedHat의 영향력이 큼
    • 하이퍼바이저도 초창기에는 Xen이 많이 활용되었으나 KVM이 리눅스의 메인 스트림에 포함되고 레드햇이 인수함에 따라 그 영향력이 지속적으로 커지고 있습니다.
    • 가상머신 관리 툴인 오픈스택 또한 레드햇이 가장 많은 컨트리뷰션을 하기 때문에 활발하게 사용됨

0개의 댓글