<30312DC1A4BAB8C5EBBDC5C7E0C1A4B9D7C1A4C3A528B1E8C1BEB9E8292E687770>

Similar documents
<30312DC1A4BAB8C5EBBDC5C7E0C1A4B9D7C1A4C3A52DC1A4BFB5C3B62E687770>

vm-웨어-앞부속

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

vm-웨어-01장

DBPIA-NURIMEDIA

디지털포렌식학회 논문양식

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

06_ÀÌÀçÈÆ¿Ü0926

<30312DC1A4BAB8C5EBBDC5C7E0C1A4B9D7C1A4C3A528B1E8C1BEB9E8292E687770>

PowerPoint 프레젠테이션

Microsoft PowerPoint 자동설치시스템검증-V05-Baul.pptx

Microsoft PowerPoint - eSlim SV [ ]

APOGEE Insight_KR_Base_3P11

PowerPoint 프레젠테이션

PCServerMgmt7

Microsoft PowerPoint - eSlim SV [080116]

1217 WebTrafMon II

인문사회과학기술융합학회

PowerPoint Presentation

클라우드컴퓨팅이란? WHAT IS CLOUD COMPUTING? 2

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3

Integ

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

untitled

슬라이드 1

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

Xen으로 배우는 가상화 기술의 이해 - CPU 가상화

ODS-FM1

Microsoft Word - s.doc

°í¼®ÁÖ Ãâ·Â

untitled

Dell과 함께라면 가능합니다. 처음 도입하는 서버 또는 두 번째로 도입하는 서버이거나 네트워크를 확장시키거나 관리 기능을 강화하는 등의 모든 요구 사항을 Dell은 지원할 수 있습니다. Dell은 특성이 각기 다른 모든 조직과 회사마다 서로 다른 시점에 서로 다른 요

ZConverter Standard Proposal

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Feb.; 29(2), IS

Cloud Friendly System Architecture

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Samsung SDS Enterprise Cloud Networking CDN Load Balancer WAN

05( ) CPLV12-04.hwp

Windows Server 2012

Copyright 0, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT RIGHTS Programs, software, databases, and related

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 10, Oct ,,. 0.5 %.., cm mm FR4 (ε r =4.4)

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

User Guide

<30312DC1A4BAB8C5EBBDC5C7E0C1A420B9D720C1A4C3A52DBDC5C1F82E687770>

<49534F C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

McAfee Security Virtual Appliance 5.6 설치 안내서

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

ecorp-프로젝트제안서작성실무(양식3)

PowerPoint 프레젠테이션

6.24-9년 6월

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

PowerPoint Presentation

Microsoft PowerPoint - 권장 사양

<31325FB1E8B0E6BCBA2E687770>

Red Hat Solution 및 Cloud Aug 26, 2011 Won Young Choi Solution Architect 1

<4D F736F F D205B4354BDC9C3FEB8AEC6F7C6AE5D3131C8A35FC5ACB6F3BFECB5E520C4C4C7BBC6C320B1E2BCFA20B5BFC7E2>

User Guide

[Brochure] KOR_TunA

<564D B8A65FC0CCBFEBC7D15FB8AEB4AABDBA5FBCADB9F65FC8AFB0E65FB1B8C3E02E687770>

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

Citrix Workload Balancing 2.1 설치 가이드

(JBE Vol. 21, No. 1, January 2016) (Regular Paper) 21 1, (JBE Vol. 21, No. 1, January 2016) ISSN 228

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

StruxureWare Data Center Expert 7.2.x 의 새 기능 StruxureWare Data Center Expert 7.2.x 릴리스에서 사용할 수 있는 새 기능에 대해 자세히 알아보십시오. 웹 클라이언트 시작 화면: StruxureWare Cen

3.Bladesystem

Microsoft PowerPoint - 발표_090513_IBM세미나_IPTV_디디오넷_완료.ppt

05Àå

09권오설_ok.hwp

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

CONTENTS CONTENTS CONTENT 1. SSD & HDD 비교 2. SSD 서버 & HDD 서버 비교 3. LSD SSD 서버 & HDD 서버 비교 4. LSD SSD 서버 & 글로벌 SSD 서버 비교 2

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Sep.; 30(9),

Microsoft Word - zfs-storage-family_ko.doc

DE1-SoC Board

À¯Çõ Ãâ·Â

<3031B0ADB9CEB1B82E687770>

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

CONTENTS 목차 1. 전원 및 설치시 주의사항 2 2. 시스템 사용시 바른 자세 4 3. 시스템 구성품 확인 5 슬림형 케이스1 6 슬림형 케이스2 7 타워형 케이스1 8 타워형 케이스2 9 일체형 케이스1 10 망분리형 케이스 시스템 시작 및 종료

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Dec.; 27(12),

Solaris Express Developer Edition

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 26(11),

순 서 1. 직종정의 1 2. 작업범위 1 3. 경기과제에관한사항 1 4. 사용재료 7 5. 경기장시설및선수지참목록 7 6. 경기진행절차 채점에관한사항 공통사항 적용시기 18 [ 별첨 ] 대회별경기일정 ( 예시 )

Contents I. 칼라스 네트워크 플레이어란 1. Pc-Fi를 넘어서 발전한 차세대 음악 플레이어 칼라스 네트워크 플레이어의 장점 3. 시스템 기본 구성

SANsymphony-V

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

The Self-Managing Database : Automatic Health Monitoring and Alerting

Virtualization Days 2013

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Mar.; 28(3),

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

3. 클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발.hwp

Transcription:

Journal of the Korea Institute of Information and Communication Engineering 한국정보통신학회논문지 (J. Korea Inst. Inf. Commun. Eng.) Vol. 18, No. 11 : 2670~2677 Nov. 2014 웹서버구성을통한가상머신과컨테이너방식비교분석 배유미 1 정성재 2 소우영 3* Comparative Analysis of the Virtual Machine and Containers Methods through the Web Server Configuration Yu-mi Bae 1 Sung-jae Jung 2 Woo-young Soh 3* 1 Research Institute, Sky Computing C&S, Inc., Daejeon 302-845, Korea 2 Research Institute, Sky Computing C&S, Inc., Daejeon 302-845, Korea 3* Department of Computer Engineering, Hannam University, Daejeon 306-791, Korea 요약 Xen, KVM 등과같은하이퍼바이저를이용한가상머신생성기술이클라우드인프라구성에주로사용되고있다. 이기술은기존의운영방식에비해자원을할당하고관리하는측면에서는효율적이다. 그러나, 이기술은가상머신생성시에높은자원의사용량이요구되고할당된자원을사용하지않는경우에는또다른자원의낭비를초래한다. 이러한문제점을해결하기위한방법이컨테이너기반의 Docker 이다. 본논문은가상머신방식과컨테이너방식을비교하여웹서버구축기술로 Docker 와같은컨테이너방식이효율적임을보여준다. 특히, 웹서버나프로그램개발환경과같이데이터를데이터베이스나스토리지등에저장하는경우에는유용한것으로분석되었다. 앞으로의클라우드환경에서 Docker 와같은컨테이너방식이자원의효율성과관리의편의성을더욱높일수있을것으로기대된다. ABSTRACT The technique of virtual machine construction using hypervisor such as Xen and KVM is mainly used for implementation of cloud computing infrastructure. This technique is efficient in allocating and managing resources compared to the existing operation methods. However it requires high resource usage when constructing virtual machines and results in wasting of resources when not using the allocated resources. Docker is a technique based on the container method to resolve such a problem. This paper shows the container method such as Docker is efficient as a web construction technique by comparing virtual machine method to container method. It is shown to be especially useful when storing data into DB or storage devices in such environments of web server or program development. In the upcoming cloud computing environment the container method such as Docker is expected to improve the resource efficiency and the convenience of management. 키워드 : 컨테이너, 도커, 케이브이엠, 리눅스, 가상머신 Key word : Containers, Docker, KVM, Linux, Virtual Machine 접수일자 : 2014. 07. 29 심사완료일자 : 2014. 10. 16 게재확정일자 : 2014. 10. 29 * Corresponding Author Woo-young Soh(E-mail:wsoh@hnu.kr, Tel:+82-42-629-7657) Department of Computer Engineering, Hannam University, Daejeon 306-791, Korea Open Access http://dx.doi.org/10.6109/jkiice.2014.18.11.2670 print ISSN: 2234-4772 online ISSN: 2288-4165 This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/li-censes/ by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited. Copyright C The Korea Institute of Information and Communication Engineering.

웹서버구성을통한가상머신과컨테이너방식비교분석 Ⅰ. 서론 눌수있다 [4]. IT 인프라구축시에클라우드컴퓨팅 (Cloud Computing) 및빅데이터 (Big Data) 기술의활용이보편화되고있다. 이중클라우드컴퓨팅기술은 IT 자원을서로공유하고유휴자원을효율적으로이용할수있다는장점으로인해서버나시스템구성시필수적으로이용되고있다. 클라우드컴퓨팅의핵심기반기술로가상화 (Virtualization) 기술을꼽을수있는데, 서버분야에서많이사용되는공개형서버가상화기술에는하이퍼바이저 (Hypervisor) 기반의 Xen, KVM, Virtualbox 등이있다. 하이퍼바이저기반의서버가상화기술은물리적서버위에운영체제 ( 이하호스트 OS) 를설치하고, 그위에하이퍼바이저를기반으로자원을분할하여가상머신을생성한뒤에또다시운영체제 ( 이하게스트 OS) 를설치하고응용프로그램을구동하는방식이다. 이러한방식은하나의물리적시스템에독자적으로운영가능한다수의서버들을운영할수있다는장점은있으나, 호스트 OS와게스트 OS가동일한운영체제로작동중인경우에는자원의낭비가크다. 하이퍼바이저방식의비효율성을극복하기위해등장한방법이리눅스컨테이너 (Linux Containers) 방식의도커 (Docker) 이다 [1]. 도커는물리적서버위에호스트 OS를설치하고하이퍼바이저없이응용프로그램, 바이너리및라이브러리파일로만구성된도커엔진컨테이너라는이름으로구동된다. 호스트 OS에서는사용자공간에격리된하나의프로세스로구동되기때문에가상머신의이점을누리면서가볍고, 빠르고, 이동성도뛰어난하나의시스템을구성할수있다. 본논문에서는리눅스기반오픈소스서버가상화기술중에가장효율성이좋은 KVM(Kernel based Virtual Machine)[2,3] 와컨테이너방식의도커 (Docker) 를이용하여웹서버를구성하고, 이두가지방식에대해비교분석하고자한다. Ⅱ. 관련연구현재서버분야에많이사용되는가상화기술은가상화대상개체에따라크게하드웨어레벨 (Hardwarelevel) 가상화와운영체제레벨 (OS-level) 가상화로나 2.1. 하드웨어레벨가상화하드웨어레벨가상화는가상화를제공하는가상화계층 (Virtualization Layer) 이물리적인하드웨어또는호스트운영체제위에위치하여가상화계층에의해생성된가상머신에게스트운영체제를생성한다. 이기술의가장큰특징은가상화계층내의주요구성요소인 Virtual Machine Monitor( 이하 VMM) 이다. VMM은물리적인하드웨어를가상머신의하드웨어에매핑시키고게스트운영체제의자원활용을관리하는업무를수행한다. 하드웨어레벨의가상화기술은 VMM의구성위치에따라 Bare-Metal/Hypervisor ( 전가상화 ), Para- Virtualization( 반가상화 ), 호스트기반가상화로나눈다. 그림 1. 하드웨어레벨가상화 Fig. 1 Hardware-level Virtualization 2.1.1. 전가상화전가상화및반가상화는가상머신의하드웨어를에뮬레이팅하는대신에하이퍼바이저 (hypervisor) 라는제어프로그램을통해호스트의하드웨어자원을가상머신의여러운영체제가나누어사용하도록하는기법이다. 그중전가상화는가상화소프트웨어가수정하지않은게스트운영체제를 100% 완전가상화환경위에서제공하는기술로범용적인 x86 가상화하드웨어 (CPU, 메모리, 디스크, I/O 장치등 ) 를 VMM위에구성한다. 게스트운영체제측면에서별도의수정및간섭없이완벽하게물리적인하드웨어자원의접근및이용이가능하다. Bare-Metal/Hypervisor 기법을이용한제품에는 HP Integrity VM, IBM zserises z/vm, VMware ESX Server, Xen(with HW assist) 등이있다. 2671

한국정보통신학회논문지 (J. Korea Inst. Inf. Commun. Eng.) Vol. 18, No. 11 : 2670~2677 Nov. 2014 2.1.2. 반가상화반가상화의기본적인구성방법은전가상화방법인 Bare-Metal /Hypervisor 동일하나게스트운영체제측면에서 VMM과의원활한통신을위해게스트운영체제의커널일부분을수정하여적용한다. 이방법은일부가상화하드웨어자원에대해필요에따라직접적으로물리적하드웨어접근을일부허용한다. 반가상화는전가상화에비해기존시스템에가까운성능을나타내기위해지원하지만, 게스트운영체제의커널일부분을수정해야한다는부분이단점으로지적된다. 반가상화기법을이용한제품으로는오픈소스인 Xen, Citrix사의 XenServer 등이있다. 2.1.3. 호스트기반가상화 VMM이호스트운영체제위에설치되어가상머신을생성하는구조로게스트운영체제는호스트운영체제가인식한하드웨어를가상하드웨어로재구성하여사용하는방법이다. 이방법은하드웨어레벨가상화기법중에서호스트운영체제가설치된환경위에구동되어성능은물론자원관리능력측면에서제약사항이많은편이나일반인들이사용하기에는쉬운장점이있다. 이기술이적용된제품으로는 Microsoft의 Virtual Server 및 Virtual PC, VMware Server, VMware Workstation, VMware Player 등이있다. 2.2. 운영체제레벨가상화운영체제레벨가상화는하나의 CPU에하나의운영체제만수행되고, 가상화계층 (Virtualization Layer) 이호스트운영체제윗부분에존재하여가상화환경을제공하는방법을말한다. 단일호스트운영체제위에다중애플리케이션전용컨테이너를생성하여애플리케이션단위의가상화환경을제공한다. 각각의애플리케이션컨테이너안에는가상운영체제와네트워크, 프로세서등을생성한다. 이방법은크게두가지방식으로분리하는데하나는 Containers방식이고또다른하나는 Hardware Emulator방식이다. Container방식은가상화계층이호스트운영체제내에임베디드형태로구성되고, 각각의애플리케이션별로추가적인컨테이너를생성하는방식이다. 각각의컨테이너안에생성된가상운영체제와호스트운영체제에있는공통커널을공유하고사용한다. 그림 2. 운영체제레벨가상화 Fig. 2 OS-level Virtualization 대표적인제품이오픈소스인 OpenVZ, Parrells사 ( 구 SWSoft) 의 Virtuozzo, FreeBSD Jail, HP의 Secure Resource Partitions, Sun의 Solaris Containers Zones, User-Mode Linux, Docker 등이있다. 또다른방법인하드웨어에뮬레이터방식은애플리케이션중심의가상운영체제를생성하는과정에서소프트웨어적으로하드웨어를가상에뮬레이팅하는방식이다. 대표적인제품으로는마이크로소프트사의 Virtual PC for Mac, QEMU, Bochs 등이있다. 운영체제레벨의가상화기법은기본적으로단일호스트운영체제위에구성되는애플리케이션중심의가상운영체제를생성한다. 각각의가상운영체제는호스트운영체제와커널구성측면의공유로운영체제를사용함으로써, 다음에열거된하드웨어레벨의전가상화제품에비해성능적으로많은제약사항을가지고있다. 또한지원가능애플리케이션이나다양한가상운영체제구성역시한계성을가지고있다. Ⅲ. KVM 및 Docker 를이용한웹서버구축 3.1. 구성방안한대의물리적서버에비용부담이없는공개소프트웨어리눅스인 CentOS 7 버전을설치하고, 가장최소한의자원할당을통해웹서버를구축하여테스트한다 [5]. 가상머신및컨테이너안에실행되는운영체제의기준은현재가장많아사용되고있는 CentOS 6.5로구 2672

웹서버구성을통한가상머신과컨테이너방식비교분석 성하고, 웹서버프로그램은아파치 2.2 버전으로구성한다. KVM 기반의가상머신은 CentOS 6.5를설치하기위해최소한의하드웨어자원만을할당하는데, 권장사항을기준으로메모리는 1GB를할당하고하드디스크용량은 10GB를할당한다. 간단한웹페이지를작성하고웹서버를동작시키는과정을통해설치방법, 운영방법, 자원사용량등에대해분석한다. 하드웨어구성환경은 x86_64 계열의하드웨어이용하고세부적인사양은표 1과같다. 표 1. 시스템하드웨어구성 Table. 1 The system Hardware configuration CPU Intel Xeon 5130 CPU 2.0GHz 64bit Proccessor Main Board Intel S5000VSA-SCSI Memory 4GB(DDR2 667Mhz ECC) HDD Samsung 300GB Serial-ATA(Model: HD300LJ) NIC Intel 82563EB Dual Gigabit Ethernet VGA ATI ESI1000 SVGA PCI 3.2. KVM을이용한웹서버구성 3.2.1. 설치개요 CentOS 7 버전에서 KVM을사용하기위해서는처음리눅스설치시에나타나는소프트웨어선택 (Software Selection) 메뉴에서가상호스트 (Virtualization Host) 를선택하면손쉽게이용가능하다. 만약, 다른메뉴를선택했다면리눅스설치후에 yum 명령을이용하여 qemu-kvm, virt-manager 등을설치하면이용가능하다. 설치후에가상머신관리자 (virt-manager) 를이용하여가상머신을생성한뒤에 CentOS 6.5를설치하고, yum 명령을이용하여아파치웹서버인 httpd를설치한다. 3.2.2. 자원할당 KVM은가상머신을이용하는하이퍼바이저형이므로반드시 CPU, RAM, HDD 등의자원할당이필요하다. 게스트 OS로사용할 CentOS 6.5 버전을웹서버로운영하기위해서는최소 512MB ~ 1GB의 RAM 용량이필요하고, 8~10GB 정도의 HDD 용량이요구된다. 가상머신에할당되는 CPU의개수는물리적 CPU의개수나코어 (Core) 수에따라좌우된다. 초기의가상머신관리자는물리적인 CPU나 CPU의코어수에상관없이가상머신을생성할수있었으나, 최근에는최적의성능을 발휘할목적으로물리적인 CPU나 CPU의코어수에따라제한되고있다. 3.2.3. 네트워크및기타설정가상머신을서버로사용하기위해서는먼저가상이더넷관련장치를설정하고, IP(Internet Protocol) 주소를할당해야한다. 공인 IP 주소를할당해도되고, 공인 IP 주소가없다면사설 (Private) IP 주소를할당해도된다. 사설 IP 주소를할당하는절차를끝냈다면추가적으로호스트 OS의 80번포트로들어오는웹서비스요청을게스트 OS의 80번포트로포워딩 (Forwarding) 하는절차가요구된다. 이때 iptables라는패킷필터링 (Packet Filtering) 및방화벽 (Firewall) 역할을해주는프로그램을이용해서 NAT(Network Address Translation) 설정해줘야한다 [6]. 만약호스트 OS의공인 IP주소가 203.247.40.245번이고, 게스트 OS의사설 IP주소가 192.168.0.10번이라면다음의표 2 및표 3과같이 DNAT(Destination NAT) 및 SNAT(Source NAT) 명령을내려야한다 [7]. 표 2. iptables 를이용한웹포트포워딩설정 Table. 2 Web Port Forward using iptables # iptables -t nat -A PREROUTING -p tcp -d 203.247.40.245 --dport 80 -j DNAT --to 192.168.0.10 표 3. iptables 를이용한 SNAT 설정 Table. 3 SNAT setup using iptables # iptables -t nat -A POSTROUTING -j SNAT --to 203.247.40.245 3.3. Docker 를이용한웹서버구성 3.3.1. 설치개요 CentOS 7 버전에서 Docker를사용하려면 yum install docker* 라는명령만수행하면손쉽게설치가능하다. Docker는 CentOS 6.5 기반의웹서버를운영하기위해 KVM처럼별도의운영체제설치가필요하지않다. Docker 사이트에서제공되는 Docker Container를검색하여설치만해주면된다 [8]. 컨테이너이미지검색을통해최소화된 CentOS 6.5의컨테이너이미지를설치할수도있고, 다른사용자가공유한컨테이너이미지를선택하여설치할수도있다. 다음의표 4와같은 2673

한국정보통신학회논문지 (J. Korea Inst. Inf. Commun. Eng.) Vol. 18, No. 11 : 2670~2677 Nov. 2014 단계를거쳐 CentOS 6.5용이미지컨테이너를설치할수있다. 표 4. Docker 컨테이너설치과정 Table. 4 The installation process Docker Container 과정 명령예 이미지검색 # docker search centos 이미지설치 # docker pull posein/centos 이미지확인 # docker images 제공되는컨테이너이미지는서버운영에필요한최소한의응용프로그램, 바이너리및라이브러리로만구성되어있으므로해당컨테이너이미지에접속해서사용할웹서버프로그램인아파치를설치해야한다. 관련프로그램설치과정은다음의표 5와같다. 표 5. Docker 컨테이너안에프로그램설치과정 Table. 5 Program installation in Docker Container 과정 명령예 이미지에접속 # docker run i t d592b9a589a6 /bin/bash 프로그램설치 # yum install httpd 3.3.2. 자원할당 Docker는 KVM과다르게별도의자원할당이필요없다. Docker에서운영하는 Container는기본적인동작방식이가상머신처럼보이지만, 호스트 OS에서는프로세스 (Process) 로관리된다. 따라서, 다른응용프로그램들과같이실행시에 CPU 및 RAM 등의하드웨어자원을할당하고종료시에해당자원을회수한다. Ⅳ. 비교분석 4.1. 설치관련분석하이퍼바이저인 KVM 기반으로운영하기위해서는 qemu-kvm이라는패키지이외에가상머신을관리하기위한가상머신관리자라는프로그램을설치해야한다. 또한, 가상머신생성을위해메모리나디스크의용량을할당해야하고, 설치하려는운영체제인 CentOS 6.5 설치 DVD나 ISO 이미지파일을별도로준비해야한다. Docker는해당프로그램만설치하면되고, 웹서버로운영하고자하는 CentOS 6.5는 Docker 저장소에서제공하고있으므로최적화된해당컨테이너이미지만가져다사용하면된다. 따라서, Docker는인터넷기반으로최적화된운영체제이미지를제공받는형태라설치가매우쉽고빠르다. 4.2. 자원분석 4.2.1. CPU 자원분석 CPU의자원분석은 sysstat 패키지의 mpstat 명령을이용하여그림 3과같이호스트 OS의남는자원값인 idle값을분석한다 [9]. KVM은가상머신관리자인 virtmanger를실행했을때와가상머신을실행하여웹서버를가동했을때의자원사용량을분석하고, Docker는가상머신관리자가필요없으므로 Container를실행했을때만측정한다. 3.3.3. 네트워크및기타설정 Container 운영중인경우에는어떠한네트워크설정이나변경이필요하지않다. 즉, Container의네트워크에대한어떠한정보도알지못해도상관없다. 표 6과같이단지호스트 OS의 80번포트로들어오는웹서비스요청을해당컨테이너의 80번포트로보내는 docker 명령만실행하면된다. 표 6. 웹포트포워딩하는 Docker 명령 Table. 6 Docker s Web Port forwarding command # docker run p 80:80 --rm centos_web /usr/sbin/httpd - DFOREGROUND 그림 3. mpstat 를이용한분석 Fig. 3 Analysis using mpstat CPU의 idle 값을분석해보면 KVM 기반의가상머신방법에서는가상머신관리자실행시에평균 13~14% 의 CPU의자원을사용하였고, 가상머신의실행에따른 CPU 자원의증가는미비하였다. Docker 방식인경우에는웹서버가동작하는컨테이너를실행하여도평균 2~3% 정도의 CPU 자원만을사용하였다. 따라서, 2674

웹서버구성을통한가상머신과컨테이너방식비교분석 Docker를사용하면 KVM 방식에비해훨씬많은수의가상서버를구현할수있다. 표 7. CPU 의 idle 값비교 Table. 7 Comparison of CPU idle Value KVM Docker Booting 시 88.13% 88.13% 가상머신관리자실행 75.25% 88.13% 가상머신또는컨테이너실행 73.44% 85.67% 표 8의결과를보면 Docker 방식은웹서버역할을하는컨테이너실행을했을경우에대략적으로 40MB 정도의메모리만사용하였다. Docker는메모리가충분하지않은시스템에서도효율적으로사용가능한방식이라고할수있다. 특히, 그림 5와같이 Docker 기반으로생성한 2개의웹서버컨테이너를 top 명령어를이용하여실제물리적메모리사용량인 RES 항목을분석한결과 4~6MB 정도만사용하였다. 4.2.2. 메모리사용량분석메모리사용량분석은그림 4와같이 free m 명령을이용하여버퍼 (Buffer) 와캐쉬 (Cache) 로사용중인메모리를제외한실제사용가능한메모리양을확인한다 [10]. KVM 환경에서는먼저부팅직후의메모리상태를분석하고, 가상메모리관리자를실행했을때와가상머신실행후웹서버가동했을때를분석한다. Docker 환경에서는부팅직후와웹서버가설치된 Container 실행시를분석한다. 그림 4. free 명령을이용한분석 Fig. 4 Analysis using free command 그림 4와같은방법으로 50회이상측정하여메모리사용량을분석해보면 KVM 방식은가상머신관리자실행시에평균 50MB 내외의메모리를사용하였고, 가상머신실행시에는가상머신에할당한용량인 1GB에육박하는 700MB 내외의메모리를사용하였다. 표 8. 메모리사용량비교 Table. 8 Comparison of Memory Usage KVM Docker Total Used Free Total Used Free Booting 시 3786 977 2809 3786 977 2809 가상머신관리자실행시 3786 1026 2764 3786 977 2809 가상머신또는 컨테이너실행 3786 1698 2088 3786 1019 2767 그림 5. Docker 컨테이너의메모리사용량분석 Fig. 5 Docker Container s Memory usage analysis 4.2.3. 디스크사용량분석 KVM 방식의디스크사용량은가상머신생성시에할당하는용량이라고볼수있다. 즉, 가상머신의디스크용량에 10GB를할당하면호스트 OS에 10GB 짜리관련파일이생성된다. 그러나, 최근가상머신관리자에서는디스크사용량의효율성을높이기위해서 VirtualBox의가상머신관리자가사용하는디스크동적할당방법을지원하고있다. 가상머신생성시에 10GB 를할당하였다고하더라도실제가상머신에설치된게스트 OS의용량이 5GB라면디스크사용을 5GB만차지한다. 다음의그림 6을통해가상머신관련파일을용량을 ls l 했을경우와 du sh 했을경우에차이를확인할수있다. ls l 했을때나타나는약 10GB에해당하는용량이가상머신생성시에할당된디스크공간이고, du sh 했을때나타내는 5.5GB라는수치가실제설치된용량이라고볼수있다. Docker의경우에는다음의그림 7와같이 /var/lib/ docker/devicemapper/devicemapper라는디렉터리안에있는 data 및 metadata 파일의용량으로디스크사용량을확인할수있다.. 보통버전마다차이가있지만대략적으로 data는 1.2GB 정도이고 metadata는보통몇 MB 이다. 또한컨테이너를여러개를생성해도가상머신방식처럼크게증가되지않으므로가상머신방식에비 2675

한국정보통신학회논문지 (J. Korea Inst. Inf. Commun. Eng.) Vol. 18, No. 11 : 2670~2677 Nov. 2014 해디스크사용량은현저히낮다고볼수있다. Ⅴ. 결론 그림 6. KVM 의가상머신디스크사용량분석 Fig. 6 KVM s Virtual Machine disk usage analysis 그림 7. Docker 의디스크사용량분석 Fig. 7 Docker s disk usage analysis 4.3. 네트워크및기타설정분석 KVM 기반의가상머신에웹서버를운영하기위해서는가상머신의네트워크설정에대해명확히이해해야한다. 공인 IP 및사설 IP에대한개념, SNAT 및 DNAT 등에대해명확히알아야한다. 또한, 패킷필터링역할을하는 iptables에대해서도알아야하므로설정하기가쉽지않다. 그러나, Docker를사용하는경우에는 docker 관련명령하나만알면손쉽게운영이가능하다. 현재클라우드인프라구성에많이사용되는 Xen, KVM, VMware, Virtualbox 등을살펴보면대부분하이퍼바이저방식으로호스트 OS위에가상머신을생성하여게스트 OS를설치하고다시응용프로그램을구동하는방식이다. 자원을명확히할당받아사용하므로안정적인서비스를받을수있다는장점을있으나, 하드웨어자원의한계로인해많은수의서비스를운영하기어렵고자원을할당한만큼사용하지않는다면또다른자원의낭비를초래할수있다. 그러나, Docker가사용하는컨테이너방식은가상머신처럼운영이가능하면서, 하드웨어자원의사용률은일반적으로동작하는응용프로그램의수준정도이다. 따라서, 하드웨어의자원사용률은현저히낮으면서내부적으로프로세스로처리되어관리의효율성도높다. 물론가상머신환경의변화가많거나데이터저장이빈번하면컨테이너저장단계가필요하지만, 웹서버나프로그램개발환경과같이특정데이터를데이터베이스, 스토리지등에저장하는경우에는매우유용하게사용될수있다. 앞으로의클라우드환경은 Docker와같은컨테이너방식으로자원의효율성과관리의편의성을더욱높이리라사료된다. 4.4. 웹서버운영분석 KVM 기반의가상머신으로웹서버운영할때데이터의저장이나변동되었을경우에는할당된별도의디스크공간이존재하므로큰문제가없다. 그러나, docker의컨테이너는변경된내용이저장되지않는다. 변경된사항을저장하기위해서는커밋 (commit) 이라는작업이요구되고, 커밋된이미지는 Docker 저장소에보관하여개인적으로사용하거나다른사용자에게공개할수도있다. 또한, 웹서버의경우에는대부분의데이터가데이터베이스 (Database) 에저장되고, html이나이미지파일등은네트워크파일시스템 (Network File System: 이하 NFS) 이나스토리지에저장되는경우가많다. 따라서, 데이터베이스를사용하고, NFS 및스토리지를이용하는웹서버환경에서는 Docker로운영해도큰문제가없다. 감사의글이논문은 2013년도한남대학교학술연구조성비지원에의하여연구되었음 REFERENCES [ 1 ] Docker, http://www.docker.com [ 2 ] KVM, http://www.linux-kvm.org [ 3 ] S. J. Jung, K. Sung, and Y. M. Bae, Comparison and Analysis of Resource Usage of Open Source Server Virtualization Techniques, Journal of The Korea Knowledge Information Technology Society, vol. 7, no. 5, pp. 43-49, Apr. 2011. 2676

웹서버구성을통한가상머신과컨테이너방식비교분석 [ 4 ] S. J. Jung, Implementation and Utilization of Linux Virtualization for Cloud Computing Infrastructure Development, Ph. D. dissertation, Hannam University, Daejeon, pp. 19-24, Feb. 2011. [ 5 ] CentOS Project, http://www.centos.org [ 6 ] Netfilter, http://www.netfilter.org [7] Y. M. Bae, S. J. Jung, and W. S. Soh, Design and Implementaion of Web Clustering System Based on Linux Virtualization, The Journal of The Korea Institute of Information Technology, vol. 8, no. 11, pp. 251-260, Nov. 2010. [ 8 ] Docker Registry, https://registry.hub.docker.com/ [ 9 ] Sysstat, http://sebastien.godard.pagesperso-orange.fr/ [10] Procps-ng, https://sourceforge.net/projects/procps-ng/ 배유미 (Yu-Mi Bae) 2005 년 2 월한남대학교컴퓨터멀티미디어학과공학사 2007 년 8 월한남대학교정보기술학과공학석사 2013 년 2 월한남대학교컴퓨터공학과공학박사 2013 년 ~ 현재 스컴씨엔에스기업부설연구소선임연구원 관심분야 : 리눅스, 정보보호, 클라우드컴퓨팅, 서버가상화 정성재 (Sung-Jae Jung) 1998 년 2 월한남대학교컴퓨터공학과공학사 2003 년 8 월한남대학교컴퓨터공학과공학석사 2011 년 2 월한남대학교컴퓨터공학과공학박사 2005 년 3 월 ~ 2010 년 2 월한남대학교국제 IT 교육센터전임강사 2012 년 9 월 ~ 현재 스컴씨엔에스기업부설연구소연구소장 관심분야 : 리눅스, 정보보호, 클라우드컴퓨팅, 서버가상화 소우영 (Woo-young Soh) 1979 년중앙대학교전자계산학과학사 1981 년서울대학교전자계산학과석사 1991 년메릴랜드대학교전자계산학과공학박사 1991 년 ~ 현재한남대학교컴퓨터공학과교수 관심분야 : 정보보호, 암호학 2677