$*$ 출처가 표시된 이미지를 제외하고 모든 이미지는 ppt를 통해 제작함을 알립니다.
가상화(Virtualization)란 하드웨어에 종속된 리소스를 사용해 유용한 IT 서비스를 만들 수 있는 기술로써 ,하나의 물리적인 서버 혹은 컴퓨터에서 여러 개의 가상 환경을 만들어서 사용하는 기술을 의미한다. 이를 통해 하나이 물리적 서버에서 여러 독립적인 가상 서버를 만들 수 있다. 각 서버는 다른 OS와 응용 프로그램을 실행할 수 있으며, 가상화는 소프트웨어를 사용하여 프로세서, 메모리, 스토리지 등과 같은 단일 컴퓨터의 하드웨어 요소를 일반적으로 가상 머신이라고 하는 다수의 가상 컴퓨터로 분할할 수 있도록 해준다. 가상화의 의의를 보자면 아래와 같다[1].

현재 2가지 서버에서 다른 소프트웨어가 작동하는데, 각각 30% 정도씩만 사용한다고 가정하면 70%의 남은 서버 자원이 낭비가 된다. 하지만 가상화를 통해 한 서버에서 여러 프로그램이 사용될 수 있도록 한다면, 서버자원을 더욱 효과적으로 쓸 수 있다. 아래의 그림과 같이 한 서버에서 2개의 소프트웨어를 작동시킨다면 남은 서버는 또다른 일에 사용할 수 있다는 장점이 있는 것이다[1].

위와 같은 서버에서의 가상화를 구현하기 위해서는 가상화를 실질적으로 수행하는 소프트웨어가 필요하다. 이는 하이퍼바이저라 불리는데, 하드웨어에 바로 하이퍼바이저를 구현하는가 혹은 호스트 OS에 하이퍼바이저를 구현하는가에 따라 1형 하이퍼바이저와 2형 하이퍼바이저로 구분할 수 있다.

가상화는 위와 같은 프로세스를 통해 진행되기 때문에, 여러 장점이 있다. 가장 먼저 리소스의 효율성이 있다. 가상화 이전에는 각 서버에 전용 cpu가 필요했다. 즉 효율적인 물리적 서버의 운용이 어려웠다는 것이다. 하지만 가상화를 사용하면 자체 OS가 있는 가상머신에서 다수의 애플리케이션을 실행할 수 있기에 하드웨어의 컴퓨팅 용량을 최대한 활용할 수 있고, 따라서 효율적인 리소스의 운용이 가능해졌다[2].
두 번째는 관리의 편의성이다. 컴퓨터를 가상 머신으로 대체하면, 소프트웨어로 기술된 것들을 편리하게 관리할 수 있다. 또한 이를 통한 IT 서비스의 자동화도 가능하다. 그리고 사용하지 않는 가상 머신은 폐기 함으로 첫 번째와 같이 리소스의 효율성도 높일 수 있다[2].
세 번째는 가동 중단시간 최소화이다. OS나 애플리케이션 충돌로 인해 중단 시간이 발생할 수 있다. 관리자는 가상머신을 통해 이를 관리하며, 문제가 생긴다면 바로 OS나 애플리케이션의 문제들을 해결할 수 있기에 가동 중단시간을 줄일 수 있다[2].
마지막으로 더 빠른 프로비저닝이다. 각 애플리케이션의 하드웨어를 구매하고 설치하는데에는 많은 시간이 필요하다. 하드웨어가 배치되어 있다면, 애플리케이션을 실행하기 위한 가상 머신의 프로비저닝이 빨라지고, 이를 자동화 할 수도 있다[2].
하지만 이에 따른 단점도 있다. 가장 먼저 가상화를 위해 소프트웨어를 추가적으로 설치해야 하기에 초기에 추가적인 비용이 많이 발생할 수 있다.
두 번째로 가상화 소프트웨어들이 물리적 서버의 자원을 사용하기에 성능 저하가 발생할 수도 있다.
마지막으로 가상화 소프트웨어를 사용하기에 보안 문제가 발생할 수 있다.
이와 같은 가상화의 장단점이 있으며, 가상화는 데이터 가상화, 데스크탑 가상화, 서버 가상화, OS 가상화 등 여러 종류가 존재하고 오늘날 많이 사용됨을 확인할 수 있다[1].
클라우드는 인터넷을 통해 원격의 컴퓨팅 리소스를 사용할 수 있는 컴퓨팅 기술이다. 즉, 컴퓨팅 리소스가 인터넷을 통해 플랫폼으로 제공되는 것을 의미한다. 클라우드라는 단어에서 확인할 수 있듯이, 인터넷 통신망 어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원을 원하는 개로 가져다 쓸 수 있는것을 말한다. 이는 그 내부를 보거나 알지 못해도 얼마라도 내가 원하는 것을 꺼내 사용할 수 있다는 것이며, 인터넷만 연결되어 있다면
이를 사용할 수 있다[3].