DX Data School

Container 와 Virtualization

Kim J 2024. 4. 5. 10:28

1. Container 와 Virtualization

1) Virtualization(가상화)

  • 서버, 스토리지, 네트워크 및 물리적 시스템에 대한 가상 표현을 생성하는데 사용할 수 있는 기술
  • 가상화 소프트웨어는 물리적 하드웨어 기능을 모방해서 하나의 물리적 컴퓨터에서 여러 가상 시스템을 동시에 실행하는 것이 가능하도록 함
  • 하드웨어 리소스를 효율적으로 사용해서 투자 대비 이익을 더 많이 얻을 수 있고 클라우드 컴퓨팅 서비스를 지원해서 조직의 인프라를 더욱 효율적으로 관리할 수 있음

2) 장점

  • 효율적인 리소스 사용
  • 자동화된 IT 관리
  • 신속한 재해 복구

3) 가상화 서비스

  • 서버 가상화
  • 스토리지 가상화
  • 네트워크 가상화
    • 네트워크 기능 가상화
    • SDN (Software Defined Networking)
      • 물리적인 환경의 데이터 라우티에서 라우팅 관리를 인수하여 트래픽 라우팅을 제어함
      • 여러 종류의 트래픽이 있을 때 특정 종류에 우선권을 부여할 수 있음
  • 데이터 가상화
  • 애플리케이션 가상화
  • 데스크톱 가상화

4) 가상화 방식

  • 호스트 운영체제 가상화
    • 물리적인 하드웨어 위에 설치된 HOST OS의 위에 가상화 소프트웨어와 가상 머신이 설치 된 Guest OS를 움직이는 방식
    • 가상의 하드웨어를 에뮬레이팅 하기 때문에 호스트 운영체제에 크게 제약 사항이 없음
    • 운영체제 위에 운영체제가 얹히는 방식으로 오버헤드가 큼
    • 가상화 소프트웨어
      • VM Ware
      • VirtualBox
      • Virtual PC
      • UTM(Mac)

  • 하이퍼바이저 가상화
    • HOST OS 없이 하드웨어에 하이퍼바이저를 설치해 사용하는 가상화 방식
    • 호스트 운영체제와 별도로 개별 시스템처럼 동작하기 때문에 처리 오버헤드가 존재하지 않음
    • 자체적으로 머신에 대한 관리 기능이 업식 때문에 관리를 위한 컴퓨터나 콘솔이 필요함
    • 하드웨어와 운영체제 사이에서 물리적인 시스템의 하드웨어에 직접 설치되는 경우를 베어메탈 하이퍼 바이저라고 함
    • 구현방식
      • 전 가상화 (Full Virtualization)
        • 하드웨어를 완전히 가상화하는 방식
          • VMWare의 ESX Server 나 MS의 Hyper V가 대표적 소프트웨어

      • 반 가상화 (Para Virtualization)
        • 하이퍼 바이저가 다른 작업을 수행하지 않고 명령만 처리하는 형태
          • 전 가상화는 모든 작업을 하이퍼 바이저에게 전송하기 때문에 성능이 저하가 발생
          • Xen 나 KVM이 대표적 반 가상화 소프트웨어

  • Container 가상화
    • HOST OS 위에 Container 관리 소프트웨어를 설치하고 논리적으로 Container를 나누어 사용하는 방식
    • 각 Container는 애플리케이션 동작을 위한 라이브러리와 애플리케이션, 데이터로 구성되고 이를 개별 컴퓨터처럼 사용가능
    • 장점
      • 오버헤드가 적어 가볍고 빠름
    • 단점
      • 다양한 OS를 사용할 수 없고 보안적으로 완전히 격리되지 않음
    • 가상화 소프트 웨어
      • Open VZ
      • LXC
      • Linux VServer
      • Docker
      • Oracle Solaris Zones
    • 하드웨어 위에 컨테이너 관리 소프트웨어가 위치하고 각 가상환경이 위치하는 구조

  • 애플리케이션 배포 환경이 운영체제에 직접 배포하던 방식에서 hypervisor를 이용하는 방식으로 넘어 갔다가 최근에는 Container 가상화 방식으로 이전

5) Container

  • 각 애플리케이션에는 운영체제가 아닌 의존성 요소만 포함
  • 애플리케이션은 HOST OS와 직접 연결되기 때문에 기존의 가상화 방식보다 성능이 향상되고 리소스 낭비도 발생하지 않으며 Image의 크기도 작음
  • Docker Engin에서는 Container용 Linux NameSpace와 Control Group을 생성해 처리하며 이는 운영체제를 격리하는 것 보다는 덜 안전하다.

'DX Data School' 카테고리의 다른 글

Docker 2  (0) 2024.04.08
Docker  (0) 2024.04.05
CI/CD  (0) 2024.04.05
MSA 구성 요소 및 MSA 패턴  (1) 2024.04.01
리액티브 선언  (0) 2024.04.01