ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클라우드
    CS지식 2023. 8. 31. 22:04

    가상머신

    • 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것(클라우드의 기반 기술)
    • 전통적 배포방식
      물리적인 컴퓨터 한 대에 하나의 OS를 깔고 여러 가지 프로그램을 설치하는 방식
      계정을 나눠 여러 명의 사용자가 이용할 수 있도록 할 수 있지만 어떤 프로그램을 설치했을 때 다른 앱에 영향을 미침
    • 가상화 배포방식
      가상머신을 기반으로 배포하는 것
      계정을 나누는 것이 아니라 한대의 컴퓨터를 가지고 여러 개의 OS를 구동할 수 있게 되며
      CPU, RAM을 물리적으로 갈아끼는 것이 아니라 설정만으로 이를 수행할 수 있게 됨

    • 중간에 있는 Hypervisor는 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해 주는 중간 계층을 의미하며
      이 위에 여러개의 가상머신을 구축할 수 있고 가상머신 위에 OS,
      그 위에 앱이 올라가는 형태로 가상머신을 독립적으로 수행 가능
    • 클라우드는 이러한 가상화라는 기술 때문에 한대의 하드웨어로 여러 명의 사용자들에게 독립적으로 클라우드 서비스 가능

    • 독립적으로 가상머신이 구축되어 서로 전혀 상호작용하지 않으며
      한 가상머신위의 프로그램은 다른 가상머신 위의 프로그램에서 볼 수 없는 형태를 샌드박스되었다고도 표현
    • OS가 공유가 안되기 때문에 가상머신에 일일히 OS를 설치해야 하는 단점이 있음

     

    오프프레미스(off-premise) 방식

    • 내가 아닌 다른 회사의 공급자가 호스팅하고 인터넷을 통해 사용자에게 제공되는 인프라, 플랫폼 또는 소프트웨어를 말함
    • 자체 인프라나 하드웨어 설치 없이도 앱과 리소스에 쉽고 싸게 이용 가능

    분산된 서버를 기반으로 클라우드를 이용하는 모습

    • 위 그림처럼 되면 서버를 직접 구매할 때 고려해야 할 전력, 위치, 서버 세팅, 확장성을 고민하지 않고 서비스 운영에만 집중 가능

     

    온프레미스(on-premis) 방식

    • 기업이나 개인이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터(IDC)를 의미
    • 네트워크 선까는 것부터 시작해 서버, 데이터베이스 설치 등을 하는 것

     

    IaaS(Infrastructure-as-a-Service)

    • 인프라형 클라우드서비스로 클라우드가 단지 인프라를 제공
    • node.js, MongoDB 등을 개발자가 직접 설치해야 하는 대신 특정 서비스에 종속되지 않음(빈방이라고 생각)
    • ex) AWS의 EC2, NCP 등

     

    Paas(Platform-as-a-Service)

    • 플랫폼형 클라우드 서비스로 클라우드가 플랫폼을 제공
    • Node.js, MongoDB 등이 설치되어있으며 그저 클릭을 통해 해당 서비스를 이용할 수 있음(빌트인 방이라고 생각)
    • 모니터링, CI/CD가 제공
    • ex) heroku

     

    SaaS(Software-as-a-Service)

    • 서비스형 클라우드서비스로 완전한 서비스를 클라우드서비스로부터 제공받아 사용
    • ex) 구글DOCS - 클라우드를 통해 다른 컴퓨터에서도 쉽게 작업, 다른 사람과의 실시간 공유작업이 가능

     

    Paas와 IaaS 비교

      PaaS IaaS
    유연성 유연하지 않으며 플랫폼에 종속 유연하며 플랫폼에 종속되지 않음
    이식성 낮음 높음
    운영비 효율 좋음 효율 낮음

     

    컨테이너

    • 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록
      코드와 모든 종속성을 패키징 하는 소프트웨어의 표준 단위
    • OS를 공유하기 때문에 빠르고, 경량화되어 있으며 격리성도 훌륭
    • OS에 문제가 생기면 다른 앱에도 영향을 미칠 수 있음

     

    도커

    • 컨테이너 필요한 기능을 거의 모두 제공하는 플랫폼
    • 애플리케이션 구동에 필요한 환경설정관련 절차를 도커파일에 작성하고
      그 후 빌드를 하면 도커이미지가 생성이 되고 도커이미지를 실행시키면 도커컨테이너가 만들어지고
      그 후 도커컨테이너에 설정된 프로그램, 데이터 등이 실제 컴퓨팅자원 위에서 돌아가게 됨
    • 컨테이너 만드는 과정
      • 도커파일 : 패키지, 환경변수설정 등을 기록한 파일, 이를 빌드해 도커이미지로 변환
      • 도커이미지 : 컨테이너 실행에 필요한 파일과 설정값, 데이터 등을 포함된 상태값이며 불변함
        하나의 이미지에서 여러개의 컨테이너를 생성할 수 있으며 컨테이너의 상태와는 무관하게 이미지는 그대로 존재
        ex) 1대의 서버에 환경설정해야 한다면 미리 만들어 놓은 이미지를 다운로드하여서 이를 통해 컨테이너만 만들면 끝
      • 도커컨테이너 : 컨테이너가 실행시키면 도커이미지에 설정된 프로그램, 데이터 등이 실제 컴퓨팅자원과 연결

     

    'CS지식' 카테고리의 다른 글

    디자인패턴(1)  (2) 2023.09.04
    개발자 기본지식  (0) 2023.09.02
    CI/CD  (0) 2023.09.02
    API  (2) 2023.08.29
    데이터교환형식  (0) 2023.08.28

    댓글

Designed by Tistory.