ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클라우드 기초
    클라우드 2022. 6. 13. 11:18

    클라우드, 그리고 가상화

    컴퓨팅 트렌드의 변화

    - 메인 프레임 (1960~1990) : 중앙화

    - 클라이언트_서버 (1990~2000) : 분산환경

    - 모바일_클라우드 ( 2005~2020) : 중앙화

    - 엣지 컴퓨팅 ( 2020~) : 분산환경

     

    엣지 컴퓨팅

    - 클라우드 컴퓨팅 환경의 보완 기술로 대두

    IOT 장비 또는 네트워크의 각 노드에서 데이터를 실시간으로 신속하게 처리하는 분산 클라우드 컴퓨팅

    - 데이터 연결이 제한되는 상황에서도 데이터의 보관, 백업, 분석 가능

    - 데이터 분산 보관은 클라우드보다 상대적으로 보안 측면에서 안전

    - 클라우드는 연결 제한시 문제 발생

     

    클라우드 컴퓨팅 정의

     

     

    2. NIST 클라우드 컴퓨팅의 정의

    클라우드 컴퓨팅은 어디에서나 동작하고 편리하며, 최소한의 관리 노력이나 서비스 제공자와의 상호 작용을 통해 빠르게 제공하고 배포할 수 있는 구성 가능한 컴퓨팅 자원(예: 네트워크나 서버, 저장소, 애플리케이션 및 서비스 )의 공유 풀에 주문형 네트워크로 접근 가능한 모델입니다. 이 클라우드 모델은 다섯 가지의 필수 특성과 세 개의 서비스 모델 그리고 네 가지 배포 모델로 구성됩니다.

    주요 특징

    • On-demand self-service : 주문형 셀프서비스. 고객은 서비스 제공사의 도움 없이 필요에 따라 자동적으로 서버 시간과, 네트워크 저장소와 같은 컴퓨팅 기능을 단독으로 준비할 수 있습니다.
    • Broad network access : 광범위 네트워크 접근. 모든 기능들은 네트워크를 통해 이용할 수 있으며 이기종의 씬 또는 팻 클라이언트 플랫폼(예: 모바일폰, 태블릿, 노트북, 워크스테이션)의 사용을 확산시키는 표준 메커니즘을 통해 접근합니다.
    • Resource pooling : 리소스 풀링. 제공자의 컴퓨팅 자원은 고객의 요구 사항에 따라 동적으로 할당되거나 재 할당되는 물리적인 또는 가상화된 자원들을 멀티테넌트 모델을 사용하는 복수의 고객들에게 제공하기 위해 풀링(공유 관리) 됩니다. 고객이 제공받는 자원의 정확한 위치에 대한 정보를 일반적으로 가지고 있거나 제어하지 않지만 추상적인 높은 수준(예: 국가, 주, 데이터 센터)에서 지역을 확정할 수 있다는 점에서 장소 독립적인 면이 있습니다.
    • Rapid elasticity : 빠른 탄력성. 기능은 탄력적으로 준비되고 배포될 수 있으며 경우에 따라 자동으로 요구에 비례하여 빠르게 규모를 확장 또는 축소할 수 있습니다. 사용자에게는 프로비저닝에 사용할 수 있는 기능이 대개 무제한이고 언제든지 얼마든 사용할 수 있는 것처럼 보입니다.
    • Measured service : 서비스 측정. 클라우드 시스템은 서비스 유형, 예를 들어 저장소, 프로세싱, 대역폭, 활성화된 사용자 계정에 맞춰 일부 추상적인 수준에서 측정 기능[1]을 활용하여 리소스를 자동으로 제어하고 최적화합니다. 자원 사용은 감시, 제어, 보고되어 서비스 이용자와 제공자 모두에게 투명성을 제공할 수 있습니다.

    배포 모델

    • Private cloud : 프라이빗 클라우드. 클라우드 인프라는 다양한 고객으로 구성된 단일 조직(예: 비즈니스 단위)에서 독점적으로 사용할 수 있도록 제공됩니다. 클라우드 인프라는 조직이나 제3자 아니면 제3자와의 조합에 의해 소유, 관리 및 운영되며 건물의 내부 또는 외부에 위치할 수 있습니다.
    • Comnunity cloud : 커뮤니티 클라우드. 클라우드 인프라는 문제사항을 공유하는 (예: 임무, 보안 요구 사항, 정책 및 준수 고려 사항) 소비자의 특정 커뮤니티에서 독점적으로 사용할 수 있도록 제공됩니다. 클라우드 인프라는 조직이나 제3자 아니면 제3자와의 조합에 의해 소유, 관리 및 운영되며 건물의 내부 또는 외부에 위치할 수 있습니다.
    • Public cloud : 퍼블릭 클라우드. 클라우드 인프라는 일반 사용자들이 공개적으로 사용할 수 있도록 제공됩니다. 클라우드 인프라는 비즈니스, 교육, 공공 조직이나 이들의 조합에 의해 소유, 관리 및 운영됩니다. 클라우드 인프라는 클라우드 벤더의 건물 내에 위치하게 됩니다.
    • Hybrid cloud : 하이브리드 클라우드. 클라우드 인프라는 고유한 특성을 유지하는 두 개 또는 그 이상의 동일하지 않는 클라우드 인프라(예: 프라이빗, 커뮤니티, 퍼블릭)로 구성되지만 표준화나 데이터와 애플리케이션을 이식(예: 클라우드 간 로드 밸런싱을 위한 클라우드 버스팅) 할 수 있는 표준화 또는 독점 기술에 의해 모두 결합됩니다.

    퍼블릭 클라우드

    - 공급업체가 IT자원을 소유 및 운영하고 인터넷을 통해 IT자원을 여러 테넌트에 공유하는 모델

     

    프라이빗 클라우드

    - 클라우드 컴퓨팅 서비스와 인프라가 기업 자체의 인트라넷이나 데이터 센터 내에서만 호스팅되는 클라우드 구축 모델

       클라우드 제공자가 전체 통제 권한을 가지고 보안을 극대화할 수 있음.

     

    하이브리드 클라우드

    - 두 가지 이상의 클라우드 배포 모델로 구성된 클라우드 환경

    - 프라이빗 클라우드보다 덜 민감한 데이터 처리

    - 퍼블릭과 프라이빗을 함께 사용하여 동작하는 플랫폼, 두 클라우드 사이에 데이터와 응용프로그램을 공유할 수 있는 기술

     

    멀티 클라우드

    - 2개 이상의 퍼블릭 서비스 제공업체를 사용하는 모델

    - 하이브리드보다 솔루션 옵션이 증가하여 특정 퍼블릭에 대한 의존도 감소

     

    클라우드 배포모델 비교
    대표 퍼블릭 클라우드 비교

     

    IaaS(Infrastructure as a Service)

    - 인프라를 서비스로 제공, 네트워크와 가상 머신과 같은 자원을 활용해 사용자가 스스로 필요한 기능 구축

     

    주요 자원 : 가상서버

    => 하드웨어 요구사항에 맞춰 임대

    => 프로세서 용량, 메모리, 스토리지 공간 등

     

    주요 기능

    - 스토리지 백업 및 복구, 예측할 수 없는 스토리지 요구사항에 대한 오토 스케일링

    - 고성능컴퓨터 처리 능력 사용

    - 서버 및 개발 장비 설치 및 관리 없이 개발 및 테스트, 빠른 업그레이드 가능

     

    주요 기술 : 가상화 과정

    - 물리적 IT 자원을 가상의 논리적 IT 자원으로 전환시키는 과정

    - 대부분 형태의 IT 자원은 가상화 가능

     

    가상화 소프트웨어

    가상화 유형

    운영체제 기반 가상화 - 기존 운영체제에 가상화 소프트웨어를 설치하는 것

    하드웨어 기반 가상화 - 호스트 운영체제를 필요로 하지 않는 하드웨어 기반 가상화의 여러 논리적 계층

     

    Pass(Platform as a Service)

    - 플랫폼을 서비스로 제공, 운영체제와 필요한 미들웨어를 사용해 환경을 구성, 스토리지, 데이터 백업 등의 기능 제공

    정의

    PaaS 사용 이유

    - 확장성과 경제적 이유로 온프레미스 환경을 클라우드로 확장하고 싶어함

    - 온프레미스 환경을 완전히 대체할 준비가 되어있는 환경을 원함

    - 클라우드 제공자가 되어 또 다른 외부의 클라우드 소비자가 사용할 수 있는 클라우드 서비스를 배포하길 원함.

     

    ** PaaS 는 IaaS 위에서 작동, 인프라 스트럭쳐에 관여하지 않고 개발 및 테스트하는 과정에 집중할 수 있게 해줌.

     

    Saas(Software as a Service)

    - 소프트웨어를 서비스로 제공 및 클라우드로 필요한 소프트웨어를 할당 받아 별도의 설치 없이 사용

    정의

    - 공유되는 클라우드 서비스 형태이며 제품이나 일반적인 유틸로 이용 가능

    - 재사용 가능한 클라우드 서비스를 다양한 클라우드 소비자가 널리 이용하게 함.

     

    클라우드 컴퓨팅 주요 기술

    클러스터 컴퓨팅

    정의

    - 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합

    - 각각의 운영체제가 실행되는 컴퓨터들이 고속의 근거리통신망(LAN)으로 서로 연결되어 단일 시스템으로 작동하는 독립적인 IT 자원들의 그룹

    - 이중화와 장애 조치 기능이 클러스터에 내재, 따라서 가용성 및 신뢰성 증가

    조건

    - 어떤 구성 요소에 장애가 발생했을 때 이를 비슷한 성능의 다른 구성 요소로 대체할 수 있어야 하기 때문에 각 구성 요소 시스템이 동일한 기종의 하드웨어와 운영체제로 이뤄져야 함. (그래서 보통 리눅스를 많이 사용함.)

    - 클러스터를 구성하는 장치는 전용 고속통신 링크를 통해 동기화 돼야 함.(물리적으로 연결)

    유형

    - 고가용성 클러스터

    - 로드밸런싱 클러스터

    - 고성능 클러스터

     

    그리드 컴퓨팅

    정의

    - 컴퓨팅 자원이 하나 이상의 논리적인 풀(pool)로 구성된 플랫폼 제공

    - 분산 병령 컴퓨팅(Distribited Parallel Computing) : 집합적으로 고성능의 분산 그리드를 제공 -> 슈퍼 가상 컴퓨터

    - 클러스터 컴퓨팅과의 차이점 : 훨씬 느슨하게 결합 및 분산되어 있는 구조

     

    장점

    - 인프라의 최적화 : 업무를 통합하고 시간을 줄임으로써 최적의 인프라 활용을 가능하게 함.

    - 뛰어난 탄력성 및 가용성을 갖춘 인프라 : 급변하는 수요에 대처하고 효과적인 확장으로 요구사항에 대처 가능

    - 데이터 접근 및 협업의 증가 : 가상의 조직 구성을 통해 분산된 부서나 조직이 데이터 및 자원 공유 기능 제공

     

    가상화

    정의

    - 물리적인 하드웨어 장치를 논리적인 객체로 추상화 하는 것

    - 하나의 장치를 여러 개로 나눠 동작시키거나 여러 개의 장치를 묶어 하나의 장치인 것 처럼 사용자에게 공유자원으로 제공하는 것.

     

    대상 하드웨어 자원에 따른 분류

    가상화 : 하이퍼바이저

    정의

    - 가상화 소프트웨어 : 호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 소프트웨어

    - 하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링하는 중간 관리자

    - VMM(VIrtual Machine Monitor, Manager) 이라고도 불림

    - 하이퍼바이저의 출현으로 물리적인 서버 자원을 추상화하고 논리적으로 공간을 분할해 가상머신이라는 독립적인 가상 환경 서버의 이용이 가능해짐.

     

    유형

    - 네이티브 하이퍼바이저 형

    - 호스트 형

    가상화 방식에 따른 구분

    성능 문제

    - 가상화는 기존의 하드웨어를 하이퍼바이저를 통해 직접 가상화하거나 호스트 OS 상에서 소프트웨어적으로 구동하기에 성능의 하락이 발생

    - 가상머신에서 디스크 읽기/쓰기와 같은 하드웨어 접근 시 기존 시스템에 비하여 거치는 단계가 늘어나므로 명령 처리 루틴이 길어짐

     

    컴퓨터 성능 순서

     

    가상 머신의 독립성

    - 하이퍼바이저 기반 VM은 각 VM마다 독립된 가상 하드웨어 자원을 할당 받음

    - 하드웨어 특정 영역에 대한 접근 권한을 보장받는다는 의미

    - 논리적으로 분리되어 다른 VM의 장애에 영향을 받지 않음.

     

     

    가상화 : 컨테이너 

    정의

    - 모듈화되고 격리된 컴퓨팅 공간(환경)

    - 프로세스를 격리하여 모듈화된 프로그램

    - 패키지로써의 수행을 의미 -> 하이퍼바이저와 게스트 OS를 필요로 하는 가상머신 방식이 아님

    - 기존 가상머신에 비해 가볍고 빠르게 동작 가능

     

    컨테이너 등장 LXC(LinuX Container)

    - 개발 프로그램이 구동 환경의(스토리지, 네트워크, 보안정책, 개발환경 버전 등) 변화에 따라 각종 오류를 발생시키는 것을 해결하기 위함

    - 2000년대 중반 리눅스에 내장

    - 호스트에서 실행되는 프로세스들을 독립적으로 모듈화

    - IBM namespace : 시스템 리소스들을 묶어 프로세스에 전용 할당하는 방식으로 제공, 한 개 프로세스의 자원을 관리하는 기능

    - 구글 cgroup : CPU, 메모리 등 프로세스 그룹의 시스템 자원 사용량을 관리하여 특정 애플리케이션의 지나친 자원 사용을 제한할 수 있음

     

    개념

    - 단일 머신 상에서 여러 개의 독립된 리눅스 시스템(리눅스 커널) 실행을 위한 OS 레벨 가상화 방법

     

    OS 레벨 가상화

    장점

    - 경량화

    - 크기가 작아 복제와 배포가 용이

    - 유연성

    - 구동 방식 간단

    - 이식성이 좋음

     

    단점

    - 호스트 OS를 공유하므로 장애 발생 시 영향을 받을 수 있음

     

    하이퍼바이저 컨테이너 과정 비교

    - 하이퍼 바이저는 구조위에 호스트 올리고 그위에 하이퍼바이저를 올린 다음 게스트 OS를 올려야 그다음 라이브러리나 어플리케이션을 올리는 순서로 되어있는데, 그에 비해 컨테이너는 중간 과정이 생략되어 있어 무겁지 않다.

     

    도커

    - 컨테이너를 관리하는 기능의 오픈소스 플랫폼

    특징

    - 기존 LXC 기술에 이식성 향상, 데이터와 코드의 분산된 관리, 프로그램 스택의 간결하고 명료함 등 이동성과 유연성을 향상 시킴

    - 쉽고 빠른 배포와 복제, 이동, 백업 가능

    - 컨테이너 기반의 기상화 소프트웨어 중 최근 가장 각광 ( OpenVZ, Linux vServer, Docker)

    - 이미지와 레이어 개념 지원

     

Designed by Tistory.