클라우드 컴퓨팅 기술 (1)

이지우·2022년 11월 20일
0

클라우드 컴퓨팅

목록 보기
4/7
  • 가상화 기술
  • 서버 가상화
  • 네트워크 가상화

구성 기술

  • 가상화
    : 소프트웨어적으로 리소스를 논리적으로 분할/통합하여 리소스의 이용률과 가용성을 높이는 기술

  • 분산 처리
    : 대규모 서버 환경에서 대용량의 데이터를 네트워크에서 원격 통신으로 분산하고 연산을 처리하는 기술

  • 오픈 인터페이스
    : 서비스 간 정보에 누구나 접근 가능한 인터페이스 기술

  • 오케스트레이션
    : 다양한 머신 리소스를 끌어와서 특정 작업을 위해 조립(프로비저닝)하는 기술
    : 서비스 요청부터 제공까지 자동화하는 기술

  • 보안 및 프라이버시 보호
    : 외부 컴퓨팅 리소스에 기업 및 개인의 민감한 정보들을 전송 및 저장하여 안전하게 보호하기 위한 기술


가상화

  • 물리적 IT 리소스를 가상의 IT 리소스로 전환시키는 기술
  • 가상화 기술을 활용하여 하나의 서버로 여러 실행 환경 구성
  • 물리적 리소스의 소유 비용을 감축
  • 간편한 유지보수
  • 물리적 리소스(CPU, GPU, 메모리, 스토리지)와 논리적 리소스(운영체제, 런타임)를 가상화하여 소프트웨어 플랫폼 역할을 함
  • 사용자의 요청에 탄력적으로 제공할 수 있는 클라우드 컴퓨팅에 적합함

가상 머신 (Virtual Machine)

  • 가상화 기술을 통하여 나뉜 논리적인 단위의 머신
  • 하드웨어 리소스를 운영체제가 아닌 VM 수준에서 제어
  • 한 하드웨어상에서 다른 종류의 운영체제를 여러 개 실행 가능

가상화 계층 역할 (미들웨어 계층)

다수개의 노드를 결합 형태로 하나인 것 같이 사용하거나 여러 개의 노드에 분배시키기 위해서는 통일된 환경이 필요함

  • 파티셔닝
    : 하나의 물리적 머신을 분할/분배 하는 기술
    : 물리적으로 하나의 노드에 n명의 사용자가 접근할 때 겹치지 않도록

  • 캡슐화
    : 하드웨어 제어에 요구되는 복잡한 기능을 감추고 간단한 인터페이스 제공
    : 폴더와 파일로 가상 머신을 구조화
    : 사용자가 사용하기 편하게

  • 격리
    : 장애 및 보안 발생 시 캡슐화 되어 있는 가상 머신을 격리 조치
    : 다른 노드에 리소스를 재검색, 재할당
    : 안정성을 끌어올리기 위한 것이기 때문에 격리 후 조치가 있어야함

  • H/W 독립화
    : 파티셔닝과 유사함
    : 하나의 물리적 머신 안에서 가상 머신을 독립적으로 가동
    : 사용자들의 요구 리소스를 단일 가상 머신화
    : 가상 머신은 모두 같은 H/W를 사용하지만 사용자들에게는 단일머신 사용하는 것처럼 독립적으로 사용될 수 있도록 함


인프라 구성

서버를 돌리기 위해 인프라를 구성해주어야함
여기에서는 OS레벨까지 인프라라고 함
OS : 하드웨어 제어를 위한 레벨

인프라

  • 신규 서비스를 위해 요구되는 OS, 미들웨어, 라이브러리 및 실행 환경
  • 다양한 IT 리소스(서버, 스토리지, CPU, 메모리, 네트워크)와 데이터 센터의 무중단 전력공급 장치, 공조, 보안 설비, 소화 설비 및 건물
  • 서버 구성하는 용도

서버

  • 모든 IT 서비스의 요청부터 연산 처리, 결과 제공이 가능한 완성된 컴퓨팅 시스템
  • 서버를 목적에 따라 나눌 수 있지만 총칭 서버로 불러도 상관 없음
    규모가 크면 목적에 따라 나누어 구성
    규모가 크지 않으면 하나에 구성 가능

여기에서 말하는 서버는 연산 처리를 기준으로 생각한 것
목적이 아니라 칩셋이나 보드 단위로 분류

▼ 서버 종류와 특징

x86 서버 
: 인텔 x86 Xeon 칩셋을 기반으로 한 마더보드 기반 서버 기술

UNIX 서버 
: 유닉스 운영체제를 기반으로 작동하는 엔터프라이즈급 서버 (IBM, HP, Oracle)

ARM 서버 
: 저전력 프로세서 ARM 칩셋을 기반으로 한 고집적 마이크로 서버 (핸드폰 처럼 경량화, 저전력 기반)

HPC 기술 
: 매니코어 CPU칩 기술이나 GPU 등 코프로세서(coprocessor)를 활용한 고성능 서버
	-> 다수개의 컴퓨터의 협업을 위함 (클라우드, 그리드에서 사용)

스토리지

  • 다양한 IT 서비스에 요구되는 고용량의 데이터를 저장/관리 및 보호하는 장비
  • 기존의 HDD 위주의 저장 시스템에서 고속의 SSD로 재편되어 가고 있음
  • 데이터 저장 서버이기 때문에 용량이 커야됨
  • SSD : 칩셋 형태의 저장장치
  • HDD : 하드디스크, 디스크 블럭 탐색해서 데이터 찾아가는 방식
  • Hybrid : HDD + SSD

네트워크 🔥

  • 사용자가 원격지에서 시스템에 접근할 수 있도록 IT 리소스를 연결하기 위한 장비
  • 디폴트라고 생각할 수 있지만 클라우드 인프라 구성에 네트워크는 필수적임
  • 네트워크가 안되면 컴퓨터로 할 수 있는 것이 제한됨
  • 장비와 장비를 연결하기 위한 케이블 등도 네트워크 구성 요소에 포함됨
  • 클라우드 제공자가 따로 네트워크 기관과 계약 체결
  • 엔드 단말까지 가는 네트워크 망까지 관리해주어야 함

네트워크 장비 종류 (경유지가 사용처에 따라 명칭이 달라짐)

  • 방화벽
    ssh: 원격 접속해서 제어 가능하게 하는 프로토콜
    : 모든 포트를 열어두는 것이 아니라 일부 포트만 열어두게 됨
    : 이러한 포트 관리 (물리적인 제어)
    : 패킷의 길을 관리한다.

  • 스위치 (물리적으로 연결되어 있는 곳)
    : OSI 2계층(데이터링크)에서 사용하는 패킷 전달 담당
    : 다수의 랜선을 하나로 모으기
    : 경유지를 2계층에서 부르는 명칭
    : web 주소로 통신

  • 라우터 (최종 연결지점까지)
    : OSI 3계층(네트워크)에서 사용하는 패킷 경로 지정
    : 목적지까지 경로를 논리적으로 지정
    : 경유지를 3계층에서 부르는 명칭
    : ip 주소로 통신

  • 게이트웨이(gateway)
    : OSI 4계층(전송계층)에서 사용하는 장치
    : 랜망에서 최종적으로 다른 망과 연결되는 부분
    : 어떤 사이트에 접속했는지 여기에서 관리
    : 네트워크 제공 업체가 불법 사이트 게이트웨이를 막아서 접속 막음
    : 이곳의 역할 중에 하나가 방화벽

  • 리피터
    : OSI 1계층(물리계층)에서 신호 증폭, 연결

OS

  • 서버, 스토리지, 네트워크 및 클러스터 장비등을 제어하기 위한 기술을 내장한 소프트웨어
  • 하드웨어의 리소스나 프로세스를 효율적으로 관리하여 리소스 가용성 향상, 에너지 사용 최적화

OS 종류
  • 클라이언트 OS
    : 사용자의 사용성 향상시킬 수 있는 기능 지원
    : 윈도우, MacOS
  • 서버 OS
    : 하드웨어 리소스를 고속으로 가동시키면서도 안정적으로 동작시키기 위해 필요한 기능으로 특화되어 있음
    : 하드웨어 성능 최대한 끌어내고 대량의 데이터를 효율적으로 수행
    : Windows Server, Unix, Linux

미들웨어

  • H/W와 S/W 중간에 위치
  • 애플리케이션이 OS로부터 제공 받는 서비스 이외에 추가적인 기능들을 제공함
  • 가상화 계층이 여기에 속함
  • 다른 컴퓨터에 같은 서비스 제공하기 위해 필요함
  • TP 모니터
    Transacion : 컴퓨터에서 한 단계씩 수행되는 것
    Processing : 작업 처리
    : 노드 상태 지속적으로 확인 (작업 수행 여부, 상태)
    : 분산 처리 환경에서는 능력치 확인해서 최단시간에 끝나도록 스케줄링
    : 잡 스케줄링(메인), 태스크 스케줄링(서브) <- 이때 미들웨어로 상태 확인

서버 가상화

  • 1960년대부터 다수의 IT 리소스 관리와 운영의 어려움을 보완하기 위한 목적으로 연구 및 개발이 이루어짐
  • 목적: 다수개의 서버를 묶겠다
  • 분산 처리를 위해 다수의 서버를 단일 서버인것 처럼 만들기 위해 가상화
  • 현재에는 하나의 물리적 기능을 여러개에서 사용하기 위해 사용됨
  • 과거에도 같은 서버에 여러군데에서 동시에 접속하여 사용할 때 침범하지 않게 하기 위해 사용됨
  • 컴퓨터 시스템에서 내부적으로 가상의 기능과 구성요소를 만들어내기 위해 발전
- 호스트 가상화 방식 
- 하이퍼바이저 가상화 방식
- 컨테이너 방식

호스트 가상화

  • H/W 자체적인 호스트 OS가 존재하고 그 위에 게스트 OS를 올리는 방법
  • 호스트 OS: 직접적인 하드웨어 관리
  • 게스트 OS: 가상 머신에게 소프트웨어 실행환경 제공
  • APP에서 하드웨어 제어를 게스트 OS에 요청하고 게스트 OS가 호스트 OS에 요청
  • 다수개의 단계를 거쳐야됨 -> 요청과 수행을 반복
  • 이 단계를 없애는게 깔끔함 (하이퍼바이저)

장점

: 게스트 OS가 하드웨어 리소스에 접근하는 것을 호스트 OS가 제어하고 동기화하기 때문에 호스트 OS에 제약이 없음

단점

: 호스트 OS와 게스트 OS의 공존으로 필요 이상의 CPU, 디스크, 메모리 사용의 오버헤드 발생
: 자원 소모율이 올라감

종류

  • VM Workstation
  • VMWare Server
  • Microsoft Virtual Server
  • Oracle Virtual Box

하이퍼바이저 가상화

  • H/W에 종속적인 OS 없이 패시브격인 기능 제공
  • 게스트 OS에서 직접적으로 H/W 제어 가능
  • 특정 OS에 의존하지 않고 하드웨어에 직접 설치되는 구조
  • 오버헤드 비용 적음 (단계가 적음)
  • 하드웨어를 직접 관리하여 리소스 관리가 유연함
    (호스트 OS 단점과 반대)

전가상화

  • H/W를 완전히 가상화
  • 그 위에가 게스트 OS에 직접 연결되어 하드웨어로 전달됨
  • 제어하는 공통된 동작을 반복
  • 병목현상으로 인한 성능 저하 발생
  • 각 OS 영역마다 제어 권한을 요구하여 받아야됨

반가상화

  • 하이퍼 콜을 사용하여 제어 권한 요구를 그대로 올려줌
  • 미리 사용 형태와 위치 정보를 관리해줌
  • 요즘에는 기능별로 만들어두고 당겨와서 사용하는 방식 사용
  • 리눅스와 같은 오픈소스 OS 이외에는 사용 안함

컨테이너 가상화

  • 컨테이너: 애플리케이션 동작시키는데 필요한 라이브러리 및 종속 리소스를 함께 패키지로 묶어 구동을 위하여 생성한 호스트 OS상의 논리적인 구역
  • 게스트 OS가 빠짐 !!
  • 일반적으로 PaaS 환경의 기반
  • 하드웨어, OS 제공, 사용자가 개발이나 애플리케이션 환경 구축하기 위한 요소를 컨테이너 단위로 제공

장점

  • 게스트 OS의 실행에 소요되는 오버헤드가 없음
  • 고속으로 작동 가능
  • 특정 버전을 자체적으로 맞춰줌
  • 버전이 달라 발생하는 문제를 컨테이너를 통한 격리로 해결
  • 시스템 리소스를 각 애플리케이션이 점유하고 있는것처럼 보이게
  • 충돌 발생 확률이 굉장히 줄어들게됨

역사

  • 2000년 초반에 등장
  • FreeBSD 시스템 : Jail이 시초격
  • 리눅스 기반으로 구축하면 버전 충돌 발생할 수 있어 추후에는 모두 컨테이너 방식으로 변경할것임

Docker

  • PULL / RUN
  • 많이 사용되는 것을 이미지로 생성해 둠
  • 이미지를 실행하기 위해서는 컨테이너가 만들어져 있어서 가져와서 실행하면 됨 -> Docker를 활용
  • 없는 패킷을 만드는것 -> Docker 개발

특징

  • 빠른 설치
    : 애플리케이션 설치, 사용에 최소의 시간과 용량만을 소비

  • 애플리케이션 이식성
    : 호스트 커널이나 플랫폼 버전 등에 상관없이 도커 실행환경만 있으면 사용 가능

  • 버전 제어, 컴포넌트 재사용
    : 컨테이너 버전 제어가 쉽고 변경 내역을 확인 가능하며 롤백이 간단함
    : 이전 레이어의 컴포넌트 재사용도 용이

  • 쉬운 유지 관리
    : 애플리케이션 종속성에 관한 문제들에 대한 유지 관리가 쉬움
    : Like 문자 상수


네트워크 가상화

네트워크는 물리적이지만 이를 논리적으로 관리를 하자

VPN 경로가 길어지므로 속도는 느려짐

장점

  • 네트워크 리소스 보안 향상
    : 논리적으로 네트워크가 분할되어 네트워크 보안상 발생할 수 있는 문제 차단
    : BUT 물리적으로 보안 관리 하는 것이 가장 좋긴 함

  • 비용절감
    : 네트워크 분할 시 라우터, 스위치 등 추가적인 장치가 요구되지 않음
    : 네트워크 연결을 물리적으로 바꾸려면 추가장치가 필요한데 이것이 필요 없다는 뜻

  • 네트워크 설정 작업의 편의성
    : 간단한 설정만으로 네트워크 엔지니어가 쉽게 네트워크를 구성 및 관리 가능

클라우드 환경에서

  • 무조건 단일 노드에서 패키징이 이루어지는 것이 아니라서 네트워크 연결이 복잡함
  • 이를 가상 네트워크로 분류해두고 사용
  • 소규모 가상 LAN 역할

가상화 기술

  • VLAN
  • VPN
  • NFV
  • SDN

VLAN

  • LAN 가상화
  • 전송자는 모든 데이터 (패킷) 서버에 부여된 고유 번호 태그를 붙임
  • 이때 패킷은 캡슐화 되고 태그 붙임
  • 태그를 통해 하나의 물리적 네트워크 안에서 네트워크를 여러 그룹으로 분할
  • 스위치, 라우터에 태그정보 설정

단점

  • 네트워크 분할 구조 변경에 따른 전체 데이터 태그 재부여
  • 태깅을 진행할 때 라우터에서 그룹을 만들고 네트워크 설정하는데 전체 네트워크 차단해야 함
  • 이 작업동안 데이터 전송 중단에 따른 유연성 저하

VPN

  • 불특정 다수가 이용하는 공용 네트워크에 가상의 전용선과 같은 사설 네트워크 효과 제공
  • 사설 네트워크 구축은 전용 회선 설치에 막대한 비용이 요구됨
  • 인터넷 기반의 공용 네트워크에 보안을 강화하여 사설 네트워크처럼 전용 네트워크 구성해서 대체
  • 터널링을 기반으로 인플레이션

VPN 터널링 프로토콜

  • VPN 연결 지점 간에 송수신되는 데이터 패킷 암호화
  • 패킷의 헤더를 암호화하여 터널의 엔드포인트로 전송
  • VPN 터널의 생성 및 관리
  • 암호화 키 관리

PPTP
: 원격 사용자와 사설 네트워크 사이의 보안 접속 제공하는 2계층 터널링 프로토콜
: TCP/IP를 그대로 사용하면서 외부인 접근 차단하는 가상 사설 네트워크 구축 가능
: PPP로 서버 접속 후 인증을 통해 VPN 터널 생성/연결

IPsec
: 보안 페이로드 캡슐화
: 송신자의 인증 및 데이터 암호화를 함께 지원
: 데이터를 함부로 못열게 암호화

NFV

  • 레이어에 따라 방화벽, 라우터, 스위치 명칭이 다름
  • 이 장비들을 소프트웨어로 가상화하여 서버에 구축하는 기술
  • 하나의 로컬 단위로 가상화

SDN

  • 거대 규모로 가상화
  • 빈번한 네트워크 변경 요청 증가로인해 유연한 변경 및 신속한 대응 기능
  • 스위치에 구현되어 물리적으로 구조를 변경하고 데이터 흐름 자체를 변경함
profile
노력형 인간

0개의 댓글