Home

Published

- 7 min read

클라우드 컴퓨팅 기본 개념

img of 클라우드 컴퓨팅 기본 개념

## 개요

지금까지 정확한 개념을 인지하지 않은 상태로 AWS, GCP를 사용하고 있었다. 대략적으로 아래 개념들을 알고는 있었지만, 이번 기회에 제대로 알아보려 한다.

## 데이터 센터(Data Center)

데이터 센터는 수많은 서버들을 한데 모아 네트워크로 연결해놓은 시설이다. 말 그대로 우리가 컴퓨터에 서버를 구동할때 그 컴퓨터가 있는 곳이라고 보면 된다. 데이터 센터는 IDC(Internet Data Center), CDC(Cloud Data Center), Server Hotel로 불리기도 한다.

## 리전(Region)

<div style=“text-align:center”> <img src=”https://github.com/user-attachments/assets/f8113739-8152-42ea-a295-c2c1219523d8” width=“700”> </div>

리전은 데이터 센터가 위치한 지역이다. 일반적으로 도시를 지칭한다. 그래서 서비스 대상자가 어느 국가에 있냐에 따라 리전을 결정하는 것이 좋다.(거리가 가까우면, 그만큼 속도가 빠르다.)

## 가용 영역(Availability Zone)

<div style=“text-align:center”> <img src=”https://github.com/user-attachments/assets/4d8ac702-6086-4859-b9bc-cdc84956e168” width=“700”> </div>

하나의 Region은 두 개 이상의 Availability Zone으로 구성된다. Availability Zone은 가용영역으로 불리며, AZ로 불리기도 한다. 하나의 AZ는 하나의 데이터센터라고 보면 된다. AZ는 장애에 대해 Availability를 높이기 위한 장치이다.

여기서 Availabilty, 즉 가용성은 시스템이 정상적으로 가동되는 상태를 말한다. 만약 서비스를 단일 Data Center(AZ)에서 운영하면 지진, 번개, 정전 등으로 Data Center(AZ) 장애가 발생 할 수 있다. 이럴 때, 서비스는 사고가 난 Data Center가 복구될 때 까지 접속이 불가하다. 즉 가용성(Availability)가 낮다고 볼 수 있다. 그래서 서비스를 다수의 Data Center(AZ)에 분산하여 운영하게 되면 특정 Data Center가 문제가 생겨도 다른 Data Center에 접속이 가능하다.

이런 방식으로 서비스를 하나의 리전 내에서 다수의 AZ에 분산하면 높은 가용성(Availability)을 만족할 수 있다.

## 가상화(Virtualization)

가상화는 소프트웨어로 가상의 하드웨어를 생성하는 기술이다. 가상의 하드웨어는 익히 들어본 VM - Virtual Machine이 하나의 예시이고, Cloud 서비스에서 서버를 사용할 때, 일반적으로 물리적인 하나의 서버가 아닌 가상화된 서버를 제공받는다.

## 클라우드의 Service Model

<div style=“text-align:center”> <img src=”https://github.com/user-attachments/assets/61a6fcb4-beea-4ced-a480-9a14892e3237” width=“700”> </div>

### On-Premises

On-premises는 기업이 자체 데이터 센터나 시설 내에서 모든 하드웨어, 소프트웨어 리소스를 직접 구매, 설치, 관리하는 전통적인 IT 인프로 모델이다.

### IaaS(Infrastructure as a Service)

IaaS(Infrastructure as a Service)는 가상화된 컴퓨팅 리소스를 인터넷을 통해 제공하며, IT 기본 자원인 서버, 스토리지, 네트워크만을 제공한다. 이는 새로 컴퓨터 하나를 구매하는 개념과 유사하다.

## PaaS(Platform as a Service)

PaaS(Platform as a Service)는 IaaS에 OS, Middleware, Runtime을 추가로 제공한다. Middleware에는 RDBMS 등이 포함되며, Runtime에는 JDK, Python 등 프로그램이 작동하는 환경이 포함된다. PaaS는 개념의 범위가 가장 넓으며, 일반적으로 개발자를 대상으로 한다. 개발자는 코드 개발만 해서 올릴 수 있는 상태로, 인프라 관리 없이 애플리케이션 개발에 집중할 수 있다. AWS Elastic Beanstalk, Google App Engine 등이 PaaS의 예시다.

### SaaS(Software as s Service)

SaaS(Software as a Service)는 모든 기능이 동작하는 소프트웨어를 제공한다. 네이버 클라우드, 구글 드라이브, 구글 캘린더, 네이버 메일, Office 365, Dropbox, ERP, CRM 등이 SaaS의 예시다. SaaS는 완성된 애플리케이션을 인터넷을 통해 제공하며, 사용자는 소프트웨어 설치나 유지보수 없이 바로 사용할 수 있다.

## Deployment Model

Deployment Model은 클라우드를 실제 어떠한 형태로 구축하는지에 대한 관점이다. Deployment Model은 3종류정도 있는데, 하나씩 알아보자.

### Public Cloud

Public Cloud는 클라우드 서비스를 필요로 하는 사용자 누구든지 사용할 수 있으며, 사용한 만큼 비용을 지불하면 된다. 클라우드 사업자가 IT 자원을 서비스로 제공한다.

### Private Cloud

Private Cloud는 기업 및 기관 내부에서만 사용 가능한 클라우드 컴퓨팅 환경을 구축한 것으로, 해당 기업/기관에 속하지 않은 사람은 사용할 수 없다. 구축 난이도가 높지만, 보안이나 법적 규제 등의 이유로 사용된다.

### Hybrid Cloud

Hybrid Cloud는 Public Cloud와 Private Cloud를 조합해서 사용하는 형태다. 보안이 중요한 시스템은 Private Cloud에, 그 외 시스템은 Public Cloud를 사용할 수 있다. 또한, Private Cloud를 주로 사용하되 예상치 못한 수준의 트래픽이 몰리는 경우 Public Cloud로 확장하는 등 다양한 시나리오가 존재한다.