클라우드 컴퓨팅이란?

SIMWOOHYUN·2025년 6월 13일
post-thumbnail

클라우드 컴퓨팅이란?

클라우드 컴퓨팅(Cloud Computing)은 인터넷을 통해 온디맨드(on-demand)로 서버, 스토리지, 네트워크, 데이터베이스, 애플리케이션 등 컴퓨팅 자원을 제공받아 사용하는 서비스를 말합니다. 물리적 인프라를 직접 구매·관리하지 않고, 필요한 만큼만 프로비저닝(provisioning)하여 비용 효율성과 확장성을 극대화할 수 있습니다.


왜 클라우드 컴퓨팅인가?

  1. 비용 절감
    • 초기 투자(CAPEX) 없이 사용량 기반 과금(OPEX) 방식으로 전환 → 불필요한 자원 낭비 최소화
  2. 확장성(Scalability)
    • 트래픽 증가 시 자동 스케일아웃(Auto-Scaling)으로 리소스 확장 → 서비스 가용성 확보
  3. 민첩성(Agility)
    • 몇 분 내로 인스턴스·컨테이너 생성 → 빠른 PoC(Proof of Concept) 및 개발 속도 향상
  4. 전 세계 분산 배포
    • 글로벌 리전·존(zone) 선택 → 지연(latency) 감소 및 재해 복구(Disaster Recovery) 전략 지원
  5. 매니지드 서비스
    • RDBMS, 메시지 큐, 캐시, 머신러닝, IoT 등 다양한 매니지드 서비스 활용 가능

클라우드 서비스 모델

모델약어제공 범위사용 예시
인프라IaaS가상머신(VM), 네트워크, 스토리지AWS EC2, Azure VM, GCP Compute
플랫폼PaaS런타임 환경, 운영체제, 미들웨어Heroku, Google App Engine
소프트웨어SaaS애플리케이션 전체Google Workspace, Salesforce

클라우드 배포 모델

  1. 퍼블릭 클라우드
    • 다수 고객이 공유하는 인프라 제공, 비용 효율
  2. 프라이빗 클라우드
    • 특정 조직 전용 인프라, 보안·규제 준수 강화
  3. 하이브리드 클라우드
    • 퍼블릭·프라이빗 클라우드 연동, 워크로드별 최적화
  4. 멀티 클라우드
    • 여러 퍼블릭 클라우드 벤더 조합 사용 → 공급자 종속성(lock-in) 완화

클라우드 도입 가이드

  1. 현재 환경 분석
    • 온프레미스 인프라 리소스 사용량, 네트워크·보안 요구사항 파악
  2. 목표 설정
    • 비용 절감률, 가용성 SLA, 성능 목표 등 명확화
  3. 아키텍처 설계
    • 리전·존, 네트워크(VPC/Subnet), 보안 그룹/방화벽 정책, IAM 역할 설계
  4. 마이그레이션 전략
    • 리프트&시프트(Lift & Shift) vs 리팩터링(Refactoring) vs 리플랫폼(Replatforming) 결정
  5. 자동화·모니터링
    • IaC(Terraform/CloudFormation)로 인프라 관리, CloudWatch/Prometheus로 메트릭 수집
  6. 비용 최적화
    • 예약 인스턴스(RI), 스팟 인스턴스 활용, 스토리지 수명 주기 정책 수립

마이크로서비스 아키텍처란?

마이크로서비스 아키텍처(Microservices Architecture)는 애플리케이션을 작고 독립적인 서비스 단위로 분리하여 개발·배포·운영하는 패턴입니다. 각 서비스는 고유의 비즈니스 기능을 캡슐화하고, HTTP/REST, gRPC, 메시징 큐 등을 통해 통신합니다.


마이크로서비스의 장점

  1. 독립 배포
    • 서비스별로 릴리즈 주기 및 기술 스택 선택 가능 → 개발 속도 향상
  2. 장애 격리
    • 한 서비스 장애 시 전체 시스템 영향 최소화
  3. 조직 분할
    • 도메인별 팀 소유 → 애자일(Agile)·DevOps 문화 강화
  4. 확장성
    • 트래픽이 많은 서비스만 개별 스케일아웃 가능 → 자원 효율성

마이크로서비스의 단점 및 고려사항

  • 분산 복잡성
    • 네트워크 호출 증가 → 지연(latency), 오류(failure) 관리 필요
  • 데이터 관리
    • 서비스별 독립 DB → 분산 트랜잭션, 데이터 일관성 고민
  • 오버헤드
    • 서비스 수 증가 시 운영·모니터링 부담 → 중앙 로깅, 분산 트레이싱 필수
  • DevOps 문화 요구
    • CI/CD 파이프라인, 인프라 자동화, 팀 간 협업 프로세스 성숙 필요

마이크로서비스 구현 가이드

  1. 서비스 경계 설정(Bounded Context)
    • 도메인 주도 설계(DDD) 원칙에 따라 비즈니스 도메인별로 서비스 분리
  2. API 설계
    • 경량화된 RESTful API, gRPC 사용 고려 → 인터페이스 계약(contract) 명세화 (OpenAPI/Swagger)
  3. 데이터 관리
    • 각 서비스 고유 데이터베이스, 이벤트 소싱(Event Sourcing), CQRS 패턴 적용 검토
  4. 통신 방식
    • 동기식: HTTP/REST, gRPC
    • 비동기식: 메시지 큐(Kafka, RabbitMQ), 이벤트 버스(Event Bus)
  5. 카탈로그 및 서비스 디스커버리
    • Consul, Eureka, AWS Cloud Map 등으로 런타임 서비스 위치 관리
  6. 탄력성 확보
    • 회로 차단기(Circuit Breaker), 재시도(Retry), 타임아웃 설정으로 장애 전파 방지
  7. 배포 전략
    • 블루-그린 배포, 카나리아 릴리즈, 롤링 업데이트 등 무중단 배포 기법 적용

모니터링 & 운영

  • 중앙 로깅: ELK, Loki로 로그 수집·분석
  • 메트릭 수집: Prometheus, OpenTelemetry로 서비스별 메트릭 확보
  • 분산 트레이싱: Jaeger, Zipkin으로 호출 흐름 및 병목 구간 파악
  • 알림 체계: Alertmanager, PagerDuty 연동으로 빠른 대응
  • 헬스 체크: Kubernetes Liveness/Readiness Probe, Service Mesh(Envoy) 활용

결론

클라우드 컴퓨팅과 마이크로서비스 아키텍처는 현대 애플리케이션의 민첩성과 확장성을 극대화하는 핵심 패러다임입니다.

  • 클라우드: 유연한 인프라 활용, 빠른 프로비저닝, 비용 최적화
  • 마이크로서비스: 독립적 서비스 개발·배포, 장애 격리, 조직·기술 확장성

두 기술을 결합하면 Cloud-Native 애플리케이션을 구현할 수 있으며, IaC와 자동화된 CI/CD 파이프라인, 강력한 모니터링 체계를 통해 안정적이고 효율적인 운영이 가능합니다. Velog에 작성하실 때에는 위 가이드를 참고해 여러분의 프로젝트 환경에 맞게 커스터마이징해보세요!

0개의 댓글