2015.09.15

프리뷰 | 윈도우 서버 2016에서 '도커' 실행해보니

Simon Bisson | InfoWorld

데이터센터에 애플리케이션을 전달하는 방법이 바뀌고 있다. 서비스형 모델로 변화하고 있는데, 이는 데브옵스(devops) 문화로의 이동과 밀접한 관련이 있다. 빌드 툴을 이용해 새 애플리케이션, 업데이트 된 애플리케이션을 전달하는 지속적인 전달 프로세스 구현이 그 중심에 자리하고 있다.

이와 함께 중요한 역할을 하는 것이 또 있다. 기본 OS에서 애플리케이션과 서비스를 추출해, 보안 사일로에서 운영하면서 기본 OS 서비스만 이용할 수 있도록 만드는 도커(Docker) 같은 컨테이너 기술이다.

동일한 호스트에서 여러 컨테이너를 실행시킬 수 있으며, 서로 보호가 되는 것이 특징이다. 컨테이너의 경우 하이퍼바이저 기반 가상화와 달리 별개의 OS 이미지가 필요 없다. 또 IaaS 클라우드 등 가상화 인프라에서도 아무 문제 없이 실행시킬 수 있다.

-> 리뷰 | 도약을 눈앞에 둔 '도커(Docker) 1.0'
-> 도커 101 : 가장 중요한 질문 8가지
-> "기업의 소프트웨어가 바뀐다" 3대 동력
-> 기고 | 개발 환경의 혁신! '도커' 따라잡기

사실 컨테이너는 신기술이 아니다. 그 역사가 메인 프레임 시대로 거슬러 올라간다. 이는 프리BSD와 오픈솔라리스(OpenSolaris)의 핵심 기술이었다. 또 리눅스 커널에서 오랜 기간 지원했던 기술이기도 하다.

그러나 도커 컨테이너는 엔진의 '단순함'을 바탕으로 현대적인 데이터센터에 없어서는 안될 요소가 됐다. 도커는 쉬운 명령어 줄과 잘 정립된 API를 갖고 있다. 덕분에 리눅스는 물론 (이제는) 윈도우에서도 컨테이너를 구축, 공유, 관리할 수 있게 됐다.


Credit: Thinkstock

윈도우 서버와 도커
도커의 윈도우 툴은 상당 기간 존재해왔다. 그러나 윈도우 7과 윈도우 8.1만 지원했다. 마이크로소프트는 윈도우 서버에서도 도커를 지원하겠다고 약속했으며, 2015년 4월 빌드(Build) 개발자 행사의 무대에서 마침내 이를 시연해 보였다. 그리고 몇 주 전에는 윈도우 서버 2016 테크니컬 프리뷰 3용 버전을 처음 공개했다.

필자는 지금 테스트 서버에서 최신 윈도우 서버 2016을 운영하면서, 윈도우 서버 2016의 컨테이너 지원 방식을 조사하고 있다. 한 가지 주의점이 있다. 풀 UI 윈도우 서버에 파워셀(PowerShell) 컨테이너 cmdlets를 설치할 수는 있지만 권장하지는 않는다.

마이크로소프트가 서버 코어(Server Core)용 WIM(Windows Imaging) 디스크 이미지를 포함시키고, 표준 인스톨러와 함께 윈도우 서버 2016 TP3 다운로드 형태로 컨테이너를 지원하는 이유가 여기에 있다.

테스트 서버를 구축하면서 윈도우 서버 2016의 지원 프로세서 요건이 까다로워졌다는 사실을 발견했다. 하이퍼-V에 SLATA(Second Level Address Translation)이 필요하다. 이로 인해, 테스트 서버 중 하나를 사용할 수 없게 됐다.

서버코어 WIM을 하이퍼-V VM으로 바꾸거나, 베어메탈 서버에 윈도우 서버 2016을 구성할 수 있다. 그러나 MSDN에서 사전 설정된 하이퍼-V 이미지를 다운로드 해 윈도우 서버 컨테이너를 구축하는 것이 훨씬 쉬운 방법이다. 파워셸 스크립트로 이미지를 다운로드 해 설치하고, VM을 구성하는 것이다.

다운로드 스크립트는 진행 상태를 알려주지 않는다. 약 6GB 파일이기 때문에 다른 툴을 이용해 다운로드 할 때 주의를 기울일 필요가 있다. 필자의 경우 인터넷 연결 상태가 아주 불안정했기 때문에 작업 관리자(Task Manager)의 네트워크 트래픽 모니터링 도구를 이용했다. 대안으로 애저(Azure) IaaS를 호스트로 이용할 수 있다. 애저 갤러리에서 컨테이너를 지원하는 윈도우 서버 2016 코어 이미지를 입수할 수 있다.

가상 머신을 다운로드 받으면, 스크립트가 아카이브를 풀어 하이퍼-V 가상 머신을 설정한다. 그리고 다운로드 스크립트를 호출할 때 설정한 비밀번호로 실행된다. 하이퍼-V에 기본 탑재된 뷰어로 VM을 연결할 수 있다. 그러나 먼저 VM을 종료한 후, 하이퍼-V 가상 스위치에 연결하는 것이 좋다.

최초 이미지는 기본적인 윈도우 서버 코어 컨테이너다. 때문에 애플리케이션 일부로 사용하기 전에 파일이나 서비스를 추가할 필요가 있다. 파일을 추가하면, 도커 명령어로 새 이미지를 만들 수 있다. 그러면 새 컨테이너를 이용할 준비가 된 것이다.

이미지에서 컨테이너를 생성할 때마다 새 파일 시스템을 인스턴스화 한다. 다시 말해, 컨테이너를 폐기하면 컨테이너에 저장된 데이터가 파괴된다는 의미다. 물론 외부 파일 시스템이나 다른 애플리케이션, 서비스에 저장한 파일은 해당되지 않는다.

마이크로소프트의 윈도우 서버 컨테이너 & 도커 퀵스타트(Quick Start on Windows Server Containers and Docker)는 단계별로 도커 명령어로 새 이미지를 만들고, 컨테이너화 한 웹 서버를 외부 네트워크에 연결한다. 아주 쉬운 도구다. 리눅스나 윈도우 개발자 노트북에서 도커를 이용한 경험이 있다면, 이런 프로세스가 친숙할 것이다.

그러나 보편적인 도입을 위한 준비가 완료된 상태는 아니다. 아직 윈도우 서버 2016을 지원하지 않는 도커 명령어가 있기 때문이다. 예를 들어, ‘diff’를 이용할 수 없다. 또 컨테이너를’restart’할 수 없으며, ‘pause’ 및 ‘unpause’ 지원에도 의문이 남아있다.

기타 부분적으로만 기능하는 명령어들도 있다. 일부 옵션만 작동되는 ‘build’가 여기에 해당된다. 그러나 관리자 비밀번호를 설정하고, 올바른 방화벽 포트를 열었다면, 원격 데스크탑(Remote Desktop)을 이용해 컨테이너에 연결할 수 있다.




2015.09.15

프리뷰 | 윈도우 서버 2016에서 '도커' 실행해보니

Simon Bisson | InfoWorld

데이터센터에 애플리케이션을 전달하는 방법이 바뀌고 있다. 서비스형 모델로 변화하고 있는데, 이는 데브옵스(devops) 문화로의 이동과 밀접한 관련이 있다. 빌드 툴을 이용해 새 애플리케이션, 업데이트 된 애플리케이션을 전달하는 지속적인 전달 프로세스 구현이 그 중심에 자리하고 있다.

이와 함께 중요한 역할을 하는 것이 또 있다. 기본 OS에서 애플리케이션과 서비스를 추출해, 보안 사일로에서 운영하면서 기본 OS 서비스만 이용할 수 있도록 만드는 도커(Docker) 같은 컨테이너 기술이다.

동일한 호스트에서 여러 컨테이너를 실행시킬 수 있으며, 서로 보호가 되는 것이 특징이다. 컨테이너의 경우 하이퍼바이저 기반 가상화와 달리 별개의 OS 이미지가 필요 없다. 또 IaaS 클라우드 등 가상화 인프라에서도 아무 문제 없이 실행시킬 수 있다.

-> 리뷰 | 도약을 눈앞에 둔 '도커(Docker) 1.0'
-> 도커 101 : 가장 중요한 질문 8가지
-> "기업의 소프트웨어가 바뀐다" 3대 동력
-> 기고 | 개발 환경의 혁신! '도커' 따라잡기

사실 컨테이너는 신기술이 아니다. 그 역사가 메인 프레임 시대로 거슬러 올라간다. 이는 프리BSD와 오픈솔라리스(OpenSolaris)의 핵심 기술이었다. 또 리눅스 커널에서 오랜 기간 지원했던 기술이기도 하다.

그러나 도커 컨테이너는 엔진의 '단순함'을 바탕으로 현대적인 데이터센터에 없어서는 안될 요소가 됐다. 도커는 쉬운 명령어 줄과 잘 정립된 API를 갖고 있다. 덕분에 리눅스는 물론 (이제는) 윈도우에서도 컨테이너를 구축, 공유, 관리할 수 있게 됐다.


Credit: Thinkstock

윈도우 서버와 도커
도커의 윈도우 툴은 상당 기간 존재해왔다. 그러나 윈도우 7과 윈도우 8.1만 지원했다. 마이크로소프트는 윈도우 서버에서도 도커를 지원하겠다고 약속했으며, 2015년 4월 빌드(Build) 개발자 행사의 무대에서 마침내 이를 시연해 보였다. 그리고 몇 주 전에는 윈도우 서버 2016 테크니컬 프리뷰 3용 버전을 처음 공개했다.

필자는 지금 테스트 서버에서 최신 윈도우 서버 2016을 운영하면서, 윈도우 서버 2016의 컨테이너 지원 방식을 조사하고 있다. 한 가지 주의점이 있다. 풀 UI 윈도우 서버에 파워셀(PowerShell) 컨테이너 cmdlets를 설치할 수는 있지만 권장하지는 않는다.

마이크로소프트가 서버 코어(Server Core)용 WIM(Windows Imaging) 디스크 이미지를 포함시키고, 표준 인스톨러와 함께 윈도우 서버 2016 TP3 다운로드 형태로 컨테이너를 지원하는 이유가 여기에 있다.

테스트 서버를 구축하면서 윈도우 서버 2016의 지원 프로세서 요건이 까다로워졌다는 사실을 발견했다. 하이퍼-V에 SLATA(Second Level Address Translation)이 필요하다. 이로 인해, 테스트 서버 중 하나를 사용할 수 없게 됐다.

서버코어 WIM을 하이퍼-V VM으로 바꾸거나, 베어메탈 서버에 윈도우 서버 2016을 구성할 수 있다. 그러나 MSDN에서 사전 설정된 하이퍼-V 이미지를 다운로드 해 윈도우 서버 컨테이너를 구축하는 것이 훨씬 쉬운 방법이다. 파워셸 스크립트로 이미지를 다운로드 해 설치하고, VM을 구성하는 것이다.

다운로드 스크립트는 진행 상태를 알려주지 않는다. 약 6GB 파일이기 때문에 다른 툴을 이용해 다운로드 할 때 주의를 기울일 필요가 있다. 필자의 경우 인터넷 연결 상태가 아주 불안정했기 때문에 작업 관리자(Task Manager)의 네트워크 트래픽 모니터링 도구를 이용했다. 대안으로 애저(Azure) IaaS를 호스트로 이용할 수 있다. 애저 갤러리에서 컨테이너를 지원하는 윈도우 서버 2016 코어 이미지를 입수할 수 있다.

가상 머신을 다운로드 받으면, 스크립트가 아카이브를 풀어 하이퍼-V 가상 머신을 설정한다. 그리고 다운로드 스크립트를 호출할 때 설정한 비밀번호로 실행된다. 하이퍼-V에 기본 탑재된 뷰어로 VM을 연결할 수 있다. 그러나 먼저 VM을 종료한 후, 하이퍼-V 가상 스위치에 연결하는 것이 좋다.

최초 이미지는 기본적인 윈도우 서버 코어 컨테이너다. 때문에 애플리케이션 일부로 사용하기 전에 파일이나 서비스를 추가할 필요가 있다. 파일을 추가하면, 도커 명령어로 새 이미지를 만들 수 있다. 그러면 새 컨테이너를 이용할 준비가 된 것이다.

이미지에서 컨테이너를 생성할 때마다 새 파일 시스템을 인스턴스화 한다. 다시 말해, 컨테이너를 폐기하면 컨테이너에 저장된 데이터가 파괴된다는 의미다. 물론 외부 파일 시스템이나 다른 애플리케이션, 서비스에 저장한 파일은 해당되지 않는다.

마이크로소프트의 윈도우 서버 컨테이너 & 도커 퀵스타트(Quick Start on Windows Server Containers and Docker)는 단계별로 도커 명령어로 새 이미지를 만들고, 컨테이너화 한 웹 서버를 외부 네트워크에 연결한다. 아주 쉬운 도구다. 리눅스나 윈도우 개발자 노트북에서 도커를 이용한 경험이 있다면, 이런 프로세스가 친숙할 것이다.

그러나 보편적인 도입을 위한 준비가 완료된 상태는 아니다. 아직 윈도우 서버 2016을 지원하지 않는 도커 명령어가 있기 때문이다. 예를 들어, ‘diff’를 이용할 수 없다. 또 컨테이너를’restart’할 수 없으며, ‘pause’ 및 ‘unpause’ 지원에도 의문이 남아있다.

기타 부분적으로만 기능하는 명령어들도 있다. 일부 옵션만 작동되는 ‘build’가 여기에 해당된다. 그러나 관리자 비밀번호를 설정하고, 올바른 방화벽 포트를 열었다면, 원격 데스크탑(Remote Desktop)을 이용해 컨테이너에 연결할 수 있다.


X