구성 기술
-
가상화
: 소프트웨어적으로 리소스를 논리적으로 분할/통합하여 리소스의 이용률과 가용성을 높이는 기술
-
분산 처리
: 대규모 서버 환경에서 대용량의 데이터를 네트워크에서 원격 통신으로 분산하고 연산을 처리하는 기술
-
오픈 인터페이스
: 서비스 간 정보에 누구나 접근 가능한 인터페이스 기술
-
오케스트레이션
: 다양한 머신 리소스를 끌어와서 특정 작업을 위해 조립(프로비저닝)하는 기술
: 서비스 요청부터 제공까지 자동화하는 기술
-
보안 및 프라이버시 보호
: 외부 컴퓨팅 리소스에 기업 및 개인의 민감한 정보들을 전송 및 저장하여 안전하게 보호하기 위한 기술
가상화
- 물리적 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
- LAN 가상화
- 전송자는 모든 데이터 (패킷) 서버에 부여된 고유 번호 태그를 붙임
- 이때 패킷은 캡슐화 되고 태그 붙임
- 태그를 통해 하나의 물리적 네트워크 안에서 네트워크를 여러 그룹으로 분할
- 스위치, 라우터에 태그정보 설정
단점
- 네트워크 분할 구조 변경에 따른 전체 데이터 태그 재부여
- 태깅을 진행할 때 라우터에서 그룹을 만들고 네트워크 설정하는데 전체 네트워크 차단해야 함
- 이 작업동안 데이터 전송 중단에 따른 유연성 저하
VPN
- 불특정 다수가 이용하는 공용 네트워크에 가상의 전용선과 같은 사설 네트워크 효과 제공
- 사설 네트워크 구축은 전용 회선 설치에 막대한 비용이 요구됨
- 인터넷 기반의 공용 네트워크에 보안을 강화하여 사설 네트워크처럼 전용 네트워크 구성해서 대체
- 터널링을 기반으로 인플레이션
VPN 터널링 프로토콜
- VPN 연결 지점 간에 송수신되는 데이터 패킷 암호화
- 패킷의 헤더를 암호화하여 터널의 엔드포인트로 전송
- VPN 터널의 생성 및 관리
- 암호화 키 관리
PPTP
: 원격 사용자와 사설 네트워크 사이의 보안 접속 제공하는 2계층 터널링 프로토콜
: TCP/IP를 그대로 사용하면서 외부인 접근 차단하는 가상 사설 네트워크 구축 가능
: PPP로 서버 접속 후 인증을 통해 VPN 터널 생성/연결
IPsec
: 보안 페이로드 캡슐화
: 송신자의 인증 및 데이터 암호화를 함께 지원
: 데이터를 함부로 못열게 암호화
NFV
- 레이어에 따라 방화벽, 라우터, 스위치 명칭이 다름
- 이 장비들을 소프트웨어로 가상화하여 서버에 구축하는 기술
- 하나의 로컬 단위로 가상화
SDN
- 거대 규모로 가상화
- 빈번한 네트워크 변경 요청 증가로인해 유연한 변경 및 신속한 대응 기능
- 스위치에 구현되어 물리적으로 구조를 변경하고 데이터 흐름 자체를 변경함