CS/Cloud

[클라우드] 클라우드 컴퓨팅, IaaS, SaaS, PaaS, Microservices

0m1n 2023. 2. 2. 15:22
728x90
반응형

클라우드 컴퓨팅 : 네트워크 기반의 컴퓨팅 기술

  • 컴퓨팅 리소스를 데이터 센터에 대량으로 집적 -> 이용자가 요구하는 만큼 가상으로 분리하여 정보통신망을 통해 제공
  • 사용량에 비례하여 비용 청구

IaaS (Infrastructure as a Service) - IT 전문가

PaaS (Platform as a Service) - S/W 개발자

SaaS (Software as a Service) - 최종 사용자

IaaS (Infrastructre as a Service)

  • CPU나 하드웨어 등 컴퓨팅 리소스(자원)를 네트워크를 통해 서비스로 제공하는 모델

IaaS 가상화 유형

  • hypervisor : OS 환경을 통째로 가상화 함
    • 장점
      • 가상 서버마다 OS를 선택할 수 있음
      • 가상 서버들이 완전 분리되어 있음
    • 단점
      • 가상 서버마다 OS가 필요하므로 하드웨어 리소스의 소비량이 많음
      • 가상 서버의 부팅에 시간이 걸림
  • container : 하나의 호스트 OS에서 멀티 OS 환경을 구현함
    • 장점
      • 하나의 호스트 OS에서 여러 개의 OS를 동시에 이용할 수 있음
      • 다른 컨테이너로의 복제성과 이식성이 뛰어남
    • 단점
      • OS 커널을 공유하므로, 각 OS 이미지는 각 OS에서만 실행 가능
      • 하나의 호스트 OS를 공유하기 때문에 컨테이너 하나가 공격을 받으면 다른 컨테이너도 위험에 노출 가능성 있음

PaaS (Platform as a Service)

  • 기업의 애플리케이션 실행 환경 및 애플리케이션 개발 환경을 서비스로써 제공하는 모델

PaaS 종류 3가지

  • PUBLIC : 서비스 제공업체가 구축한 서버 등 IT 인프라를 기업들이 사용료를 내가 이용하는 방식 (aws, heroku 등)
  • HYBRIDE : Public, Private 동시에 제공하고 장점만 선택해 사용 가능 (Azure)
  • PRIVATE : 기업 자체적으로 데이터센터 내 클라우드 환경 구축에 사용

IaaS 자원 위에 여러 인스턴스들의 유기적인 조합으로 PaaS 동작

PaaS 동작 원리

  1. 배포 명령 실행
  2. Diego 컨테이너 생성(안외워도됨)
  3. Application 코드 배치
  4. 적합한 Buildpack 찾기(스템셀에서 찾아와 릴리즈에서 제작)
  5. 컴파일 진행

배포 -> 컨테이너 생성 -> 코드 배치 -> Buildpack 찾기 -> 컴파일 -> Droplet Archive -> Blobstore에 저장

Blobstore : 컨테이너로 생성된 서비스는 복제해서 배포함, 2개 이상으로 분리되어 백업에 사용

  1. b. Diego Cell은 Droplet을 blobstore에 저장한다.
  2. c. 스테이징된 어플리케이션을 다음에 사용 할 수 있도록 빌드팩 캐시를 blobstore에 업로드 한다.

PaaS 주요 용어

  • BuildPack : 언어별 프로그램이 동작할 수 있도록 언어 프레임워크등의 기술 지원
  • Org & Space : 효과적으로 업무를 구분할 수 있는 논리적인 그룹 기능
  • Service Packs : 제공 가능한 서비스들

Build Packs(껍데기를 만드는 것) : 언어별 프로그램이 동작할 수 있도록 언어, 프레임워크 등의 기술 지원

Service Packs(껍데기를 지원하는 것) : 데이터베이스, 스토리지 등의 저장소의 역할 Org & Space : 업무를 구분할 수 있는 논리적인 그룹 기능, 배포하고 관리하는 기능 Org : 개인 또는 여러 공동 작업자가 소유하고 사용할 수 있는 개발 계정, 각 계정은 ORG에 롤을 부여받음

  • BOSH : IaaS환경에서 Stemcell, Deployment, Release를 이용하여 vm들을 관리 (Stemcell, Deployment, Release, Manifest)

SaaS (Software as a Service)

  • 업무에서 사용하는 sw의 기능을 인터넷 등 네트워크를 통해 필요한 만큼 서비스로 제공

SaaS 기술적 특징

  • 환경 설정 : 소스코드 레벨 수정 없이 사용자의 요구사항 수용
  • 다중 사용자 지원 : 하나의 어플리케이션을 다수의 사용자가 공유
  • 확장성 : 다수의 인스턴스를 생성, 사용자의 데이터 분산 처리

IaaS를 기반으로 SaaS를 개발하면,대부분기존 응용SW를 IaaS 환경으로 설치하는 것으로 그치거나, 기술적인 문제를 고민하지 않아 실패로 끝남

→ PaaS 있어야함

PaaS는 컨테이너를 기반으로 한 미들웨어 성격의 클라우드 서비스로 SaaS의 개발과 실행 지원

Microservices 구성

  • 쓰고싶은 db만 따로 사용 가능
  • 더 빠른 출시 개발 주기가 단축되기 때문에 마이크로서비스 아키텍처는 보다 민첩한 배포 및 업데이트를 지원합니다.
  • 높은 확장성 ...
  • 뛰어난 복구 능력 ...
  • 손쉬운 배포 ...
728x90
반응형