시스템구조

서버 가상화_전가상화, 반가상화, 컨테이너 가상화, 하이퍼바이저, 도커, 마이크로서비스 아키텍처(MSA), Type1(베어메탈 방식), Type2(호스티드 방식), 서버리스, 쿠버네티스

스윙스윙 2021. 9. 28. 16:20

▣ 서버 가상화_전가상화, 반가상화, 컨테이너 가상화, 하이퍼바이저, 도커, 마이크로서비스 아키텍처(MSA), Type1(베어메탈 방식), Type2(호스티드 방식)

구분 설명 예시
전가상화
(Full-virtualization)
하드웨어를 완전히 가상하는 것임. 시스템 바이오스, CPU, 메모리 등 시스템의 모든 하드웨어를 가상화 함

게스트(guest) OS 들과 네이티브 하드웨어 사이를 중재(mediate)하는 가상머신(하이퍼바이저)을 사용
게스트OS에서 발생한 하드웨어 접근하기 위해 기존의 OS을 통해서 접근
GuestOS와 H/W사이에 VM을 거쳐 전달하므로 성능은 떨어지지만, GuestOS 수정없이 바로 사용가능
CPU의 도움 필요(CPU-VT기술), VMware ESX서버
반가상화
(Para-Virtualization)
모든 하드웨어의 반 정도만 가상화하고 나머지 반은 실제 하드웨어의 기능을 그대로 이용함
전가상화보다 속도가 빠르지만 게스트OS 수정 비용이 필요

특권모드 명령어를 hypercall로 변환하여 실행. Guest OS의 명령을 중간 단계 없이 바로 H/W 에 전달하므로 성능은 향상되지만 GuestOS 의 커널 수정이 필요
윈도처럼 소스가 오픈되지 않은 상용 OS는 적용 불가
XENExpress

Type 1
(베어메탈 방식)
하드웨어 위에서 바로 구동되며, 하이퍼바이저가 다수의 VM들을 관장하는 형태
하드웨어 위의 OS가 어플리케이션을 제어하듯 네이티브 방식의 하이퍼바이저도 하드웨어 위에서 게시트OS를 제어함
- Xen, ESX서버 등이 있음
- Type2보다는 더 향상된 성능을 제공하지만, 여러 하드웨어 드라이버를 세팅해줘야 하며 설치가 어려움
Type 2
(호스티드 방식)
하드웨어 위에 호스트 운영체제(Host OS)가 있고, 그 위에서 하이퍼바이저가 다른 응용프로그램과 유사한 형태로 동작
호스티드 방식의 하이퍼바이저는 일반 프로그램과 같이 OS안에서 실행되며 게스트 OS는 하드웨어에서 세번째 수준으로 실행됨
VMWare, VirtualBox, 버추얼 PC등이 있음
기존의 컴퓨터 환경에서 하이퍼바이저를 활용하는 것이기에 설치가 용이하고 구성이 편리한 장점이 있지만, Type1보다는 성능이 떨어질 수 있음

컨테이너
가상화
애플리케이션과 그 실행에 필요한 라이브러리, 바이너리, 구성 파일 등을 패키지로 묶은 컨테이너(container) 단위의 가상화 기술
운영체제 수준의 가상화 기술로 커널을 공유하면서 프로세스를 격리된 환경에서 실행하는 기술
컨테이너에는 OS가 포함되지 않아 크기가 수십 MB에 불과하며 운영 체제 부팅이 필요하지 않아 서비스 시작 시간 또한 매우 빠름. 또한 가볍기 때문에 컨테이너에 대한 복제와 배포가 용이함

도커는 오픈소스 기반 컨테이너 가상화 플랫폼임
도커는 가상머신처럼 완전히 OS부터 독립되어 만들어지지 않고 프로세스 단에서 환경이 분리되기 때문에, 보안에 취약함
이미지는 컨테이너(가상화된 독립환경)를 생성할 때 필요한 각종 설정값을 저장하고 있는 파일

 

더보기

* C Group 

  : CPU, 메모리 , Network Bandwith, HD i/o 등 프로세스 그룹의 시스템 리소스 사용량을 관리

     => 어떤 어플이 사용량이 너무 많다면

          그 애플리케이션 같은 것을 C Group 에 집어 넣어서 CPU 와 메모리 사용 제한이 가능 

* 네임스페이스 

  : 하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술

    별개의 독립된 공간을 사용 하는 것 처럼 격리된 환경을 제공하는 경량 프로세스 가상화 기술

 

 

 

■ 마이크로서비스 아키텍처(MicroServices Architecture)

MSA란 마이크로 서비스 아키텍처(Micro Service Architecture)의 약자로 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법

각 컴포넌트는 서비스 형태로 구현되고 API를 이용하여 타 서비스와 통신하게 됨

각 서비스는 독립된 서버로 타 컴포넌트와 의존성이 없기 때문에 독립된 배포를 하게 됨

각 컴포넌트가 독립된 서비스로 개발되어있기 때문에 부분적인 확장이 가능

 

API Gateway

MSA의 문제점 중 하나는 각 서비스가 다른 서버에 분리 배포되어있기 때문에 서버 URL이 각기 다를 수 밖에 없음

이때 API Gateway는 API 서버 앞 단에서 모든 API 서버들의 End-Point를 단일화하여 묶어주는 역할을 함

또한 거미줄처럼 복잡한 서비스간의 API호출 구조도 단순화 시켜줌

그 외에 라우팅, 로드밸런싱, 인증 역할 등등 여러 역할을 수행함

 

  Level0Traditional Level1Basic Level2Intermediate Level3Advanced
Application Monolithic Service Oriented
Integrations
Service Oriented
Applications
API Centric
Database One Size Fit All
Enterprise DB
Enterprise DB + No
SQLs and Light
databases
Polyglot,DBaaS Matured Data Lake
/Near Realtime
Analytics
Infrastructure Physical Machines Virtualization Cloud Containers
Monitoring Infrastructure App & Infra
Monitoring
APMs APM & Central Log Management
Process Waterfall Agile and CI CI & CD DevOps

 

 

프라이빗 클라우드 서비스 제공자를 위한 오픈소스 기반의 서버리스 프레임워크 도입 지침

TTAK.KO-10.1271

 

 

 

Amazon ECS
Amazon ECS는 2015년에 출시된 가장 오래된 클라우드 기반 컨테이너 오케스트레이션 도구중에 하나입니다. Amazon ECS의 가장 큰 장점은 단순함입니다. 기존의 AWS 서비스를 잘 결합해서 컨테이너 배포에 맞도록 서비스를 만들었기 때문에 손쉽게 배포 및 운영이 가능합니다.예를 들어, Amazon ECS에서 기계 학습 도구를 쓰고 싶다면 Amazon SageMaker를 쉽게 연동 가능하며 배치 작업을 위해서는 AWS Batch 등과도 쉽게 연동 가능합니다. 여러분이 컨테이너 구축 및 배포에 대한 경험이 없으시다면, Amazon ECS로 시작하기를 권장합니다.

Amazon EKS
Amazon Elastic Kubernetes Service (Amazon EKS)는 오픈 소스인 Kubernetes 기반 애플리케이션을 AWS에서 운영하는데 도움을 주는 서비스입니다. Amazon EKS는 업스트림 Kubernetes를 실행하며 완전관리형 EKS 클러스터를 실행할 수 있습니다. 여러분의 팀이 오픈 소스 생태계에서 나오는 도구에 익숙하고, 이를 잘 결합해서 운영할 노하우가 있다면 Amazon EKS를 추천합니다.


2018년 85번

정답 : 4번

모든 것을 가상화하지 말고, 어플리케이션이 들어가는데 필요한 구동 환경만 가상화하고 공통 부분인 OS나 라이브러리 등은 공용으로 사용

 


2019년 77번

정답 : 4번

컨테이너 실행 환경의 표준이 도커임

1) 하나의 서버를 여러 서버로 나눈다는 말임 -> 전통적인 서버 가상화 방식

2) 멀티OS환경에 하나의 호스트 환경을 구현 -> 하나의 서버에 여러 OS을 올림(전통적인 서버 가상화 방식)

3) 빠른 시작과 정지가 가능한 것은 맞으나 오버헤드가 심하다는 것은 잘못됨

4) 정답

 


2019년 89번

정답 : 3번

가상서버는 가상화된 OS이고, 호스트OS는 가상화 되지 않는 OS임.

가상화된 OS가 직접적으로 HW와 통신하는 방법이 있고, 다른 하나는 가상화된 OS가 호스트OS를 거쳐서 HW에 접속하는 방식이 있음. 첫번째 방식이 더 효율적임.

 

*다른 해석

가상서버가 호스트 운영체제 중재하에 하드웨어와 통신하도록 함으로써 더욱 효율적이다.

호스트 운영체제는 가상화된 서버에 설치되는 게스트 OS

가상서버는 실제 물리 하드웨어 위에 하이퍼바이저가 올라가서 만든 가상적인 하드웨어

 

가상서버가 게스트OS를 통해서 하드웨어와 통신한다는 것은 잘못된 내용은 맞음

가상서버는 하이퍼바이저 중재하여 하드웨어와 통신한다가 맞는데, 여기서 하이퍼바이저를 호스트 운영체제로 바꾸어서 틀린답으로 구성한 것 같음

Type 1
(베어메탈 방식)
하드웨어 위에서 바로 구동되며, 하이퍼바이저가 다수의 VM들을 관장하는 형태
하드웨어 위의 OS가 어플리케이션을 제어하듯 네이티브 방식의 하이퍼바이저도 하드웨어 위에서 게시트OS를 제어함
- Xen, ESX서버 등이 있음
- Type2보다는 더 향상된 성능을 제공하지만, 여러 하드웨어 드라이버를 세팅해줘야 하며 설치가 어려움
Type 2
(호스티드 방식)
하드웨어 위에 호스트 운영체제(Host OS)가 있고, 그 위에서 하이퍼바이저가 다른 응용프로그램과 유사한 형태로 동작
호스티드 방식의 하이퍼바이저는 일반 프로그램과 같이 OS안에서 실행되며 게스트 OS는 하드웨어에서 세번째 수준으로 실행됨
VMWare, VirtualBox, 버추얼 PC등이 있음
기존의 컴퓨터 환경에서 하이퍼바이저를 활용하는 것이기에 설치가 용이하고 구성이 편리한 장점이 있지만, Type1보다는 성능이 떨어질 수 있음

 


2020년 98번

정답 : 1번

도커(Docker)는 오픈 소스 기반의 컨테이너 관리 플랫폼

OS 컨테이너는 OS단위의 컨테이너로 기존의 가상머신과 유사함

어플리케이션 컨테이너는 일반적인 컨테이너 가상화로서 하나의 어플리케이션 서비스를 컨테이너 패키지로 만들어 구동함

 


2021년 77번

정답 : 3번

1) 기존의 VM방식과 달리, 컨테이너의 가상화의 격리단위는 독립된 어플리케이션/프로세스 실행단위임 (맞음)

2) 호스트 커널을 공유하고 컨테이너 안에는 애플리케이션을 구동하는데 필요한 라이브러리와 실행 파일만 존재(맞음)

3) 컨테이너 이미지 안에는 OS가 포함되지 않아 크기가 매우 적음 (3번 틀림)

4) 컨테이너 안에는 게스트OS가 존재하지 않음 독립적인 컨테이너 단위로 실행되므로 가볍고 속도 또한 빨라서 성능 손실이 적음

 


2021년 95번

정답 : 4번

MSA는 모놀리틱보다 유연성 및 확장성이 높음

서비스 단위로 분할된 작은 응용 SW간의 연계를 통해 업무를 수행

간단히 복제할 수 있어 로드밸런싱 및 복구가 용이함

일반개발보다 복잡하고 Multiple Databases, 트랜잭션 관리가 어려울 수 있음

마이크로서비스 애플리케이션은 테스트가 어려움

 

 


2021년 96번

정답 : 3번

Type 1(베어메탈 방식)

하드웨어 위에서 바로 구동되며, 하이퍼바이저가 다수의 VM들을 관장하는 형태
하드웨어 위의 OS가 어플리케이션을 제어하듯 네이티브 방식의 하이퍼바이저도 하드웨어 위에서 게시트OS를 제어함
- Xen, ESX서버 등이 있음
- Type2보다는 더 향상된 성능을 제공하지만, 여러 하드웨어 드라이버를 세팅해줘야 하며 설치가 어려움

 

Type 2(호스티드 방식)

하드웨어 위에 호스트 운영체제(Host OS)가 있고, 그 위에서 하이퍼바이저가 다른 응용프로그램과 유사한 형태로 동작
호스티드 방식의 하이퍼바이저는 일반 프로그램과 같이 OS안에서 실행되며 게스트 OS는 하드웨어에서 세번째 수준으로 실행됨
VMWare, 버추얼 PC등이 있음
기존의 컴퓨터 환경에서 하이퍼바이저를 활용하는 것이기에 설치가 용이하고 구성이 편리한 장점이 있지만, Type1보다는 성능이 떨어질 수 있음

 


2021년 99번

정답 : 1번

서버리스 서비스 함수 내용이 컨테이너 단위로 빌드되어 산출된 결과물을 위한 저장소인 컨테이너 레지스트리를 구축

컨테이너 단위로 배포된 서버리스 함수를 운영, 관리하기 위해서는 컨테이너 오케스트레이터라 불리우는 자동화 운영 도구를 설치

컨테이너 오케스트레이터 설치 후, 컨테이너 운영환경을 관리하는 마스터 노드와 컨테이너 기능 수행을 위한 워커 노드가 포함된 클러스터를 구성

 


2014년 78번

정답 : 2번

구분 설명 예시
전가상화
(Full-virtualization)
하드웨어를 완전히 가상하는 것임. 시스템 바이오스, CPU, 메모리 등 시스템의 모든 하드웨어를 가상화 함

게스트(guest) OS 들과 네이티브 하드웨어 사이를 중재(mediate)하는 가상머신(하이퍼바이저)을 사용
게스트OS에서 발생한 하드웨어 접근하기 위해 기존의 OS을 통해서 접근
GuestOS와 H/W사이에 VM을 거쳐 전달하므로 성능은 떨어지지만, GuestOS 수정없이 바로 사용가능
CPU의 도움 필요(CPU-VT기술), VMware ESX서버
반가상화
(Para-Virtualization)
모든 하드웨어의 반 정도만 가상화하고 나머지 반은 실제 하드웨어의 기능을 그대로 이용함
전가상화보다 속도가 빠르지만 게스트OS 수정 비용이 필요

특권모드 명령어를 hypercall로 변환하여 실행. Guest OS의 명령을 중간 단계 없이 바로 H/W 에 전달하므로 성능은 향상되지만 GuestOS 의 커널 수정이 필요
윈도처럼 소스가 오픈되지 않은 상용 OS는 적용 불가
XENExpress

 


2016년 94번

정답 : 3번

물리 파티셔닝은 커다란 서버안에 여러장의 보드가 삽입되는 형태임. 각 보드에는 독립된 CPU, DISK, 메모리, OS, I/O등이 들어 있음. 서버를 더 추가하고 싶으면 보드를 추가하면 됨. 하드웨어적으로 독립성 보장됨. 자원의 유연하고 정교한 분배가 어려움

 

논리 파티셔닝은 가상화 소프트웨어를 통해 서버 자원을 배분하는 것임. 하이퍼바이저와 같은 가상화 소프트웨어가 꼭 필요함. 유연한 서버 자원 배분이 가능하고 세분화된 서버 할당이 가능함. 파티셔닝의 독립성이 물리 파티셔닝에 비해 낮음