클라우드 컴퓨팅 (Cloud Computing)
클라우드 컴퓨팅(CC: Cloud Computing)은 인터넷(Internet)을 통해 서버(Server), 스토리지(Storage), 데이터베이스(Database), 네트워킹(Networking), 소프트웨어(Software), 애널리틱스(Analytics) 등 컴퓨팅 자원(Computing Resource)을 서비스(Service) 형태로 제공하는 기술 및 비즈니스 모델입니다. 사용자가 직접 자원을 소유하고 관리하는 것이 아니라, 필요에 따라 자원에 접근하고 사용한 만큼 비용을 지불하는 방식입니다.
1. 클라우드 컴퓨팅의 개요
1.1. 정의
클라우드 컴퓨팅은 이용자가 직접 구축, 소유 및 운영할 필요 없이, 유연하고 확장 가능한 방식으로 주문형(On-Demand) 네트워크 접속을 통해 공유되는 구성 가능한 컴퓨팅 자원의 풀(Pool)에 편리하게 접근할 수 있도록 하는 모델입니다.
1.2. 주요 특징 (NIST 기준)
미국 국립표준기술원(NIST: National Institute of Standards and Technology)은 클라우드 컴퓨팅의 본질을 설명하는 다섯 가지 필수 특성(Essential Characteristics)을 정의했습니다.
- On-demand Self-service (주문형 셀프 서비스): 사용자가 서비스 제공업체와의 상호작용 없이도 필요에 따라 컴퓨팅 자원을 단독으로 프로비저닝(Provisioning)할 수 있습니다.
- Broad Network Access (광범위한 네트워크 접근): 자원은 표준 메커니즘을 통해 접근 가능하며, 다양한 클라이언트 플랫폼(예: 모바일폰, 노트북, 워크스테이션 등)에서 활용될 수 있습니다.
- Resource Pooling (자원 풀링): 다중 사용자(Multi-tenancy) 모델을 사용하여 컴퓨팅 자원(스토리지, 프로세싱, 메모리, 네트워크 대역폭 등)이 통합되어 할당됩니다.
- Rapid Elasticity (신속한 유연성/탄력성): 자원의 확장 및 축소가 신속하게 이루어지며, 사용자에게는 무한한 용량으로 인식됩니다. 부하에 따라 자원을 즉시 늘리거나 줄일 수 있습니다.
- Measured Service (측정 가능한 서비스): 자원 사용량이 모니터링, 제어 및 보고되며, 사용한 만큼만 비용을 지불하는 종량제(Pay-per-use) 방식을 지원합니다.
2. 클라우드 컴퓨팅의 서비스 모델 (Stack)
클라우드 컴퓨팅은 제공하는 서비스의 범위와 추상화(Abstraction) 수준에 따라 세 가지 핵심 서비스 모델로 구분됩니다.
| 서비스 모델 | 약어(Full Form) | 설명 | 관리 책임 범위 |
|---|
| IaaS | Infrastructure as a Service (서비스형 인프라) | 서버, 스토리지, 네트워크 등의 기본 컴퓨팅 인프라만 제공합니다. | 고객은 운영체제(Operating System), 미들웨어(Middleware), 애플리케이션(Application), 데이터(Data) 등을 관리합니다. |
| PaaS | Platform as a Service (서비스형 플랫폼) | 애플리케이션 개발 및 실행에 필요한 운영체제, 프로그래밍 언어 실행 환경, 데이터베이스 등을 제공합니다. | 고객은 오직 애플리케이션과 데이터를 관리하며, 인프라와 운영체제는 클라우드 제공업체가 관리합니다. |
| SaaS | Software as a Service (서비스형 소프트웨어) | 클라우드 제공업체가 개발한 완성된 소프트웨어 애플리케이션을 인터넷을 통해 제공합니다. | 고객은 소프트웨어를 웹 브라우저나 클라이언트 인터페이스를 통해 사용하기만 합니다. 모든 인프라 및 소프트웨어 관리는 제공업체의 책임입니다. |
예시 (피자 비유):
- On-premise (구축형): 재료 준비부터 오븐까지 모두 직접 관리하며 피자를 만듭니다.
- IaaS: 피자 반죽, 토핑 재료, 오븐 등은 제공받고, 피자를 만드는 과정과 테이블 세팅만 직접 합니다.
- PaaS: 완성된 피자를 제공받고, 음료와 테이블 세팅만 직접 합니다.
- SaaS: 모든 것이 갖춰진 레스토랑에서 완성된 피자와 서비스를 받습니다.
3. 클라우드 컴퓨팅의 구축 모델 (Deployment Model)
클라우드 인프라가 어디에 위치하며 누구에게 제공되는지에 따라 네 가지 구축 모델로 구분됩니다.
- Public Cloud (퍼블릭 클라우드):
- 설명: 서비스 제공업체가 소유하고 운영하며, 일반 대중(Public)이나 대규모 산업 그룹을 대상으로 인터넷을 통해 서비스를 제공합니다. (예: AWS, Azure, GCP)
- 특징: 낮은 비용, 높은 탄력성, 다중 사용자 환경(Multi-tenancy).
- Private Cloud (프라이빗 클라우드):
- 설명: 특정 조직(Organization) 또는 기업만을 위해 전용으로 구축 및 운영되는 클라우드 인프라입니다.
- 특징: 높은 통제성, 보안성, 규정 준수 용이.
- Community Cloud (커뮤니티 클라우드):
- 설명: 공통의 관심사(예: 보안 요구사항, 규정 준수)를 공유하는 여러 조직들을 위해 독점적으로 프로비저닝되는 클라우드 인프라입니다.
- Hybrid Cloud (하이브리드 클라우드):
- 설명: 두 개 이상의 이질적인 클라우드(퍼블릭, 프라이빗 또는 커뮤니티)가 독점적인 기술로 연결되어 데이터와 애플리케이션 이식성(Portability)을 허용하는 배포 모델입니다.
- 특징: 기밀 데이터는 프라이빗 클라우드에, 일반 데이터는 퍼블릭 클라우드에 두어 효율성을 높입니다.
4. 클라우드 컴퓨팅의 장점과 기술적 고려 사항
4.1. 장점 (이점)
| 구분 | 장점 | 설명 |
|---|
| 경제성 | CAPEX(자본 지출) 감소 및 OPEX(운영 지출) 전환 | 하드웨어(Hardware) 구매 비용(CAPEX)을 줄이고, 사용량에 따른 서비스 비용(OPEX)으로 전환하여 초기 투자 부담을 줄입니다. |
| 유연성 | 확장성(Scalability) 및 탄력성(Elasticity) | 비즈니스 요구에 따라 컴퓨팅 자원을 신속하게 확장하거나 축소하여 효율적인 자원 사용이 가능합니다. |
| 효율성 | 운영 효율성 및 관리 부담 감소 | 인프라 관리 및 유지보수에 대한 부담을 클라우드 제공업체에 위임하여 핵심 비즈니스에 집중할 수 있습니다. |
4.2. 기술적 고려 사항 (이슈)
- 보안 및 규제 준수: 데이터가 외부(클라우드 공급자)에 저장되므로, 데이터 유출, 접근 통제, 주권 및 각국의 데이터 보호 규제(예: 개인정보 보호법, GDPR: General Data Protection Regulation) 준수가 중요합니다.
- 락인(Lock-in) 문제: 특정 클라우드 제공업체의 기술에 종속되어 다른 클라우드 환경으로 전환하기 어려워지는 문제입니다.
- 상호 운용성(Interoperability) 및 이식성(Portability): 다양한 클라우드 서비스 간의 데이터 및 애플리케이션 연동(Interworking) 및 이전(Migration)의 어려움이 발생할 수 있습니다.
- 서비스 수준 협약 (SLA: Service Level Agreement): 클라우드 서비스의 가용성, 성능, 복구 시간 등에 대한 명확한 계약 및 보장이 중요합니다.
5. 클라우드 컴퓨팅의 발전 방향
클라우드 컴퓨팅은 기존의 중앙 집중식 모델에서 벗어나, 다음과 같은 형태로 지속적으로 발전하고 있습니다.
- Multi-Cloud & Hybrid Cloud: 여러 클라우드 벤더(Vendor)의 서비스를 조합하여 특정 벤더에 대한 의존도를 낮추고 각 서비스의 장점을 극대화합니다.
- Serverless Computing (서버리스 컴퓨팅) / FaaS (Function as a Service): 개발자가 서버 관리에 신경 쓸 필요 없이 코드(함수)만 업로드하고 실행하는 모델로, 클라우드 자원의 추상화가 더욱 심화됩니다.
- Edge Computing (엣지 컴퓨팅): 데이터 처리 및 분석을 중앙 클라우드가 아닌 데이터가 생성되는 엣지(Edge), 즉 사용자 근처에서 수행하여 지연 시간(Latency)을 줄이고 대규모 IoT (Internet of Things) 환경에 대응합니다.
- FinOps (Finance Operations): 클라우드 비용을 최적화하고 관리하는 재무 운영 관행으로, 클라우드 사용의 경제성을 극대화하는 데 중점을 둡니다.