인프라 엔지니어링의 첫걸음(2)
이 글은 " 인프라 엔지니어링의 첫걸음" 책의 내용을 정리 한 것 입니다.
오타나 틀린것 언제든지 환영 합니다.
언제 까지나 이 글은 참고 자료로 활용되길 원합니다.
온프레미스 (On Premise)
: 하드웨어를 스스로 준비하고 운용하는 형태
VPS (Vitual Private Network)
: 1대의 물리 서버를 여러 대의 가상 서버로 분할하여, 각각을 제공하는 서비스
----------> 이 기술을 '가상화'라고 한다
주요 가상화 도구
KVM ( Kenrenel-based Vitual Machine)
: 완전 가상화 방식으로 리눅스 커널에서 제공하는 Intel VT 또는 AMD-V 를 사용한 가상화
https://www.linux-kvm.org/page/Main_Page
Xen
: 완전 가상화, 반 가상화 방식으로 IA-32,X64,IA-64,ARM 아키텍처에 대응하는 가상화 소프트웨어
https://www.xenproject.org/
OpenVZ
: 컨테이너 형태의 방식으로 RHEL 전용 서버 가상화 소프트웨어로 여러 개의 독립된 리눅스 인스턴스를 물리 서버 1대에서 만들수 있게 함
https://openvz.org/
LXC
: 컨테이너 형태의 방식으로 개별 프로세스와 네트워크 공간을 만드는 가상 환경을 가질수 있다.
https://linuxcontainers.org/ko/
DOCKER
: 도커는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다.
https://www.docker.com/
VPS 장점 및 단정
장점
: 저렴한 가격으로 자유롭게 사용할 수 있는 서버를 빌릴 수 있다.
단점
: 서버 플랜 변경이 유연하지 않다.
서버 관리를 자신이 해야 한다.
KVM방식 가상화 특징
: 하이퍼바이저(가상화를 실현하는 제어 프로그램) 기반 가상화를 사용한다.
하이퍼바이져 기반의 가상화는 OS 뿐만이 아니라 하드웨어도 애뮬레이트 합니다. 따라서 호스트 OS와 CPU 아키텍처가 달라도 작동 가능하다.
출처 : https://byungjun0689.github.io/2.%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9D%84-%EC%9C%84%ED%95%9C-%EA%B0%80%EC%83%81%ED%99%94%EC%99%80-Docker-2/
컨테이너 기반 가상화의 특징
: 물리 서버를 그대로 에뮬레이트 하는 것이 아니라, OS 의 커널 부분을 컨테이너들끼리 공유해서 사용한다는 것 이다.
--------> 이러한 특징 덕분에 물리 서버를 모두 에뮬레이트할 필요가 없다. 또 컨테이너의 오버헤드도 엄청 작다.
--------> OS의 커널 부분을 공유해서 사용해서 1대의 물리 서버에서 더 많은 컨테이너를 제공할 수 있다.
출처 : http://cyberx.tistory.com/71
사용할 수 있는 OS가 한정적이며 컨테이너 기반의 가상화 컨테이너는 호스트 OS의 커널을 사용합니다. 따라서 커널과 관련된 조작은 할 수 없다.
SaaS (Software as a Service)
: 소프트웨어를 서비스를 제공하는 클라우드
PaaS (Platform as a Service)
: 애플리케이션의 개발 기반을 제공하는 클라우드 ( 보통 개발자가 많이 사용한다)
-------> 프로그램 실행 환경을 제공한다.
IaaS (Infrastucture as a Service)
: 가상 서버와 네트워크를 제공하는 클라우드
--------> 말 그대로 인프라 서비스를 제공한다.
Iass의 특징
1. 과금 체계
: 월 단위 요금이 아니라 사용한 만큼 과금하는 종량 과금제를 적용하는 곳이 많다.
---------> 얼마를 지불하게 될지 알기 어렵다는 특징이 있다.
2.서버 생성 속도
: 물리 서버와는 다르게 클릭 한번으로 몇분만에 서버를 늘리거나 줄일 수 있다.
3,서버 생성 자유도
: VPS와 전용 서버의 경우 CPU, MEMORY, DISK등과 같은 성능이 고정되어 있다. 하지만 IaaS는 용량을 비교적 자유롭게 조립 가능하다.
--------------------> IaaS는 서버 플랜도 변경이 가능하다. 시스템을 운용하는 도중에 서버 성능이 낮다고 생각되면, 플랜을 변경해서 성능을 높일수 있다. (스케일 업 이라고 한다)
-----------------> IaaS는 서버를 복제해 여러 대의 서버를 만들어 대응할 수 있다. 서버 수를 늘려 시스템 전체의 성능을 높일 수 있다.( 스케일 아웃 이라고 한다.)
오토 스케일링 (Auto Scaling)
: IaaS가 아무리 서버를 늘리기 쉬워도 대량의 접근이 발생하면 대응이 힘들게 되는데, 이때 자동으로 대처해 주는 것이다.
--------> AWS 의 Auto Scaling , Auzre의 Auzure 자동 크기 조정 등이 있다.
로드밸런서
: 트래픽을 분산 시켜 준다.
-------> AWS 의 Elastic Load Balncing 이나 Auzre의 부하 분산 장치 등이 있다.