IT 인프라 변화 – 메인프레임에서 컨테이너
1980년대 메인프레임에서 시작해서 최근에 컨테이너 기술을 근간으로하는 Cloud Native 까지의 IT 트랜드를 살펴 봅니다.
인프라 또는 인프라스트럭처
인프라 또는 인프라스트럭처는 하부구조나 기반시설( 기간 기설) 의 의미를 가지고 있습니다.
넓은 의미로는 사회을 유지하는 데 필요한 생산 기반 또는 경제 활동의 기반을 형성하는 것으로 기초적인 시설. 댐·도로·항만·전력·통신 시설 등의 산업 기반 및 학교·병원·공원 등의 사회 복지·환경 시설이 이에 해당합니다.
전력 인프라가 대표적인 예라고 할수 있습니다.
전력 인프라 (전력망)는 전기를 만드는 발전소, 만든 전기를 전달하는 배전망, 변전소 , 송전탑 과 각 가정에 보내는 전주 등으로 구성됩니다. 하지만 사용자는 가정에 있는 컨센트에 플러그를 끼워 손쉽게 사용할 수 있습니다.
인프라는 인식 하지 않고 당연하게 사용하고 있지만 삶을 지탱해 주는 공기와 같은 역할을 합니다.
IT 인프라
IT인프라 는 IT (Information Technology) Infrastructure 의 줄임말로 기업의 IT 환경을 운영하고 관리하는데 필요한 구성요소들 입니다.
이러한 구성 요소에는 하드웨어, 소프트웨어, 네트워킹 구성 요소, 운영 체제(OS), 데이터 스토리지가 있으며 모두 IT 서비스 및 솔루션을 제공하는 데 사용됩니다.
IT 인프라 기반 온라인 서비스
기업과 공공기관을 비롯한 산업전반에서 컴퓨터와 네트워크를 이용하여 쇼핑, SNS, 모바일, 은행업무, 공공기관,제조 등의 업무을 IT인프라를 기반으로 서비스하고 있습니다.
IT인프라 변화
메인프레임
메인프레임은 금융기관이나 정부기관에서 막대한 처리량이 필요한 경우 사용하는 고가의 중앙집권식 서버 입니다. 높은 성능과 견고성 때문에 높은 가격임에도 기업의 업무 주요도에 따라서 도입되었습니다.
클라이언트/서버
인터넷이 보급되면서 기업이나 공공기관은 업무용뿐만 아니라 인터넷을 기반으로하는 온라인 서비스 영역에서도 컴퓨팅이 필요하였습니다. 고가의 메인 프레임보다는 저렴하면서도 개방형 표준을 준수하는 컴퓨터가 요구되었습니다.
클라이언트/서버 개념으로 오픈 시스템인 Linux와 Unix, Windows 등 OS (운영 체제)로 채택하고 x86 등의 CPU 아키텍처를 기반으로 하였습니다.
가상화
IT 기술이 발전함에따라 CPU의 가격하락으로 범용 소규모 서버들이 확대되었습니다. 하지만 서버가 증가함에 따라 관리비용과 자원의 효율적인 활용 이슈가 발생하였습니다.
이러한 문제를 해결하기 위해서 하나의 서버에서 여러 시스템을 운영할 수 있는 가상화 기술의 시대가 시작됩니다.
하나의 물리적 서버에서 여러 개의 가상 서버를 시작하고 자원을 낭비없이 활용할 수있는 가상화 기술은 스스로 원하는대로 시스템 구성을 변경할 수있는 장점이 있습니다.
물리적 서버에서 IT 시스템을 모두 구성 할 수도 있지만, 하드웨어의 성능이 높아지면서 하드웨어를 소프트웨어로 가상화하여 하나의 물리적 서버에서 여러 서버를 가상으로 실행하는 기술을 사용합니다. 가상으로 서버를 운영하기 때문에 “가상 서버”라고 하며, IT 시스템을 구성하는 단위로 폭넓게 사용하고 있습니다.
가상화는 소프트웨어를 통해 하드웨어로를 추상화하는 것입니다. 초창기에는 서버 (CPU / 메모리)를 가상화하는 것이였지만, 최근에는 네트워크 ,스토리지 심지어 데이터 센터 까지도 가상화는 기술로 발전하였습니다.
그러나 가상화 기술에서 클라우드로 진화하고 물리적 서버 또는 가상 서버에 있는 OS에 맞게 소프트웨어와 애플리케이션을 개발, 운영해야하는 상황은 바뀌지 않았습니다.
클라우드
클라우드는 인터넷을 통해 가상화된 컴퓨터의 시스템리소스(IT 리소스)를 요구하는 즉시 제공(on-demand availability)하는 것입니다.
클라우드 컴퓨팅은 전기망을 통한 전력망과 비슷한 일관성 및 규모의 경제를 달성하기 위해 IT 리소스 공유에 의존합니다.
컨테이너
서버는 물리서버나 가상서버를 불문하고 모두 서버를 제어할 수 있는 OS가 설치되어야 합니다. 만약 가상 서버로 여러 서버를 하나의 물리적 서버에서 실행 시키면 가상 서버마다 OS를 실행합니다. OS는 범용적으로 사용할 수 있도록 만들어졌기 때문에 많은 기능이 포함되어 있습니다.
그만큼 OS는 많은 자원을 필요로 하게됩니다. 따라서이 OS 부분을 공유 할 수 있다면 물리서버내의 애플리케이션 배포 집적도를 높일 수 있습니다.
애플리케이션 실행에 필요한 자원 (즉 애플리케이션과 라이브러리, 미들웨어 등)을 패키지 하나의 OS에서 고립을 유지하면서 여러 애플리케이션을 실행하는 것이 컨테이너 기술입니다. 이 메커니즘은 가상화 기술과는 달리 Guest OS 가 없기 때문에 부팅 오버 헤드와 하이퍼바이저가 없기 때문에 가볍고 성능이 좋은 실행 환경을 제공 할 수있는 것이 큰 장점입니다.
컨테이너 기술은 실행 환경을 다른 프로세스로부터 격리하고 그 속에서 애플리케이션을 동작시키는 기술입니다. 컨테이너가 사용하는 네임스페이스나 리소스는 다른 프로세스와 컨테이너로 부터 분리되어 고유의 설정을 가질 수 있습니다. 따라서 컨테이너로 구축 된 애플리케이션은 다른 서버에서도 동작할 수 있는 것입니다.
컨테이너 기술을 이용하면 다른 서버에도 쉽게 동일한 구성의 개발 환경과 운영 환경을 구축 할 수 있습니다.
IT인프라 맺음말
IT인프라의 발전단계를 메인프레임, 클라이언트/서버, 가상서버, 클라우드, 컨테이너 순으로 살펴보았습니다.
IT시스템을 단계별로 한가지의 구성방법만을 선택하는 것이 아니라 이들을 조합하여 더욱 효율적으로 운영할 수 있습니다.
예를 들어, 리소스를 많이 사용하는 데이터베이스 서버는 물리적 서버로 구성하여 웹서버나애플리케이션 서버는 컨테이너를 사용하고 , 운영 관리에 사용하는 모니터링 서버 등은 가상 서버로 구성하는 방법도 가능합니다.
컨테이너는 가상 머신보다 더 작은 단위로 애플리케이션 운영 환경을 구축할 수 있습니다. 가상 서버의 경우 개별 가상 서버마다 OS가 필요하지만 컨테이너는 필요없습니다.
OS 관리가 불필요하기 때문에 보안 위험을 줄일 수 있습니다.
다음은 ‘서버 가상화’와 ‘컨테이너 ” 의 차이점과 컨테이너가 클라우드에 왜 중요한 기술인지를 설명합니다.