본문 바로가기

인턴십(실무기초)

230203_컨테이너, 클라우드

1. Virtualization VS Container

○ 서버의 주요관점
 - 기능 / 성능 / 안정 / 보안

 

가. 물리적 서버

 ○ 물리적 서버에 직접 OS를 설치하고 서비스를 실행했었음
 ○ 기존에는 CPU 하나당 OS가 할당되었는데 
   -> 물리적 서버의 한계는 유연성 부족과 서버 자원을 낭비하는 것
    -> 이런 단점들을 보완하고 이용하고자 가상화가 생기기 시작했다.
 ○ 단점
    - 장비 노후화 시 교체 파트 비용 발생
    - 장비 교체 또는 추가 시 새로운 H/W 비용 발생
    - 관리 대상 컴퓨터 증가
    - 이중화 시 별도 장비 구성 필요

 

나. Virtualization 

 ○ Virtualization종류
   - Server Virtualization(가장 많이 사용 된다-흔히 말하는 가상화)
   - Desktop Virtualization(VDI -> Active Diretory 필수)
   - Network Virtualization
   - Storage Virtualization
   - Application Virtualization
   - Presentation Virtualization(원격 데스크탑 접속)
  ○ CPU,메모리 등의 하드웨어 자산을 Hypervisor를 사용하여 남는 자원으로 VM을 운영할 수 있게 된다. 
    -> 가상 서버는 남아도는 자원을 활용하기 위해서 만듬
  ○ CPU 하나에 여러 OS가 할당됨(공동관리를 Hypervisor가 한다)
  ○ 장점
   - 클러스터링을 지원하지 못하는 서비스도 VM에 운영하여 VM을 클러스터링하면 해당 서비스를 클러스터링할 수 있다.
   - 가상화로 서비스를 할 때는 클러스터링이 필수적이 조건이다. 
   - H/W 비용 및 설치 공간 절감 / 가동시간 및 가용성 향상 / 보안 및 데이터 보호 향상 / 재해 복구 및 비즈니스 연속성 구현

남은 자원을 활용하기 위해 시작됐지만 마이그레이션으로 응용하기도 한다. 
서비스 중에 옮기는게 Live Migration / 
OS -> 하드웨어를 관리하는 용도 <- 기초 다시 공부해야겠다......

 

다. Container

 - OS의 '커널'을 공유하고 CPU나 메모리 등의 자원을 격리하여 가상 공간을 만들어냄
 - 하나의 Host OS에서 가상으로 여러개의 OS를 운영할 수 있게 됨
 - 컨테이너는 OS하나에 
 - 리눅스 c그룹/NS(Name Space)에서 비롯된 기술이다

도커는 컨테이너 런타임(서버), 관리도구를 가지고 있지만
K8S는 관리도구만 가지고 있다
-> K8S 도커 자동화 시스템 > 관련해서 확인하고 정리해야겠다. 
  ○ 장점
    - VM에 비하여 Application 용량이 작고 배포 시간이 짧음
    - HostOS의 커널을 공유하기에 VM에 비해 성능 우수함
    - 부하 발생 시 신속한 Appliccation의 Scale out(K8S, Docker compose에 해당) - K8S HPA부분인듯하다
    - 갑작스런 서비스 중단 및 서비스 불안정 시 자동으로 서비스 재시작 - K8S 레플리카스, 디플로이먼트는 파드를 유지하려하기 때문에 이에 해당하는 듯하다

  ※ 데이터는 컨테이너 밖에 저장해야함 - 기본 중에 기본
    -> 컨테이너는 안정적이지 않기 때문에 데이터 유실 위험이 있다.
    -> 데이터는 저장소나 DB에 마운트해서 저장 / K8S로 하고 싶다면 PVC/PV로 데이터를 저장

도커 포트포워딩 시 앞은 호스트 뒤는 이미지 포트
도커는 OS 커널을 사용하기에 Windows와Linux에 따라 설정된다. 

 


2. Private Cloud VS Public Cloud

 가. Private Cloud 

   ○ 가상화에서 발전한 것
   ○ Open Stack, Azure Stack이 포함
   ○ 신속함을 갖추기 위해 2가지 핵심 능력 필요
      - 가상화
      - Azure Stack(하드웨어와 OS), Open Stack, IBM Cloud Private, Cloud Stack
   ○ 모든 것을 커스터마이징할 수 있다. 
      - 자원을 사내에서만 쓰기에 성능이 좋다.
   ○ 단점
      - 돈이 많이 든다   

 나. Public Cloud 

   ○ AWS, Azure, GCP
   ○ 서비스에 필요한 모든 인프라를 클라우드 업체에서 제공받음. 스타트업, 중소, 중견기업이 많이 이용
   ○ 오버헤드가 적음

 다. hybrid Cloud

   ○ on-premiss + Cloud 
     -> AWS Storage gateway가 HybridCloud로 사용된다. 
   ○ 유연성, 오버헤드가 적다  
   ○ 단점
     - 호환성

 라. Multi-Cloud

   ○ 2개 이상의 Cloud Vendor가 제공하는 Public, Private Cloud로 구성함
   ○ 기업이 단일 벤더에 의존했을 때 발생할 수 있는 위험을 피할 수 있다. 
   ○ 유연성이 확보된다. 
    - single-cloud를 사용할 경우 - 이슈 발생에 대한 자체 대응이 불가하다
     
  컨테이너와 클라우드는 찰떡궁합~ 
이미지와 클라우드 환경만 있으면 서비스를 구축하고 배포할 수 있기 때문에 
 -> 이 클라우드 환경을 더 편하게 코드로 만드는게 IAC
   -> IAC와 컨테이너만 있으면? 코드로 인프라, 애플리케이션을 유연하게 구축하고 배포할 수 있다~
    -> 찰떡궁합일 수밖에 없다. 

정답은 없고 맞는것에 사용하면 된다.

 

 

'인턴십(실무기초)' 카테고리의 다른 글

230216_windows_3  (0) 2023.02.16
230214_windows  (0) 2023.02.14
230213_데이터 이중화 기술  (0) 2023.02.13
230202_IT인프라, Cloud  (1) 2023.02.02
230201_IT개요  (0) 2023.02.01