카테고리 없음

클라우드 컴퓨팅 서비스 가상화에 대해 알아보기 5편

blazerIT 2023. 9. 6. 10:33

안녕하세요.

 

지난 포스팅에서는 클라우드 컴퓨팅의 개념과 다양한 종류 IaaS, PaaS, SaaS등에 대하여 알아보고 클라우드 서비스의 배포 모델인 공공 클라우드, 프라이빗 클라우드, 하이브리드, 커뮤니티에 대하여 알아보았습니다. 그럼 이러한 배포 모델을 가지고 다양한 종류의 클라우드 서비스를 제공하기 위한 밑바탕이자 근원이 되는 핵심 기술이 무엇일까요? 바로 가상화(Virtulization)입니다. 그래서 이번 포스팅에서는 가상화라는 기술에 대해 깊이 있게 알아보려고 합니다. 아래 링크를 통해 클라우드 서비스에 대한 설명을 볼 수 있습니다.

가상화(Virtulization)는 일상 생활에서 흔이 볼 수 있는 것보다 훨씬 더 복잡하고 깊은 내용을 가지고 있는 기술입니다. 하지만 쉽게 설명드려보도록 하겠습니다. 예를 들면 우리가 하는 게임을 생각해보겠습니다. A라는 채널에서 친구들과 만나서 놀다가 다른 게임을 하고 싶어서 B라는 채널을 만들어 내는 것, 이런 것이 가상화의 기본 개념이라고 생각하면 됩니다.

물론, 가상화를 컴퓨터에 대한 설명으로 가져와서 적용을 해보면 당연히 더 복잡한 이야기가 될 수 있기는 합니다. 하지만 본질적인 것은 그대로 컴퓨터나 서버 한대 안에서 여러 개의 독립된 환경을 만들어 내는 것이라고 할 수 있습니다. 이렇게 해서 얻는 장점은 무엇일까요? 그리고 이 가상화라는 기술이 현대의 클라우드 서비스와 어떤 관계가 있는 것인지 알아보겠습니다.

 

지금까지 클라우드를 단순히 데이터를 저장하는 공간, 혹은 어떤 프로그램을 실행하는 곳 정도로만 생각하고 있었다면, 이번 포스팅으로 그 뒤에 숨어 있는 고도로 발전한 기술을 알 수 있을 것이라고 생각합니다. 클라우드 알아보는 마지막 시리즈로 클라우드 서비스의 핵심 기술이라고 불리는 '가상화(Virtualization)'를 알아보며 포스팅을 마쳐보겠습니다.

 

클라우드 컴퓨팅 서비스 가상화 기술

1. 가상화(Virtualization)

가상화를 요약해보자면 소프트웨어로 가상의 하드웨어를 생성하는 기술이라고 할 수 있습니다. 조금 더 자세히 이야기하면 가상화는 컴퓨터 리소스를 추상화하고 분할한 후에 재구성해서 여러 작업이나 사용자에게 독립적으로 사용할 수 있게 만드는 기술이라고 할 수 있습니다. 기본적으로 하나의 물리적인 하드웨어를 여러 개의 가상의 환경으로 나누어서 사용할 수 있게 해주는 것입니다.

  • 비유를 들어서 쉽게 설명해보자면 넓은 땅 위에 아파트 단지가 지어져 있는 그림을 생각해보면 쉽습니다. 아파트 단지 전체는 하나의 땅 위에 지어진 건물들로, 이 전체 단지를 하나의 물리적 하드웨어에 비유할 수 있습니다. 즉, 하나의 물리적인 서버라고 할 수 있는 것입니다. 그리고 이 아파트 단지 안에는 각기 다른 가족들, 세대가 살고 있는 여러 개의 독립된 동이 있습니다. 동으로 구분이 되는 이 각각의 아파트는 하나의 가상 서버나 가상 환경에 비유될 수 있습니다. 이처럼 가상화를 통해서 하나의 물리적 서버 안에 여러 개의 독립적인 가상 서버를 운영하여 각 세대가 각자의 삶을 살고 무언가를 할 수 있도록 해주는 것이 가상화라는 기술의 개념입니다.

여기서 가상의 하드웨어는 VM(Virtual Machine)이라고 하고 우리가 일반적으로 클라우드 서비스에서 서버를 사용한다고 한다면 대부분은 물리적인 하나의 서버가 아닌 가상화 된 서버를 제공받고 사용하게 됩니다. 물론 가상화 된 서버를 사용하고 싶지 않은 클라이언트는 가상화 되지 않은 물리적인 서버의 한 공간을 제공 받을 수 있기도 합니다.

가상화 설명 이미지

 

2. 가상화를 이용하는 이유

2.1. 자원 최적화

자원 최적화란 여러 애플리케이션을 한 대의 물리적 서버에서 실행시킬 때 각각의 애플리케이션에 독립적인 환경을 제공하면서 서버의 자원을 효율적으로 활용할 수 있게 해주는 것이라고 할 수 있습니다.

  • 비유를 들어서 설명해보자면, 아파트 한 채를 생각해 보면 쉽습니다. 각각의 아파트 호수는 우리에게 독립적인 생활 공간을 제공해줍니다. 가상화는 이러한 아파트 건물과 같이, 한 건물 안에서 한 대의 물리적 서버에서 독립적으로 우리가 원하는 것, 클라이언트가 원하는 서비스를 독립적으로 운영할 수 있도록 해줍니다.

예를 들어 보자면, 웹 서버, 데이터 베이스 서버, 파일 서버 등을 한 대의 물리적 서버에서 독립적으로 운영을 할 수 있게 해줍니다. 그래서 서버 하나를 가상화를 통해 여러 개로 나누어서 자원을 최적화하여 낭비 없이 쓸 수 있게 되는 것입니다.

2.2. 비용 절감

여러 대의 서버를 별도로 구매하고 운영하는 것은 아무래도 비용이 많이 드는 일입니다. 하지만 가상화를 사용하면 한 대의 서버에서 여러 서버 환경을 구축할 수 있어서 초기 투자와 운영 비용이 줄어들게 됩니다.

  • 이 또한 비유를 들어 보자면, 한 사람이 케이크 하나를 사서 먹는 것은 비용이 많이 드는 일입니다. 물론 본인의 것이라는 생각이 들 수도 있지만, 하나의 케이크를 다 못 먹으면 나머지는 잉여 케이크가 되는 것입니다. 그래서 하나의 케이크를 통으로 사는 것 보다 만들어진 케이크를 소분해서 파는 곳에 가서 조각 케이크를 하나 사는 것이 더 효율적이고 비용을 절감할 수 있게 됩니다. 아무래도 케이크 전체 하나 보다는 조각이 더 쌀 테니까요.

예를 들어보면 기업은 10대의 서버 대신에 2대의 서버에 가상화 기술을 적용해서 각 서버에서 5개의 가상 하드웨어를 만들어 10개의 서버를 사용하는 것과 비슷한 운영 효율을 얻기도 합니다.

2.3. 유연성

가상화 환경에서는 가상 서버의 생성, 수정, 이동, 삭제 등이 매우 간단해집니다. 왜냐면 실제로 물리적으로 존재하는 서버를 없애려면, 그 공간을 차지하던 물리적인 서버를 치우고 파쇄하고 폐기물 처리를 하고 복잡한 과정이 많은데, 가상화를 이용하여 만들어낸 서버는 간단한 방법으로 삭제하고 새로 만드는 것이 쉽습니다. 그리고 물리적인 서버 같은 경우에는 옮기려면 장비를 투입하여 또 다른 공간을 찾아서 옮기는 비용이 많이 들지만, 가상화를 통해 만들어진 서버는 이동이 실제 물리적인 서버보다 편합니다. 이를 유연성이라고 합니다.

  • 비유를 들어보자면, 가상의 하드웨어 위에 올린 레고 건물을 가상화로 만들어낸 서버라고 생각하면 좋습니다. 레고로 만들었기에 옮기기도 쉽고 다시 분해하여 다시 쌓기도 간편하다는 것이죠.

실제로 새로운 애플리케이션을 테스트 하기 위해서 임시 가상 서버를 생성하고, 테스트를 한 후에는 쉽게 삭제하는 일을 애플리케이션 개발 회사에서 하는 일입니다. 예를 들어 우리에게 익숙한 롤(리그오브레전드) 테스트 서버를 예로 들어 보면 이해가 더 나을지도 모르겠습니다. 롤에 신챔프가 나오면 테스트 서버에서 먼저 돌려보고, 수정을 하게 됩니다. 이는 가상화로 만들어진 서버에서 생성과 수정이 다른 물리적인 서버를 이용하는 것 보다 편리하기 때문이라고 할 수 있습니다.

2.4. 재해 복구와 백업 용이

가상화 환경에서는 서버의 현재 상태를 스냅샷이라는 형태로 쉽게 저장할 수 있습니다. 여러 서비스 측면의 문제가 발생하게 되면 이 스냅샷을 이용해서 원래 상태로 복구가 가능합니다. 일종의 리비전이라고 할 수 있겠습니다.

여기서 스냅샷이 무엇이냐면, 특정 시점에서 가상 머신(VM)의 상태를 전체적으로 저장하는 기능입니다. 가상 머신의 메모리, 가상 디스크, 하드웨어 설정 등의 현재 상태를 포착하고 저장하는 것을 스냅샷이라고 합니다. 그래서 그 상태에서 그 조건을 기억할 수 있게 되는 것입니다. 스냅샷은 소프트웨어나 업데이트를 하기 전에 만들어두는 복구 파일 정도로 볼 수 있겠습니다.

  • 비유를 들어보자면 작성 중인 문서에서 중간 중간 "Ctrl+S"를 이용하여 저장을 하여 우리가 만드는 문서가 날아가지 않도록 하는 것이 스냅샷의 형태로 VM이 가상 서버를 저장하는 것이라고 할 수 있습니다. 그래서 나중에 노트북의 전원이 꺼지거나 프로그램의 응답이 없을 때 그 마지막으로 저장한 지점으로 빠르게 돌아갈 수 있는 것입니다.

 

이렇게 가상화 서비스를 제공하는 가장 대표적인 사이트 두 곳을 소개하면서 포스팅 마치겠습니다.

 

마무리

가상화라는 기술은 우리가 물리적으로 보지 못하는 클라우드 세계에서 혁신적인 기술이었고 현재도 그러합니다. 늘 온-프레미스 구조로 물리적인 컴퓨터를 필요로 했던 시기를 생각해보면 이러한 가상화라는 개념은 우리에게 너무 나도 이로운 것을 많이 제공해주었습니다.

 

그리고 이러한 기술의 발전 덕분에 이전보다 훨씬 경제적인 비용으로 그리고 더욱 효율적으로 컴퓨팅 자원을 활용할 수 있게 되었습니다. 위에서 비유한 아파트나 케이크의 예처럼, 가상화는 우리의 생활과 비즈니스 그리고 그 외적인 모든 것에서 더 큰 효율성을 추구할 수 있게 해주었습니다. 이렇게 5편으로 클라우드에 대한 내용과 클라우드 컴퓨팅 서비스에 대한 소개를 마치고자 합니다. SaaS의 가장 큰 예시인 오피스(Office)에 대한 포스팅을 추후에 올려볼까 합니다.

 

긴 글 읽어주셔서 감사합니다.