- 1960년대부터 가상화라는 용어를 사용하였다. 당시에는 전 가상화(Full Virtualization)기법을 사용하였는데, 이는 하드웨어를 완전히 가상화하는 기법이다. 따라서 Guest OS는 자신이 가상머신의 OS라는 사실을 인지할 수 없다.
- 다양한 하이퍼바이저가 출시되었다. IBM Logical Partition, VMware, Xen, Hyper-V, KVM(Kernal-based Virtual Machine)등이 있다.
- 효율적인 비용절감
- 사용한 만큼 지불하는 클라우드 시스템은 기회 비용을 최적화한다.
- 부가 상품 이용을 통해 개발 비용을 절감할 수 있다.
- 빠른 Deploy
- 기존 Legacy 인프라에 비해 구성 시간이 빠르다.
- 글로벌 진출 용이
- 글로벌 리전 활용을 통해 글로벌 진출시 빠르고 손쉽게 인프라를 구성할 수 있다.
- 보안
- 인프라에 대한 보안은 클라우드 공급 업체에 위임한다. 즉, 하드웨어와 하이퍼바이저는 공급 업체가 관리한다.
- 다양한 보안 상품을 이용하여 보안을 강화할 수 있다.
- 비 정기적인 업무 처리 목적
- 정기적인 서비스 이외에 월말, 연말 등 비 정기적으로 발생하는 리소스를 처리하기 용이하다.
- 효율성 증대 목적
- 다양한 애플리케이션, 플랫폼등의 개발환경이 필요할 때 환경 구축이 용이하다.
- 대용량 데이터베이스와 백업 목적
- 클라우드 저장소, 데이터베이스를 이용하여 대용량의 데이터를 저장하고 싶을 때 편리하다.
- SaaS(Software-as-a-Service)
- SaaS 애플리케이션이 클라우드 서버에 올라온 상태에서 호스팅 서비스 형태로 제공한다.
- 필요한 애플리케이션이 구축된 상태이기 때문에 구축된 서비스를 임대한다는 개념이다.
- PaaS(Platform-as-a-Service)
- 자체 애플리케이션을 구축하는 데 필요한 것에 비용을 지불하는 서비스 형태로 제공한다.
- 개발 도구, 인프라, 운영 체제를 포함한 애플리케이션 구축에 필요한 모든 것을 인터넷을 통해 제공한다.
- 집을 짓는 데 필요한 모든 도구와 장비를 빌리는 것이다.
- IaaS(Infrastructure-as-a-Serivce)
- 클라우드 제공 업체로부터 필요한 서버와 저장소를 임대한다.
- 사용자는 클라우드 인프라로 자체 애플리케이션을 직접 구축하고 개발한다.
- IaaS는 기업이 원하는 건물을 지을 수 있는 토지를 임대하는 것이다.
- FaaS(Function-as-a-Service)
- 서버리스 컴퓨팅으로 환경을 구성하는 개념이며, 애플리케이션을 필요할 때만 실행하는 더 작은 구성요소이다.
- 식사할 때 식당에 대해, 잘 때 침실에 대해, TV를 볼 때 거실에 대해 비용을 지불하고, 방의 임대료는 지불하지 않는 개념이다.
- Bare Metal Server
Bare Metal Server는 단독으로 사용할 수 있는 고성능 물리 서버이다. 하이퍼 바이저가 존재하지 않으며, Bare Metal전용 Subnet에 구성된다.
- Init Script
Init Script는 서버 생성 시 실행되는 스크립트이다. 서버에 설치하여야 하는 패키지나 초기 설정 내용을 스크립트로 선언해두는 것이고, 서버를 같은 환경으로 설정하거나 초기화 하는 데 편리하다. inux는 python, perl, shell / Windows는 visual basic script로 작성하고, 서버 생성 시 최초 1회에 한하여 실행된다.
- ACG (Access Control Group)
ACG는 서버의 방화벽 역할을 하고, NIC(Network Interface Card)에 적용된다.
- LVM: Logical Volume Manager
LVM은 파일 시스템에 대한 디스크의 할당과 관리를 담당하는 리눅스 도구이다. 여러 개의 물리볼륨을 볼륨그룹으로 묶어 논리적인 볼륨으로 나눠서 디스크 파티션 공간을 효율적으로 활용할 수 있도록 한다.
- SPAN VOLUME
SPAN VOLUME은 물리 디스크 n개를 묶어서 하나의 디스크처럼 확장시켜 사용하는 윈도우 도구이다. 하나의 디스크가 모두 사용되면 순차적으로 다음 디스크가 사용되는 방식으로 동작하며 하나의 디스크 고장 시 데이터 복구가 불가능하다.
- Auto-Scaling
클라우드의 장점 중 하나는 유연한 인프라 확장이다. 인프라 확장의 높은 자유도를 이용하여 인프라 비용을 최적화하고 이벤트에 대응할 수 있다.
- 모니터링 기반: 그룹 모니터링 이벤트 알람 설정
- 스케줄링 기반: 실행 일정 설정
- 매뉴얼: 수동 설정
VPC (Virtual Private Cloud)
VPC는 클라우드상에서 논리적으로 격리된 고객 전용 네트워크 공간이다.
ACG & NACL
NACL (Network Access Control List)은 Subnet 단위로 적용된다.
ACG | Network ACL |
---|---|
서버 단위로 적용 (Network Interface Card) | Subnet 단위로 적용 |
Allow 규칙에 한하여 지원 | Allow, Deny 규칙 모두 지원 |
Default All Deny | Defalut All Permit |
모든 규칙을 확인하여 판단 | 우선순위에 따라 규칙을 반영 |
NAT Gateway
Load Balancer: 부하 분산, 헬스 체킹
Object Storage
Object Storage는 인터넷상에 원하는 데이터를 저장하고 사용할 수 있도록 구축된 스토리지이다. 객체 기반의 무제한 파일 저장 스토리지이며 콘솔, RESTfull API, SKD 등 다양한 방법으로 오브젝트를 관리할 수 있다.
NAS(Network-Attached Storage)
NAS다수의 서버에서 공유하여 사용할 수 있는 스토리지이다.
Cold Storage VS Warm Storage VS Hot Storage
컨테이너란 Host OS에서 실행되는 프로세스를 격리하여 별도의 실행환경을 제공하고 해당 프로세스는 운영체제 상에서 실행되는 유일한 프로세스인 것처럼 작동하게 하는 기술이다. 즉, 프로세스마다 별도의 운영 환경을 제공하는 기술이다.
컨테이너 환경에서는 Host OS를 공유하고 프로세스만을 격리하여 경량화된 패키징 형태로 구동한다.
컨테이너의 장점으로는 리소스를 격리하고 구동방식을 단순화하는 데 있다. OS에서 애플리케이션 별 자원을 할당하고 관리하며 실행환경이 격리되기 때문에 OS의 간섭이 없고 애플리케이션이 실행되기 위한 모든 라이브러리와 바이너리가 패키지화 돼있어서 신규 환경 생성 없이 기존의 시스템에서 가볍고 빠르게 구동이 가능하다.
컨테이너의 단점은 애플리케이션이 OS를 공유하기 때문에 보안에 취약하며 유연한 기동이 어렵고 자동으로 관리하기가 어렵다는 점이다.