클라우드 아키텍처

이관호·2025년 6월 5일
0

1️⃣ 클라우드 아키텍처 개요

  • 클라우드 컴퓨팅 서비스를 효과적으로 구성하고 운영하기 위한 시스템 구조
  • 인프라, 플랫폼, 애플리케이션 계층을 포함하는 통합 설계 방식
  • 안정성, 확장성, 비용 효율성 극대화
  • 서비스 장애 최소화, 사용자 경험 향상

✅ 온프레미스 아키텍처 vs 클라우드 아키텍처

비교 항목기존 온프레미스 아키텍처클라우드 아키텍처
초기 투자 비용높음 (장비 구매, 설치 필요)낮음 (필요 자원만 과금)
확장성제한적 (물리 장비 한계)매우 높음 (Auto Scaling 등으로 탄력 확장 가능)
유지보수자체 인프라 인력 필요클라우드 벤더가 대부분 관리
가용성/복구장애 대응 제한적높은 가용성, 자동 장애 복구, 다중 AZ 활용 가능

✅ 클라우드 아키텍처 구성 요소

  • 인프라 계층 (IaaS): 서버/스토리지/네트워크 자원 (ex. AWS EC2, Azure VM)
  • 플랫폼 계층 (PaaS): 앱 개발자용 환경 (ex. Google App Engine, Azure App Service)
  • 애플리케이션 계층 (SaaS): 사용자가 직접 쓰는 서비스 (ex. Gmail, Salesforce)
  • 구성 요소 간 상호작용:
    • API 호출, 이벤트 기반 통신, 메시지 큐 등으로 결합됨
    • 유기적인 연계를 통해 서비스의 품질 및 관리 용이성 향상

✅ 클라우드 MSA (Microservice Architecture) 및 서비스 구성도 특징

  • 클라우드 환경에서는 각 기능을 독립된 서비스로 분리(Monolithic → MSA)
  • 서비스 간 독립성 강화 → 빠른 배포, 장애 격리, 팀 단위 개발 가능
  • 매니지드 서비스: 클라우드에서 DB 등을 대신 관리해주는 서비스
  • 서비스 간 통신은 API Gateway, Message Queue, Event Bus 등으로 수행

✅ 클라우드 아키텍처의 주요 특징

  • 확장성 (Scalability): 리소스 수요 변화에 따라 자원을 유동적으로 조정할 수 있는 능력
    ⇒ Auto Scaling, Serverless 구조
  • 가용성 (Availability): 서비스가 중단 없이 안정적으로 운영되는 상태를 유지할 수 있는 능력
    ⇒ Multi-AZ, Load Balancing
  • 비용 효율성 (Cost Efficiency): 자원을 효율적으로 활용해 비용을 절감할 수 있는 능력
    ⇒ 서버리스 과금 모델, Pay-as-you-go

✅ 클라우드 아키텍처 설계 원칙

  • 신뢰성 (Reliability): 서비스 장애 발생 시에도 지속적으로 안정적인 운영을 유지하는 능력
    • 이중화 및 다중화 설계
    • 주기적인 백업 및 복구 프로세스 마련

  • 보안성 (Security): 클라우드 환경에서 데이터 및 자원을 안전하게 보호하기 위한 능력
    • 사용자 인증 및 권한 관리(IAM,RBAC등)
    • 데이터 암호화
    • 네트워크 보안 구성(Firewall, Security Groups 등)
    • 보안 모니터링 및 감사 체계 구축

  • 성능/효율성 (Performance & Efficiency): 서비스가 사용자 요구를 충분히 충족할 만큼 빠르게 응답하고 효율적으로 자원을 활용하는 능력
    • 리소스 최적화
    • CDN, Auto Scaling

  • 유지보수/관리용이성 (Maintainability & Manageability): 클라우드 환경에서 서비스 관리 및 유지보수가 쉽고 간편하게 이루어질 수 있는 능력
    • 자동화된 운영 관리
    • 명확한 서비스 구성도 및 문서화
    • 표준화된 배포 프로세스(CI/CD) 구축

✅ 대표적인 클라우드 아키텍처 구조

✅ 1. 클라이언트-서버 아키텍처 (Client ↔ Server)

🔹 정의

  • 가장 기본적인 구조
  • 클라이언트(사용자)가 서버에 요청을 보내고, 서버가 처리 후 응답을 돌려주는 구조.
  • 웹 브라우저와 웹 서버의 관계가 대표적.

🔹 특징

  • 정적인 구조
  • 서버가 중심, 클라이언트는 UI/입력 처리 중심

🔹 장점

  • 단순하고 구현이 쉬움
  • 소규모 프로젝트에 적합

🔹 단점

  • 서버 하나에 의존 → 장애 발생 시 전체 서비스 중단
  • 확장성 한계 (Scale-out 어려움)

✅ 2. 마이크로서비스 아키텍처 (MSA: Microservices Architecture)

🔹 정의

  • 하나의 거대한 애플리케이션을 여러 개의 작은 독립 서비스로 나눠서 개발·운영하는 구조
  • 각 서비스는 자기 데이터베이스와 로직을 가짐

🔹 특징

  • 각 서비스는 독립적으로 배포, 확장, 유지보수 가능
  • 보통 REST API 또는 메시지 큐로 통신함

🔹 장점

  • 독립성: 서비스 간 결합도가 낮아 개별 수정 및 배포 가능
  • 확장성: 특정 서비스만 골라서 수평 확장 가능
  • 장애 격리: 일부 서비스 오류가 전체 시스템에 영향을 주지 않음
  • 팀별 개발 효율 증가

🔹 단점

  • 운영 복잡도↑ (CI/CD, 통신 오류, 모니터링 등)
  • 분산 트랜잭션 처리 어려움

✅ 3. 서버리스 아키텍처 (Serverless Architecture)

🔹 정의

  • 개발자가 서버 인프라를 직접 구축하거나 운영하지 않고 클라우드 제공자가 자동으로 관리
  • 이벤트가 발생할 때만 실행되는 Function 단위로 구성 (FaaS, Function as a Service)

🔹 특징

  • 무 서버 관리: 서버 프로비저닝, 유지보수, 확장 작업이 필요 없음
  • 요청이 있을 때만 실행 → 과금도 실행 시간만큼만

🔹 장점

  • 비용 효율성↑: 유휴 자원 비용 없음
  • 인프라 관리 부담 없음
  • 빠른 배포, 자동 확장

🔹 단점

  • 함수 실행 시간 제한 (Cold Start 문제)
  • 상태 유지 불가 (stateless)
  • 디버깅/모니터링 어려움

✅ 4. 이벤트 기반 아키텍처 (Event-Driven Architecture)

🔹 정의

  • 이벤트 발생을 트리거로 동작하는 아키텍처
  • 이벤트는 메시지 큐, 이벤트 버스 등을 통해 전달됨

🔹 특징

  • 비동기, 느슨한 결합
  • 각 구성 요소는 이벤트만 주고받고, 서로를 몰라도 됨

🔹 장점

  • 확장성, 유연성↑
  • 장애 전파 줄이고 독립 실행 가능
  • 실시간 반응 처리에 적합

🔹 단점

  • 이벤트 순서 보장 어려움
  • 로직 흐름 파악이 어려움 (디버깅 난이도 ↑)

3️⃣ 클라우드 서비스 구성도

  • 사용자에게 제공되는 서비스의 구조를 정적인 시각 도식으로 표현한 것
  • 서비스 흐름, 책임 분리, 확장성 고려가 핵심
  • 전체 서비스 구조를 한눈에 파악하고 공유하기 위한 설계 문서화 도구

✅ 클라우드 서비스 구성 요소의 계층

계층명설명
사용자 계층 (User Layer)사용자와 상호작용하는 인터페이스 (웹/앱)
API 계층 (API Layer)클라이언트 요청을 받아 백엔드와 연결, 인증·라우팅 수행
애플리케이션 계층 (Application Layer)비즈니스 로직 처리 (서버, 서비스, 분석 기능 등)
데이터 계층 (Data Layer)데이터베이스, 저장소, 로그, 캐시 등

✅ 온프레미스 서비스 구성과의 차이

항목온프레미스클라우드
데이터 처리 방식자체 DB, 폐쇄적 환경클라우드 DB, 실시간 수집/연동
운영 서비스수동 운영/모니터링자동화된 운영 도구 활용 (DevOps)
API 게이트웨이직접 구성 필요매니지드 API Gateway 서비스 사용
알림 시스템자체 구현통합 알림 SaaS 사용 가능

✅ 클라우드 구성도 설계 시 핵심 포인트

  • 계층 분리: 역할 구분이 명확해야 유지보수와 확장이 쉬움
  • API Gateway: 중심 허브로 사용해 보안, 모니터링, 로깅을 통합
  • MSA: 서비스별로 독립적 배포 가능 → 유연한 변경, 빠른 장애 대응
  • DevOps 연계: CI/CD 파이프라인까지 포함해 구성도에 반영하면 실제 구현에 도움이 됨
  • 보안: VPC, IAM, HTTPS, API 인증 설계 포함 필수

4️⃣ 클라우드 서비스 구성도 설계 실습

✅ 실습 주제: 도서관 좌석 예약 시스템

  • 요구사항: 로그인 시스템, 좌석예약, 좌석열람, 예약 내역 조회 및 취소, 관리자 좌석 관리, 좌석 실시간 반영, 중복예약 불가
  • AWS Lambda: 특정 시간대나 기간에 신청이 몰리는 예약 시스템 특성 상 가볍고 자동으로 확장 가능한 AWS Lambda가 적합해보임
  • 결과물:
  • 발표 후 참고할 아이디어:
    1. IoT 를 통한 도서관 최적환경(냉난방, 조명 등) 구성
    2. 좌석예약시스템에 추가로 + 학사 정보 + 도서 대출 등 여러 기능 합치기
    3. 고객문의서비스
    4. 사용자 세분화(대학생, 대학원생, 휴학생, 동네 주민, 일반 사용자+결제서비스)
    5. 출입 통제 시스템(개관,폐관시간 고려)
profile
IT병아리

0개의 댓글