공개SW 기술팁



itworld

글: 박상훈 기자 | ITWorld / 2017-12-15



최근 클라우드와 가상화 부문에서 가장 주목받는 기술을 꼽으라면 단연 '도커(Docker) 컨테이너'입니다. 귀여운 고래 아이콘으로 유명하죠. 2013년 오픈소스로 공개된 후 불과 3년여 만에 서버 운영체제의 기본 기술로 자리 잡았습니다. "올해 클라우드가 더 발전한다면 그것은 도커 덕분일 것"이라고 예언하는 전문가도 있을 정도입니다. 여기서는 도커, 특히 그 기반 기술인 컨테이너(container)에 대해 살펴봅니다.

이 컨테이너는 그 컨테이너가 아닙니다.
flickr/tsuna72
이 컨테이너는 그 컨테이너가 아닙니다.


개발자의 오랜 골칫거리가 하나 있습니다. 새로 만든 애플리케이션을, 실제 작업한 노트북에서 테스트 환경으로, 다시 운영환경으로 옮길 때마다 온갖 이상한 오류와 만나는 것입니다. 환경마다 네트워크 기술과 보안 정책, 스토리지가 제각각이어서 그렇습니다. 그래서 '소프트웨어를 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 이동하면서도 안정적으로 실행하는 방법이 없을까?'라는 고민이 커졌고 그 대답이 바로 컨테이너입니다.

개념은 간단합니다. 애플리케이션과 그 실행에 필요한 라이브러리, 바이너리, 구성 파일 등을 패키지로 묶어 배포하는 것입니다. 이렇게 하면 노트북-테스트 환경-실제 운영환경으로 바뀌어도 실행에 필요한 파일이 함께 따라다니므로 오류를 최소화할 수 있습니다. 운영체제를 제외하고 애플리케이션 실행에 필요한 모든 파일을 패키징한다는 점에서 운영체제 위에서 구현된 가상화, 즉 '운영체제 레벨 가상화'라고 부르기도 합니다.

관심 있는 독자라면 당장 다른 가상화를 떠올렸을 것입니다. 바로 '하드웨어 레벨 가상화'입니다. 서버에 하이퍼바이저를 설치한 후 그 위에 가상 운영체제와 애플리케이션을 패키징한 '가상머신(VM)'을 만들어 실행하는 방식입니다. 이젠 서버에 보편적으로 적용되는 이 기술은 '서버 가상화'라고도 부릅니다. 이를 위해 사용하는 하이퍼바이저가 VM웨어, KVM, 젠(Xen), 하이퍼V(Hyper V) 등인데 꽤 익숙한 이름이죠?

컨테이너(오른쪽)는 가상머신(왼쪽)과 달리 게스트 운영체제가 없어 용량이 작고 빠릅니다.
docker.com
컨테이너(오른쪽)는 가상머신(왼쪽)과 달리 게스트 운영체제가 없어 용량이 작고 빠릅니다.


그렇다면 이미 널리 쓰이는 서버 가상화 기술이 있는데 왜 컨테이너가 인기를 끄는 것일까요? 크기와 속도 때문입니다. 컨테이너에는 운영체제가 포함되지 않아 크기가 수십 MB로 작습니다. 반면 VM에는 운영체제가 포함되므로 보통 수 GB에 달하죠. 결국, 컨테이너는 서버 1대에서 실행할 수 있는 개수가 VM보다 최대 10배 이상 많고, 운영체제 부팅이 필요 없어 불과 수초 만에 서비스를 시작할 수 있습니다.

컨테이너 개념의 시작은 지난 2000년 프리BSD의 '제일(Jails)' 기능까지 거슬러 올라갑니다. 당시엔 사용성, 보안성의 문제로 주목을 받지 못했습니다. 이후 네임스페이스, C그룹(Control Groups), SE리눅스(SELinux) 등이 차례로 개발됐고, 2013년 이들을 모두 통합해 '쓰기 편한 컨테이너' 도커가 등장합니다. 이미 있는 기술을 조합해 '파괴적인 변화'를 만들었다는 점에서 아이폰이 떠오르기도 합니다.

전문가들은 컨테이너가 더 확산할 것으로 예상합니다. 안정적이면서 확장성이 좋은 인프라에 대한 수요가 높기 때문입니다. 특히 많은 사람이 동시에 사용하는 인터넷 애플리케이션에는 컨테이너가 안성맞춤입니다. 실제로 포털 사이트의 커뮤니티나 메일 서비스에는 이미 이 기술이 사용되고 있습니다. 온 프레미스 외에 프라이빗/퍼블릭 클라우드 등 인프라가 복잡해지는 것도 이 기술이 뜨는 또다른 이유입니다.

도커는 컨테이너 기술을 대중화시킨 1등 공신입니다.
flickr/kyohei ito
도커는 컨테이너 기술을 대중화시킨 1등 공신입니다.


단, 컨테이너가 만능은 아닙니다. 컨테이너들이 메인 운영체제를 공유하는 구조여서 서버 가상화보다 운영체제와의 접점이 많습니다. 컨테이너가 뚫리면 메인 운영체제가 해킹당할 가능성도 그만큼 높습니다. 리눅스 외에 다른 운영체제를 쓰기 힘들다는 것도 단점으로 꼽힙니다. 그래서 전문가들은 당분간 컨테이너와 서버 가상화 기술이 서로 약점을 보완하면서 공존할 것으로 전망합니다.



※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지


[원문출처 : http://www.itworld.co.kr/news/103469]

조회 수 :
1056
등록일 :
2017.02.16
15:06:23 (*.162.249.76)
List of Articles
번호 제목
자료년도
날짜 조회 수
498 핵심 오픈소스 SW 재단 8곳, 그리고 그들이 중요한 이유 2015  2017-05-25 31
497 컨테이너 클러스터를 마스터하기 위한 4가지 유용한 쿠베르네티스 툴 2017  2017-05-23 40
496 [인공신경망] 어색한 번역은 그만! AI 탑재한 신경망 번역 시대 열리다(1) 2017  2017-04-28 276
495 [e돋보기] 인공지능 플랫폼 2017  2017-03-07 1394
494 리눅스에서 SD 카드를 포맷하는 방법 2017  2017-03-03 1153
493 오픈소스 개발을 위한 Git 사용법 실습 2017  2017-02-24 1234
492 '넷XMS·오픈NMS·판도라FMS·자빅스' 오픈소스 관리 툴 4종 분석 2016  2017-02-16 1199
» ITWorld 용어풀이 | 컨테이너(container) 2017  2017-02-16 1056
490 [OpenFOAM] 열유체의 구배방정식 (OpenFOAM 배경이론 간단정리) 2017  2017-02-06 1076
489 아마존웹서비스(AWS)와 함께 오픈소스 소프트웨어 활용하기 2016  2017-02-02 1305


사이트하단 로고, 하단메뉴, 트위터 바로가기

퀵메뉴모음
퀵메뉴열기
퀵메뉴닫기