☁️ 클라우드 컴퓨팅 개론 1 (Cloud Computing Overview 1)

1. 클라우드 컴퓨팅 (Cloud Computing)

정의

인터넷('Cloud')을 통해 원격으로 서버, 스토리지, 데이터베이스, 소프트웨어, 네트워크 등 다양한 컴퓨터 서비스를 온디맨드(On-demand)로 제공받는 것.

💡 핵심: 사용자는 물리적 리소스를 직접 관리할 필요 없이, 필요한 만큼만 쓰고 비용을 지불합니다.

역사 (History)

  • 1960년대: 시분할 기술, ARPANET (인터넷 시초)
  • 1990년대: WWW 등장, 인터넷 붐
  • 2000년대 초: Salesforce.com 등 SaaS 확산
  • 2006년: AWS 등장, IaaS 본격화
  • 2008-2010년: 스마트폰(iPhone) 등장으로 수요 급증, PaaS(Google App Engine, Azure) 본격화
  • 2010년 - 현재: Serverless, AI 등 다양한 기술 도입

클라우드 컴퓨팅을 가능하게 하는 핵심 기술

  1. Virtualization (가상화) ⭐️ Key Tech
  2. Distributed Computing (분산 컴퓨팅)
  3. Scalable Infrastructure (확장 가능한 인프라)
  4. Broadband Internet (고속 인터넷)
  5. Automation / Orchestration (자동화 / 오케스트레이션)
  6. Standardization and APIs (표준화와 API)
  7. Security and Data Protection (보안과 데이터 보호)
  8. Analytics and Machine Learning (분석과 기계학습)

2. 가상화 (Virtualization)

개념

물리적인 하드웨어 리소스를 논리적으로 추상화하여, 하나의 물리적 하드웨어에서 여러 가상 환경(Virtual Environment)을 동시에 실행시키는 기술입니다.

  • 소프트웨어를 하드웨어로부터 분리(Decoupling)시킵니다.
  • 비유: 컴퓨터 하나를 여러 개로 쪼개서 사용하는 기술.

핵심 구성요소: 하이퍼바이저 (Hypervisor)

가상화를 가능하게 하는 핵심 소프트웨어로, 물리적 하드웨어 위에서 가상 머신(VM)을 생성하고 리소스를 분배하는 역할을 합니다.

  • Type 1 (Native/Bare-metal): OS 없이 하드웨어 위에서 직접 실행 (성능 우수, 주로 서버용).
  • Type 2 (Hosted): 윈도우/맥 같은 호스트 OS 위에서 실행 (설치 간편, 데스크톱/개발용).

가상화의 장점

  • 리소스 효율성: 남는 자원 없이 하드웨어 활용 극대화.
  • 비용 절감: 물리 서버 수 감소로 관리/운영 비용 절감.
  • 격리성 (Isolation): 하나의 VM 장애가 다른 VM에 영향을 주지 않음.
  • 유연성: 필요에 따라 빠르게 생성 및 확장 가능.

3. 가상화의 종류 (Types of Virtualization)

1) 서버 가상화 (Server Virtualization)

물리 서버를 여러 개의 가상 머신(VM)으로 분할하여, 각각 독립적인 OS와 응용 프로그램을 실행하는 기술입니다.

  • 특징: 하나의 물리 서버에서 여러 워크로드를 동시 실행하여 효율성 극대화.
  • 예시: VMware vSphere, Microsoft Hyper-V.

2) 운영체제 가상화 (OS Virtualization / Containerization)

하나의 운영체제 커널을 공유하며, 격리된 사용자 공간(컨테이너)을 생성하는 기술입니다.

  • 특징:
    • VM보다 훨씬 가볍고 시작 속도가 빠름 (Lightweight).
    • 이식성이 높아 배포가 쉬움.
  • 대표 기술: Docker (컨테이너 엔진), Kubernetes (오케스트레이션).

3) 네트워크 가상화 (Network Virtualization)

스위치, 라우터 등 물리적 네트워크 리소스를 추상화하여 논리적인 가상 네트워크로 분리하거나 통합하는 기술입니다.

  • 특징: 각 가상 네트워크는 물리 네트워크와 동일하게 동작하지만, 논리적으로 완벽히 분리됨.
  • 기술: SDN (Software-Defined Networking), NFV.

4) 스토리지 가상화 (Storage Virtualization)

여러 물리적 스토리지 장치(하드 드라이브 등)를 묶어 하나의 논리적 저장소처럼 관리하는 기술입니다.

  • 장점: 중앙 집중 관리 가능, 데이터 이동 간소화, 복제 및 스냅샷 기능 용이.

5) 데스크톱 가상화 (VDI - Virtual Desktop Infrastructure)

데이터센터의 서버에서 데스크톱 OS(윈도우 등)를 구동하고, 사용자는 원격으로 화면만 전송받아 사용하는 방식입니다.

  • 보안 강점:

    💡 기업 보안용으로 많이 사용: 모든 컴퓨팅 자원과 데이터가 중앙 서버에 있기 때문에, 작업 내용이나 파일이 외부(개인 PC)로 유출되는 것을 원천 차단할 수 있음.

  • 유연성: 어디서든 내 업무 환경에 접속 가능.

6) 애플리케이션 가상화 (Application Virtualization)

애플리케이션을 OS로부터 분리하여 격리된 컨테이너에 포장하는 기술입니다.

  • 장점: 다른 앱이나 호스트 OS와 충돌하지 않음 (DLL 충돌 방지 등).

4. VDI vs DaaS

두 기술 모두 "데스크톱 가상화"를 제공하지만, 제공 주체와 운영 방식에 차이가 있습니다.

구분VDI (Virtual Desktop Infrastructure)DaaS (Desktop as a Service)
운영 주체기업 자체 구축 (On-Premise)클라우드 제공 업체 (Cloud Provider)
인프라 관리기업이 직접 서버 구매/관리클라우드 업체가 인프라 관리
비용 방식초기 구축 비용 높음 (CapEx)쓴 만큼 내는 종량제 (OpEx)
기술 기반가상화 기술 직접 운영클라우드 서비스 형태의 VDI

요약: DaaS는 기술적으로 VDI에 기반을 두고 있으나, 클라우드 업체가 서비스 형태로 제공하여 사용자는 구독료만 내고 사용하는 모델입니다.


☁️ 클라우드 컴퓨팅 개론 2 (Cloud Computing Overview 2)

1. 왜 클라우드 컴퓨팅인가? (Why Cloud?)

단순히 서버를 빌려 쓰는 것을 넘어, 비즈니스의 연속성과 확장성을 위해 필수적인 환경입니다.

핵심 가치

  • 탄력성 (Elasticity) & 확장성 (Scalability):
    • 트래픽 폭주(Black Friday, 광군제 등) 시 서버를 물리적으로 증설하는 것은 불가능에 가까움.
    • 클라우드는 병렬 처리를 통해 필요한 만큼 자원을 늘리고(Scale-out), 사용 후 반납하여 비용을 절감함.
  • 사용자 경험 (UX): "접속 대기"는 고객 이탈의 주원인. 탄력적인 운영으로 끊김 없는 서비스를 제공해야 함.
  • 비용 절감: 초기 인프라 투자 비용(CapEx) 없이 사용한 만큼만 지불(OpEx).
  • 민첩성: 신제품 출시 주기 단축 및 빠른 배포/테스트 가능.

💡 개발자가 클라우드를 알아야 하는 이유

  • 내 코드가 돌아가는 인프라 환경을 모르면 반쪽짜리 전문가.
  • 협업과 문제 해결을 위해 클라우드 지식은 선택이 아닌 필수.

2. 현대적 개발 방법론과 클라우드

클라우드 환경은 단순 인프라 제공을 넘어, 개발 문화와 방법론의 변화를 이끌고 있습니다.

1) CI/CD (지속적 통합 및 배포)

  • 개념: 코드 작성부터 테스트, 배포까지의 과정을 자동화하여 소프트웨어를 지속적으로 최신 상태로 유지하는 것.
  • 필요성: 디지털 전환(Digital Transformation) 시대에 서비스 중단 없는 업데이트를 위해 필수.

🗣 우체국 금융 시스템 사례
과거 우체국 금융 시스템은 새벽마다 서버를 재부팅하며 점검 시간(Downtime)을 가졌음. 이로 인해 심야에 운전하는 트럭 기사들이 주유소에서 결제를 못 하는 문제가 발생함.
→ CI/CD가 적용된 현대 클라우드 환경에서는 서비스 중단 없는 무중단 배포가 가능함.

2) DevOps (데브옵스)

  • 개념: 개발(Dev)과 운영(Ops)의 장벽을 허물고 협업하는 문화 및 방법론.
  • 특징: 기존 SI(개발)와 SM(운영)이 분리된 환경의 비효율성 개선. 클라우드 환경이 이를 기술적으로 뒷받침함.

3) Cloud Native (클라우드 네이티브)

  • 개념: 클라우드의 장점을 100% 활용하여 애플리케이션을 설계하고 구동하는 방식.
  • 핵심 요소:
    • Container (컨테이너): 무거운 OS(Virtual Machine) 대신 경량화된 컨테이너 단위로 배포하여 유연성 확보.
    • Microservices (마이크로서비스): 거대한 하나의 앱(Monolith)을 작은 기능 단위로 쪼개어 개발.
  • 역사적 흐름: Mainframe(고성능, 폐쇄적) → Unix → Linux(x86, 범용성, 가성비) → Cloud(유연성)

⚠️ 주의사항: 마이크로서비스(MSA)의 함정

  • "트렌드니까 무조건 MSA 해야지"라는 생각은 위험함.
  • 서비스를 잘게 쪼개면 컴포넌트 간 통신이 복잡해지고, 추적 및 유지보수가 기하급수적으로 어려워질 수 있음.
  • 비즈니스 상황과 규모에 맞춰 기술을 도입해야 함.

4) Full Stack Developer (풀스택 개발자)

  • 변화: 과거(프론트+백엔드) → 현재(프론트+백엔드+인프라)
  • 클라우드가 인프라 복잡성을 추상화해주므로, 개발자가 인프라 관리 및 배포까지 담당하는 것이 용이해짐.

3. 클라우드 배포 모델 ("어디에" 배포하는가?)

자원을 어디에 두고, 누가 관리하느냐에 따른 분류입니다.

모델설명특징 및 강의 코멘트
Public CloudAWS, Azure, GCP 등 외부 업체가 제공하는 인프라 사용.• 인터넷을 통해 접근
• 가장 대중적이며 확장성이 높음
Private Cloud기업이 자체적으로 구축하여 내부적으로만 사용하는 클라우드.OpenStack 등을 이용해 구축 (최근엔 인기가 좀 식었지만 여전히 사용됨)
• 보안이 중요하거나 규제가 엄격한 경우 사용
Hybrid CloudPublic + Private 결합.• 중요 데이터는 Private에, 트래픽 폭주 시 Public으로 확장
• 유연성과 보안을 동시에 추구
Multi Cloud두 개 이상의 Public Cloud 혼용 (예: AWS + Azure).주요 원인: 비용 절감 및 특정 벤더 종속(Lock-in) 방지
• 글로벌 서비스 시 특정 국가에서 더 빠른 클라우드를 선택하기 위해 사용하기도 함

🏢 사례: Adobe의 멀티 클라우드 실패와 벤더 락인(Lock-in)
Adobe가 AWS 비용(월 300만 달러) 문제로 Azure로 이전을 시도했으나 실패함.

  • 이유: 클라우드 서비스는 마치 '빌트인 가구'가 짜여진 집과 같아서, 다른 플랫폼으로 이사 가는 것이 기술적으로 매우 어려움(Vendor Lock-in).

4. 클라우드 서비스 모델 ("무엇을" 제공하는가?)

사용자가 관리해야 할 범위(Responsibility)에 따른 분류입니다.

1) IaaS (Infrastructure as a Service)

  • 제공: 가상화된 하드웨어 (서버, 스토리지, 네트워크).
  • 사용자 책임: OS, 미들웨어, 런타임, 데이터, 애플리케이션.
  • 특징: 가장 유연하지만 관리 포인트가 많음. (예: AWS EC2, Azure VM)
  • 용도: 기존 레거시 시스템을 그대로 옮길 때 (Lift and Shift).

2) PaaS (Platform as a Service)

  • 제공: IaaS + OS, 미들웨어, 런타임 (개발 환경).
  • 사용자 책임: 데이터, 애플리케이션.
  • 특징: 인프라 관리 없이 코드 작성(비즈니스 로직)에만 집중 가능. (예: AWS Lambda, Google App Engine)

3) SaaS (Software as a Service)

  • 제공: 완성된 소프트웨어.
  • 사용자 책임: 없음 (접근 권한 및 일부 설정 제외).
  • 특징: 구독 형태로 바로 사용. (예: Microsoft 365, Salesforce, Slack)

클라우드 서비스를 "어느 수준까지 제공받고, 어디까지 내가 관리하는가"에 따른 분류입니다.

구분IaaS (Infrastructure as a Service)PaaS (Platform as a Service)SaaS (Software as a Service)
개념가상화된 하드웨어 인프라 제공 (서버, 스토리지, 네트워크)애플리케이션 개발 및 배포 플랫폼 제공 (OS, 런타임 포함)완성된 소프트웨어를 웹으로 제공
비유🛒 식재료 사기 (재료만 사고 요리는 내가)🍕 밀키트/배달 (조리 도구/환경 제공, 굽기만 하면 됨)🍽️ 식당 외식 (모든 게 준비됨, 먹기만 하면 됨)
제공 범위가상화(Virtualization), 서버, 스토리지, 네트워크IaaS + OS, 미들웨어, 런타임PaaS + 애플리케이션, 데이터
사용자 책임
(관리 범위)
OS, 미들웨어, 런타임, 데이터, 애플리케이션데이터, 애플리케이션 (코드)없음 (사용자 접근 권한 설정 등 일부 제외)
제어 수준
(자유도)
높음 (High)
인프라 단위의 세밀한 설정 가능
중간 (Medium)
주어진 프레임워크 내에서 설정
낮음 (Low)
제공된 기능만 사용 가능
기술 난이도상 (Hard)
시스템 엔지니어링, 네트워크 지식 필요
중 (Medium)
개발 지식만 있으면 충분
하 (Easy)
일반 사용자도 즉시 사용 가능
비용 모델종량제 (Pay-as-you-go)
초/분/시간 단위 과금
종량제 + 옵션
사용량 또는 티어별 과금
구독형 (Subscription)
월/연 단위 고정 비용 (User당)
주요 용도• 레거시 시스템 마이그레이션 (Lift & Shift)
• OS단 제어가 필요한 경우
• 웹/앱 개발 생산성 향상
• 인프라 관리 없이 비즈니스 로직 집중
• 이메일, 협업 도구, CRM 등
• 비즈니스 도구 즉시 도입 필요 시
대표 예시AWS EC2, Azure VM, GCP Compute EngineAWS Lambda, Azure App Service, Google App EngineMicrosoft 365, Google Workspace, Salesforce, Slack
위치 (Location)📍 원격에서 운영
(공급업체 데이터 센터)
📍 온프레미스 (사내 전산실)
또는 외부 전용 호스팅
📍 온프레미스 및 외부 리소스 통합

💡 참고: 공동 책임 모델 (Shared Responsibility)

  • SaaS로 갈수록 클라우드 업체의 책임이 커지고, IaaS로 갈수록 사용자의 책임이 커집니다.
  • 단, 어떤 모델을 쓰더라도 데이터(Data)와 계정(Identity) 보안에 대한 책임은 항상 사용자에게 있습니다.

5. 공동 책임 모델 (Shared Responsibility Model)

클라우드 보안은 제공업체와 사용자가 함께 책임집니다.

  • SaaS: 업체의 책임 범위가 가장 큼.
  • IaaS: 사용자의 책임 범위가 가장 큼 (OS 보안 패치 등).
  • ⭐️ 핵심 원칙: 어떤 모델(IaaS, PaaS, SaaS)을 사용하든 "데이터(Information and Data)"와 "계정(Identity)" 관리의 책임은 항상 사용자(고객)에게 있음.

☁️ 클라우드 컴퓨팅 개론 3 (Cloud Computing Overview 3)

1. 비용 관점에서 본 클라우드 (Cost Perspective)

무조건 클라우드를 쓰는 것이 정답은 아닙니다. "얼마나 오래, 어떻게 쓸 것인가"에 따라 클라우드와 온프레미스의 장단점이 나뉩니다.

CapEx vs OpEx

구분CapEx (Capital Expenditure, 자본적 지출)OpEx (Operational Expenditure, 운영 지출)
개념물리적 인프라를 미리 구매하고 자산으로 관리하는 비용서비스를 사용한 만큼 지불하는 비용
비유🚗 자차 구매 (초기 비용 큼, 오래 쓰면 이득)🚕 택시/렌터카 (초기 비용 없음, 단기 사용 유리)
적합 환경On-Premises (장기간 안정적인 워크로드)Cloud (변동성이 크거나 단기 프로젝트)
특징• 초기 투자 비용 발생 (선불)
• 시간이 지날수록 감가상각
• 초기 비용 없음 (No Upfront)
• 사용량 기반 과금 (Pay-as-you-go)

💡 택시 vs 자차 비유

  • 택시: 가까운 거리를 한 번 갈 때는 가장 저렴하고 효율적입니다. (클라우드 단기 사용)
  • 렌터카: 며칠 여행을 간다면 택시보다 낫습니다.
  • 자차 구매: 1~3년 이상 매일 쓴다면 차를 사는 게 훨씬 쌉니다. (온프레미스 장기 사용)
  • 결론: 회사의 상황과 워크로드 기간에 따라 적절하게 섞어 쓰는 전략이 필요합니다.

Cloud vs On-Premises 차이점

특징Cloud Service ProviderOn-Premises (Traditional IDC)
비용초기 비용 낮음 (OpEx)장기 사용 시 총 비용 낮을 수 있음 (CapEx)
유연성필요한 시점에 빠른 도입 및 해지도입에 시간 소요, 제어권은 높음
데이터Inbound 무료 / Outbound 유료데이터 이동에 대한 전체 제어권 보유

⚠️ Vendor Lock-in (벤더 종속) 주의
클라우드 업체들은 들어오는 데이터(Inbound Traffic)는 무료로 받지만, 나가는 데이터(Outbound Traffic)에는 비싼 요금을 부과합니다. ("이사 올 땐 공짜, 나갈 땐 비용 발생") 이 때문에 데이터를 뺴내기 어려워 특정 클라우드에 종속되는 현상이 발생합니다.

FinOps (Financial Operations)

  • 개념: 클라우드의 기술적 장점뿐만 아니라 비용 효율성을 함께 관리하는 문화 및 운영 방식 (Finance + DevOps).
  • 필요성: 클라우드는 켜놓은 만큼 돈이 나갑니다.
    • VM (IaaS): 안 쓰면 꺼야 함 (Stop).
    • PaaS: 끄고 켜는 개념이 없는 경우, 생성해 둔 것만으로도 과금될 수 있음.
    • 따라서 "어떤 리소스가 돈을 얼마나 쓰고 있는지" 실시간으로 파악해야 함.

2. 클라우드 도입의 핵심 이점 (Key Benefits)

클라우드를 도입하는 가장 큰 이유는 고가용성, 확장성, 신뢰성을 확보하기 위함입니다.

1) 고가용성 (High Availability, HA)

서비스가 중단 없이 지속적으로 운영될 수 있는 능력입니다. (서버가 죽지 않고 살아있는 것)

  • 달성 방법:
    • 중복성 (Redundancy): 서버를 여러 대 둠 (이중화). 하나가 죽으면 다른 하나가 대신함.
    • 부하 분산 (Load Balancing): 트래픽을 여러 서버로 분산시킴.
    • 지리적 분산: 데이터센터 자체의 장애(정전, 재해)를 대비해 다른 지역(Region)에 복제.
  • SLA (Service Level Agreement): 서비스 가동률에 대한 약속 (예: 99.9% 보장).

2) 확장성 (Scalability)과 탄력성 (Elasticity)

  • Scale Up (수직 확장): 하드웨어 성능(CPU, RAM)을 높이는 것. 한계가 명확함 (렉 하나에 꽂을 수 있는 부품 한계).
  • Scale Out (수평 확장): 서버의 개수를 늘리는 것. 클라우드의 핵심 장점이며 이론상 무한 확장이 가능.
  • 탄력성 (Elasticity): 수요 변화에 맞춰 리소스를 자동으로(Auto Scaling) 늘리고 줄이는 능력.

🐮 Stateless vs Stateful (가축 vs 반려동물)
클라우드 네이티브 환경(Scale Out)을 제대로 하려면 애플리케이션이 Stateless여야 합니다.

  • Stateful (반려동물 🐶): 아프면 치료해야 함. 서버가 상태 정보를 가짐. 교체 어려움. (Scale Out 어려움)
  • Stateless (가축 🐂): 아프면 즉시 다른 개체로 대체. 상태 정보는 외부(DB, Redis)에 저장. (Scale Out 매우 쉬움)

3) 신뢰성 (Reliability)

  • 구성: 복원력(Resiliency) + 복구 가능성(Recoverability).
  • 의미: 장애를 견뎌내고(방어), 문제가 생겼을 때 원래 상태로 되돌릴 수 있는(복구) 능력.

4) 예측 가능성 (Predictability)

  • 성능: 오토 스케일링 등을 통해 트래픽이 몰려도 일관된 성능 예측 가능.
  • 비용: 실시간 모니터링 및 분석을 통해 다음 달 비용 예측 가능.

5) 보안 (Security)

  • 공동 책임 모델: 인프라 보안은 클라우드 업체가, 데이터/앱 보안은 고객이 담당.
  • 장점: 기업은 자신들이 잘하는 비즈니스 로직 보안에만 집중할 수 있음. (DDoS 방어 등은 클라우드 업체가 잘함)

6) 거버넌스 (Governance)

  • 조직 내 클라우드 사용에 대한 정책, 가이드라인, 규정 준수를 관리하는 체계. (예: "우리 회사는 특정 리전만 사용한다", "비싼 GPU 서버 생성 시 승인 필요" 등)

3. 아키텍처 프레임워크 및 역할

Microsoft Azure Well-Architected Framework

클라우드 워크로드를 올바르게 설계하기 위한 5가지 핵심 기둥:

  1. 비용 최적화 (Cost Optimization)
  2. 운영 우수성 (Operational Excellence)
  3. 성능 효율성 (Performance Efficiency)
  4. 신뢰성 (Reliability)
  5. 보안 (Security)

CAF (Cloud Adoption Framework)

조직이 클라우드를 성공적으로 도입(Adoption)하기 위한 전략, 계획, 준비 단계를 가이드하는 프레임워크.

솔루션 아키텍트 (Solution Architect)

  • 역할: 비즈니스 문제에 대한 전체적인 기술적 비전을 수립하고 설계하는 사람.
  • 중요성: 단순히 기술만 아는 것이 아니라, 비즈니스 목표와 기술을 연결(Bridge)하는 역할.
  • 관련 자격증: AZ-305 (Microsoft Azure Solutions Architect Expert) - 클라우드 분야 최고 난이도 자격증 중 하나.

🎓 추천
진정한 클라우드 전문가가 되고 싶다면 기술적인 구현(Engineer)을 넘어, 비즈니스를 이해하고 설계를 할 수 있는 솔루션 아키텍트(Expert 레벨)를 목표로 해야 합니다.

0개의 댓글