클라우드란?
: 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 기술
: 사용자가 언제든지 인터넷과 모바일 등을 통해 IT 서비스를 제공받을 수 있도록 하는 컴퓨팅 기술
* IT 서비스: 인프라에 사용되는 서버, 저장소, 데이터베이스, 네트워크, 소프트웨어, 데이터 분석 등
클라우드의 장점
1. 민첩한 서비스 도입, 탄력적인 확장과 축소, 자동화된 서비스 유지 관리 가능
2. 낮은 운영 비용과 비즈니스 요구사항의 변화에 빠르게 적응할 수 있는 환경 제공
3. 재난 시 장애 복구 가능
- 재난으로 인한 데이터 손실로부터 상대적으로 안전
- 여러 대륙에 걸친 데이터 센터에 데이터 복제
4. 가용성(Availability)
- 서비스를 호스팅하는 서버가 있는 데이터 센터에 어떤 문제가 발생하더라도 서비스 중단없이 제공 가능 (다른 데이터 센터의 다른 서버가 서비스 제공)
5. 확장성(Scalability)
- 서비스 사용자, 데이터, 요청이 늘어나더라도 공간/성능적인 제약없이 세계 곳곳에 있는 클라우드 데이터 센터로부터 자원 활용 가능
- 3-계층 아키텍처(Presentation Layer, Application Layer, Data Layer)에서 각 계층에 대해 물리적 서버 1대(총 3대)로 초기 서비스를 제공한다. 하지만, 이후에 저장공간이 부족하거나 컴퓨팅 파워가 부족하게 되면 서비스를 확장하는데, 이 때 분산시스템(하나의 시스템처럼 보이는 독립된 컴퓨터들의 집합)이 필요하다.
- 서비스 인기가 하락할 경우에는 자원이 낭비되기도 한다.
6. 낮은 초기 투자 비용
- 별도의 초기 투자 비용없이 시작할 수 있다.
- 클라우드 서비스 업체는 일부 기능은 무료로 제공한다.
7. 단순성(Simplicity)
- 별도의 개발/실행 환경 구축없이 쉽게 클라우드 서비스 활용 가능
8. 자동 소프트웨어 업데이트(Automatic software update)
- 서비스 중인 소프트웨어의 업데이트를 downtime 없이 자동으로 제공
9. 업무장소의 유연성
- 인터넷에 연결돼 있는 모든 곳에서 업무 수행 가능
10. 보안(Security)
- 클라우드에서 보안 관련 기능을 제공한다.
- 랩탑, 태블릿, 스마트폰을 분실해도 데이터는 안전하다.
11. 운영 비용 감소
- 전력, 냉방 및 관리 등 운영 비용이 감소한다.
컴퓨팅 기술의 비교
- 그리드 컴퓨팅: 가상 네트워크를 이용하여 분산된 컴퓨팅 자원을 공유하도록 하는 기술 방식(인터넷의 유휴 자원을 활용)
- 유틸리티 컴퓨팅: 다양한 컴퓨팅 자원에 대한 사용량에 따라 요금을 부과하는 종량제 방식의 기술 기반으로, 필요할 때 가져다 쓴는 온디맨드(on-demand) 컴퓨팅 방식(기업 중심의 서비스)
- 클라우드 컴퓨팅: 유틸리티 컴퓨팅을 근간으로, 기술적으로는 그리드 컴퓨팅, 비용적으로는 유틸리티 컴퓨팅을 혼합한 포괄적인 패러다임. 기업과 개인 모두 사용 가능한 서비스이며,클라우드 서비스를 제공하는 사업자의 컴퓨팅 자원을 이용한다.
클라우드 컴퓨팅의 특징
1. 주문형 셀프서비스
- 고객이 IT 서비스 제공자의 개입없이 원하는 시점에 서비스 사용 가능
2. 광대역 네트워크 접근
- 각 클라우드 서비스 업체가 제공하는 광대역 네트워크를 이용하여 다양한 클라이언트 플랫폼이 빠르게 접속
3. 신속한 탄력성과 확장성
- auto-scaling 기능을 통해 몇 분 안에 신속한 확장과 축소 조절 가능
4. 자원의 공동관리
- 물리적 및 가상화된 자원을 풀(pool)로 관리하며, 탄력적으로 사용자 요구에 따라 동적으로 할당 또는 재할당 가능 (서버 하나에 컴퓨터 자원이 꼭 하나만 있는 것이 아니라, 실제 물리 서버 하나에 컴퓨터자원을 여러 개로 나눠서 pool로 만들어 제공 가능 -> 더 효과적으로 서버 자원 활용 가능)
5. 측정 가능한 서비스
- 자원 사용량이 실시간으로 수집되는 요금산정(metering) 기능을 통해 비용을 측정 가능
클라우드 컴퓨팅 구조
크게 자원 활용과 클라우드 서비스로 나눌 수 있다.
1. 물리적 시스템 계층
- 여러 형태의 서버 계열을 활용하여 서버에 탑재된 수평적으로 확장 가능한 스토리지 및 네트워크 등의 물리적 요소
2. 가상화 계층
- 물리적 시스템 계층을 기반으로 민첩성(Agility) 제공
3. 프로비저닝 계층
- 가상화 계층을 기반으로 클라우드 서버 프로비저닝 또는 프로비저닝 해제를 신속히 수행하여 사용자의 요구 충족
- 프로비저닝이란, 사용자가 요청한 IT 자원을 사용할 수 있는 상태로 준비하는 것을 말한다.
4. 클라우드 서비스 관리 계층
- 제공되는 자원에 대한 전반적인 라이프사이클 관리와 모니터링 지원
- 안정적인 클라우드 서비스를 위한 성능 및 고가용성, 소프트웨어 라이선스와 패치 관리, 사용량 요금 산정을 통한 과금 관리,클라우드 보안 관리 요소 결합
5. 클라우드 서비스 계층
- 구성된 클라우드 구성 요소를 서비스로서 제공
- 확장 가능한 컴퓨팅 자원을 사용한 양에 따라 비용 지불
- 클라우드 환경에 있는 모든 자원에 인터넷을 통해 언제든 접근
- 사용자는 주어진 역할(사용자, 관리자 등)에 따라 다양한 웹 API(RESTful HTTP 호출, XML 등)을 통해 클라우드 서비스 호출 가능
클라우드의 종류
* 온프레미스(On-premise)
- 클라우드 개념이 도입되기 전의 일반적인 접근 방식(즉, 클라우드가 아니다.)
- 기업이 자체 데이터 및 솔루션 등을 저장하기 위해 자사에 데이터 센터를 구축하여 IT 서비스 수행
(1) 장점
- 품질 및 보안에 대한 높은 신뢰도
(2) 단점
- 높은 초기 투자 비용(HW + SW) (최대 사용량, 최대 순간 트래픽을 가정하고 설계)
- 탄력적이지 않은 제한된 자원 용량 -> 지속적인 관리 비용 증가
1. 퍼블릭 클라우드 (Public Cloud)
: 클라우드 서비스 공급자가 제공하는 서버 및 스토리지 등의 클라우드 자원을 인터넷을 통해 다수의 사용자들이 제공받는 방식
- 공유는 하지만, 저렴하고 신속한 운영 가능
- 자체 인프라가 없거나 빈약한 스타트업, 중견기업이 주로 사용
2. 프라이빗 클라우드 (Private Cloud)
: 독점적으로 사용하여 보안을 높일 수 있는 인프라 환경(기업이 직접 클라우드를 구축하고 내부 활용)
- 제한된 네트워크에서 특정 사용자나 기업만을 대상으로 하는 클라우드 서비스 방식
- 클라우드 역량 확보를 바탕으로 퍼블릭 클라우드 사업 진출을 목표(모든 회사들이 처음부터 퍼블릭 클라우드 사업을 할 순 없다. 내부적으로 사내에서 프라이빗 클라우드를 구축해보고, 나중에 퍼블릭 클라우드로 나아간다.)
3. 멀티 클라우드 (Multi Cloud)
: 여러 퍼블릭 클라우드를 함께 사용하는 경우
- e.g., AWS, GCP, Azure을 함께 사용-> 어떤 특정 플랫폼이 중단돼도 서비스를 중단없이 제공 가능(고가용성) & 종속성(한 방식으로만 클라우드를 사용하면 거기에 종속될 수 있다.) 제거
4. 하이브리드 클라우드 (Hybrid Cloud)
: 퍼블릭 클라우드와 프라이빗 클라우드를 네트워크를 통해 결합한 클라우드 서비스 방식
- 민감한 데이터 -> 프라이빗 클라우드
- 워크로드 예측 어려움 -> 퍼블릭 클라우드
- 하이브리드 클라우드와 멀티 클라우드는 다르다!
클라우드 서비스 모델
* 클라우드 서비스란?
: 언제 어디서나 별도의 SW 등을 설치하지 않고 인터넷 접속을 통해 저장해놓은 데이터에 접근하여 사용할 수 있는 서비스
1. IaaS(Infrastructure-as-a-Service)
: 서버, 스토리지, 네트워크와 같은 인프라 하드웨어 자원을 가상화하여 사용자 요구에 따라 인프라 자원을 사용할 수 있게 제공하는 클라우드 서비스 방식
- e.g., GCP Compute Engine
- e.g., 건물(~= SW)을 지을 수 있는 토지(~= Iaas)를 임대
2. PaaS(Platform-as-a-Service)
: 개발 도구, 인프라, 운영체제를 포함한 애플리케이션 구축에 필요한 모든 것을 인터넷을 통해 제공
- e.g., 집을 빌리는 대신 집을 짓는데 필요한 모든 도구와 장비를 빌림
- e.g., Heroku, RedHat OpenShift
- PaaS을 사용하면 유지보수에 대한 수고 감소 (PaaS 클라우드 사업자가 알아서 대응/보수/운영해준다.)
- PaaS을 사용하면 코딩에 대한 수고 감소 (GUI 등을 통해 개발 가능)
3. SaaS(Software-as-a-Service)
: 사용자가 장치에 애플리케이션을 설치하는 대신 SaaS 애플리케이션이 클라우드 서버에 호스팅되고 사용자는 인터넷을 통해 애플리케이션에 액세스
- e.g., 집을 빌려쓰는 것 같은 맥락
- e.g., 이메일, Slack, Dropbox
4. FaaS(Function-as-a-Service)
: 클라우드 애플리케이션을 필요할 때만 실행되는 더 작은 구성 요소로 나눔
- e.g., 식사할 때 식당, 잘 때는 침실에 대한 비용 지불
- e.g., AWS Lambda
* 본 게시물은 성신여자대학교 박지웅 교수님의 '클라우드컴퓨팅' 강의 내용을 토대로 작성했습니다.
'Cloud' 카테고리의 다른 글
[클라우드 컴퓨팅] 2. 마이크로서비스 개요 (0) | 2025.03.18 |
---|