클라우드 기본 개념 (1) - 클라우드 컴퓨팅 서비스, Monolith, MSA

2024. 12. 6. 14:57·서버&인프라/Cloud

 

 

1. 클라우드

 
정의

  • 인터넷 기반의 컴퓨팅
  • 서버, 네트워크, 애플리케이션, 서비스 등 다양한 컴퓨팅 리소스에 장소나 시간 제약 없이 쉽고 빠른 접근 가능

 
클라우드 종류

  • 공용 클라우드 (Public Cloud) : 여러 사용자에게 자원을 제공하는 클라우드 (예: AWS, Azure, GCP)
  • 사설 클라우드 (Private Cloud) : 특정 조직이나 기업만을 위한 전용 클라우드
  • 커뮤니티 클라우드 (Community Cloud) : 여러 조직이나 기업이 공동으로 사용하는 클라우드
  • 하이브리드 클라우드 (Hybrid Cloud) : 공용 클라우드와 사설 클라우드를 결합하여 사용하는 클라우드
  • 멀티 클라우드 (Multi-Cloud) : 여러 클라우드 서비스 제공업체의 서비스를 동시에 사용하는 모델
  • 엣지 클라우드 (Edge Cloud) : 데이터를 생성되는 지점에서 처리하는 클라우드, IoT 및 실시간 처리에 적합

 
 


 
 
 

2. 클라우드 컴퓨팅 서비스

 
IaaS (InfraStructure as a Service)

  • 클라우드 인프라 서비스
  • 인터넷을 통해 최종 사용자에게 IT 인프라를 제공하는 형태의 클라우드 컴퓨팅이다.
  • Amazon Web Services (AWS) EC2, Microsoft Azure Virtual Machines, Google Compute Engine 등이 있음

 
PaaS (Platform as a Service)

  • 클라우드 플랫폼 서비스
  • 개발자가 애플리케이션을 만들고 배포하는 데 필요한 플랫폼을 제공
  • Google App Engine, Microsoft Azure App Services, Heroku 등이 있음

 
SaaS (Software as a Service)

  • 소프트웨어 서비스
  • 최종 사용자가 인터넷을 통해 애플리케이션을 사용하는 서비스 모델
  • Microsoft 365, Notion, Figma, Google Workspace, Dropbox 등이 있음

 
 
 
 
 
입문자라면 IaaS, PaaS, SaaS만 알아도 충분하지만, 그 외에도 많은 클라우드 컴퓨팅 서비스들이 있다.
 
 
FaaS (Function as a Service)

  • 서버리스 컴퓨팅 모델
  • 애플리케이션의 개별 기능을 클라우드에서 실행할 수 있게 해준다.
  • 개발자가 자체 인프라를 유지관리할 필요 없이 애플리케이션 패키지를 기능으로 빌드, 실행, 관리할 수 있게 해주는 클라우드 컴퓨팅 서비스이다.
  • AWS Lambda, Google Cloud Functions 등이 있음

 
CaaS (Container as a Service)

  • 컨테이너화된 애플리케이션을 관리하고 실행하는 플랫폼
  • 주로 컨테이너(예: Docker)를 기반으로 하는 서비스로, 애플리케이션을 클라우드에서 쉽게 배포하고 관리할 수 있도록 돕는다.
  • Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS) 등이 있음

 
BaaS (Backend as a Service)

  • 서비스형 백엔드
  • 웹 애플리케이션의 백엔드 서버를 클라우드에서 제공하는 서비스이다.
  • 서비스형 모바일 백엔드(MBaaS)는 백엔드 측면 개발을 자동화시키고 클라우드 인프라를 다루는 플랫폼이다.
  • Firebase, Parse 등이 있음

 
DaaS (Desktop as a Service)

  • 클라우드에서 제공되는 데스크탑 환경
  • 사용자들은 클라우드를 통해 원격으로 데스크탑을 이용하고, 애플리케이션을 실행하며 작업할 수 있다.
  • Amazon WorkSpaces, Citrix Virtual Apps and Desktops 등이 있음

 
IDaaS (Identity as a Service)

  • 클라우드 기반의 인증 및 관리 시스템을 제공하는 서비스
  • 업이 사용자 인증, 접근 관리, Single Sign-On(SSO) 등을 클라우드에서 처리할 수 있다.
  • Okta, Azure Active Directory 등이 있음

 
MaaS (Monitoring as a Service)

  • 클라우드에서 모니터링 및 관리 서비스를 제공하는 모델
  • 업이나 개발자는 애플리케이션, 시스템, 네트워크 등의 성능을 모니터링하고 관리할 수 있다.
  • Datadog, New Relic 등이 있음

 
XaaS (Anything as a Service)

  • 특정한 범위에 국한되지 않고 다양한 서비스
  • 클라우드에서 제공할 수 있는 거의 모든 서비스 모델을 포괄하는 개념

 
이 외에도 TaaS (Testing as a Service), CaaS (Communication as a Service), B2B SaaS (Business-to-Business Software as a Service), RaaS (Robotics as a Service), DBaaS (Database as a Service), VaaS (Video as a Service) 등등 수 많은 클라우드 컴퓨팅 서비스가 있다.
 
클라우드 서비스는 계속해서 발전하고 있으며, 다양한 요구를 충족시키기 위해 새로운 서비스 모델들이 등장하고 있다.
 
 
 


 
 
 

3. Monolith와 MSA(Microservices Architecture)

 
Monolith

  • 하나의 단일 애플리케이션으로 구성된 전통적인 소프트웨어 아키텍처
  • 이 방식에서는 모든 기능이 하나의 코드베이스와 함께 배포된다.

 
MSA(Microservices Architecture)

  • 애플리케이션을 작고 독립적인 서비스들로 나누어 각 서비스가 독립적으로 배포되고 운영되는 아키텍처
  • 각 서비스는 특정 기능을 수행하며, 서로 독립적으로 관리되고 상호 작용한다.

 
 
Monolith와 MSA 차이

항목 Monolith MSA
구성 하나의 단일 애플리케이션으로 모든 기능을 포함 작은 서비스들로 나누어 각 서비스가 독립적
확장성 확장에 제한이 있을 수 있음 서비스 단위로 독립적인 확장이 가능
배포 전체 애플리케이션을 한 번에 배포 각 서비스를 독립적으로 배포
기술 스택 동일한 기술 스택 사용 각 서비스가 다른 기술 스택 사용 가능
유지보수 시스템이 커질수록 유지보수 어려움 유지보수 용이
복잡도 상대적으로 낮음 높은 복잡도를 가질 수 있음
의존성 서비스 간 결합도가 높음 서비스 간 의존성이 낮고 독립적

 
 
 

'서버&인프라 > Cloud' 카테고리의 다른 글

Docker war 파일 못찾음 not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type 에러 해결 방법  (0) 2025.01.07
Docker로 Spring 웹 애플리케이션 배포하기 (4) - 이미지 처리, 볼륨 매핑  (0) 2024.12.19
Docker로 Spring 웹 애플리케이션 배포하기 (3) - MySQL DB 연결과 데이터 옮기기  (0) 2024.12.13
Docker로 Spring 웹 애플리케이션 배포하기 (2) - Docker 컨테이너에 배포  (0) 2024.12.12
Docker로 Spring 웹 애플리케이션 배포하기 (1) - Windows 11 Pro에서 Docker 설치 방법  (0) 2024.12.11
'서버&인프라/Cloud' 카테고리의 다른 글
  • Docker로 Spring 웹 애플리케이션 배포하기 (4) - 이미지 처리, 볼륨 매핑
  • Docker로 Spring 웹 애플리케이션 배포하기 (3) - MySQL DB 연결과 데이터 옮기기
  • Docker로 Spring 웹 애플리케이션 배포하기 (2) - Docker 컨테이너에 배포
  • Docker로 Spring 웹 애플리케이션 배포하기 (1) - Windows 11 Pro에서 Docker 설치 방법
오은이
오은이
  • 오은이
    오은이 하우스
    오은이
  • 전체
    오늘
    어제
    • 분류 전체보기 (81) N
      • 일기 (2)
      • Python (1)
      • Java (4)
      • CS (2)
      • 코딩테스트 (26)
        • 백준 (25)
        • 프로그래머스 (1)
      • 웹 개발 (17)
        • Spring (6)
        • JavaScript (3)
        • WebSquare (5)
        • React (3)
      • DB (5)
        • MySQL (4)
        • Oracle (1)
      • 서버&인프라 (18)
        • Server (5)
        • Cloud (12)
        • Linux (1)
      • 자격증 (6) N
        • 정보처리기사 (1)
        • AICE (5) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    dockerspring
    백준자바
    Spring
    tomcat
    웹스퀘어
    websquare
    자바
    AICE
    MySQL
    백준
    docker배포
    db
    react
    EC2
    Associate
    Java
    AI
    클라우드 배포
    머신러닝
    오블완
    cloud DB
    Apache
    AICE Associate
    docker
    리액트
    톰캣
    알고리즘
    클라우드
    SpringBoot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
오은이
클라우드 기본 개념 (1) - 클라우드 컴퓨팅 서비스, Monolith, MSA
상단으로

티스토리툴바