System Compleat.

'YZCerberos'에 해당되는 글 231건

  1. Cloud, HPC, GPU 11
  2. 오픈소스에 대한 생각
  3. 미디어 노출
  4. Cloud Build? Build in Cloud?
  5. Movie

Cloud, HPC, GPU

Techs
( younjin.jeong@gmail.com , 정윤진)

들어가기에 앞서, 각 1, 2 와 같은 내용의 구분은 별 의미 없으며, 내용이 길어 고개 하나 넘고 쉬어가라는 의미에서 넘버링 하였음을 알린다. 으음.. 그리고 일부러 중간중간 그림을 많이 넣었는데 읽는데 방해가 될 수 있음을 인지 하시라.
물론, 당연히 관심있는 분들만 읽어주시길.


누구냐..넌!


Image from : http://t3.gstatic.com/images?q=tbn:ANd9GcQp63GW_-iGDkvhIJKN5vpXJpA8VBJ0ulVKi9rZyQ7uoSat2OXj&t=1

1

기존의 전통적인 인프라들은 정말로 많은 요구사항들을 충족해 왔다. 거대했던 메인프레임들은 크레이가 만들어 내는 수퍼컴퓨터의 발전을 가져왔으며, 피씨와 인터넷, 인트라넷의 눈부신 발전은 리눅스의 등장과, 이 리눅스로 만들어내는 기존의 수퍼컴퓨팅의 아성을 뛰어넘는 수퍼컴퓨팅의 또 다른 형태, 클러스터링을 발전시켜왔다.

돈없어서_이러는거_아님.jpg


Image from : http://www.clustercompute.com/images/image4.jpg


10년전, 이제 막 Jazz 나 당대 최고의 그래픽 카드인 Matrox 제품군들을 뒤로하고 3D 그래픽 카드들이 보급되기 시작했다. 이들은 게임의 발전과 함께 피씨 시장에서 늘 주요한 구성품목으로 자리잡아 왔으며, 기존의 해상도와 색 표현력을 위시한 2D의 세상을 넘어 화려하고 아름다운 3D 세상을 열게된다. 퀘이크, 언리얼 등의 인기있는 3D 기반 게임의 엔진들이 게임시장의 중요한 위치를 선점하게 되었고, 이러한 게임 및 게임에 사용되는 3D 영상의 제작을 위해 사용되는 쿼드로같은 그래픽카드들은 디자이너가 사용하는 워크스테이션에 붙어 엄청난 프리미엄의 가격과 함께 날개돋친듯 팔려나갔다. 이제는 그저 보급형 PC의 메인보드에 붙어있는 그래픽 칩셋조차 3D 가속을 처리하는 별도의 GPU를 가지고 있으며, 보다 나은 영상의 게임을 즐기고자 하는 게이머들에 의해 GPU를 중심으로한 그래픽 카드 산업은 어마어마하게 발전하여 현재에 이르렀다.

아아... 그시절의 클라우드 ㅠㅠ

Image From : http://premium.uploadit.org/dem2001/ff7epsxe01.JPG
(당시 3D 그래픽 카드가 없으면 분당 5프레임의 지옥을 경험해야 했다. 사진은 10여년 전의 Final Fantasy VII)

5년전 즈음 분자화학식의 계산을 위한 컴퓨팅에 GPU를 사용하는 라이브러리를 만들어 보자는, 당시로서는 세계적으로도 그다지 발전하지 못한 부분에 관심을 두었던 자그마한 회사의 제의가 있었다. 결국 지금 그 회사는 없지만, 그 당시의 아이디어는 이제 현실이되어 우리들이 쉽게 접하지는 못하는 분야에 널리 깔려있다. GPU가 CPU보다 부동소수점 연산이 뛰어나다는 사실은 굳이 여기서 언급하지 않더라도 많이들 알고 계시리라 믿는다.

한때 프로세서의 FPU (Floating Pint Unit, 부동소수점 처리장치)의 성능이 중요했던 시기가 있다. 아마도 펜티엄 프로, MMX 등의 인텔 기반 CPU 가 등장하던 시기였던 듯 한데, 이 제품들은 부동소수점 연산의 처리능력을 MIPs 수치와 함께 병렬 프로세싱이 가능한 형태의 SIMD 와 패키징하여 프로세서를 홍보하던 시절이 있다. 지금의 멀티 코어 시대에서는 사실 별 것 아닌것 같아 보이지만, 9년 전만 하더라도 이러한 프로세서를 2개 이상 박을 수 있는 메인보드와 걸출한 성능의 GPU를 가진 그래픽 카드, 4기가 정도의 램을 가진 워크스테이션은 모든 그래픽 하는 사람들, 또는 서버에 관심있었던 사람들에게 꿈의 머신이었다.(당시에는 64비트가 범용적이지 않았다) 조금 더 하자면 SCSI 를 사용하여 I/O 프로세싱을 CPU를 사용하지 않도록 하는 부분까지 추가하게 된다면, 당시의 물가에도 돈 500은 수월하게 깨졌으니까.

지난 시절을 회상하고자 이렇게 길게 서두를 뽑은건 아니다. 이제는 컴퓨팅 클라우드 이야기를 해 보자.



2

컴퓨팅 클라우드, 즉, 일반 서버의 기능을 클라우드에서 누려보자 하는 서버 인프라 그 자체를 클라우드로 제공하는 개념의 컴퓨팅 클라우드는, 사실 그 사용의 범위가 일반적인 웹 서비스를 사용하기 위한 용도 이상으로서 활용하기에는 쉽지 않다. 물론 현대의 거의 모든 고객 요구사항은 웹을 통해 이루어지고, 기존 웹의 3계층 구조(3계층 아니라고 따지지 말자. 잘 알지만 주제가 아니다.)를 어떻게 클라우드에 잘 반영하고 마이그레이션 해 내느냐에 따라 클라우드의 비용에 대한 효율성, 신축성이 이야기 될 수 있을 것이다. 이에 맞는 웹 어플리케이션의 설계도 중요한 과제지만, 이러한 내용은 이 포스팅의 주제는 아니다.

이러한 일반적인 컴퓨팅 클라우드를 HPC의 사용에 도입하려는 시도가 일부 있다. High Performance Computing 이라 불리는 이 수퍼컴퓨팅의 한 분야는, 사실 R&D를 하고자 하는 기반 기술을 가진 어떠한 기업이라도 관심이 있을법한 중요한 하나의 카테고리이다. 이 부분은 모든 산업의 기반이 되는 산업들에서 더욱 중요하게 취급된다. 예를 들면, 지금 손에 들고있을 일회용 재생 플라스틱 커피용기라던가, 지금 보고있는 모니터의 각 플라스틱 부품의 성분들, 또는 여러분의 몸이 지니고 있는 DNA등과 관계된 모든 산업의 기반 기술인 화학, 생물학, 유체역학, 이론물리학, 공기역학 더하여 양자역학등 모든 기초과학의 분야에 아주 필요한 기술이 IT에 들어오면 이러한 HPC 라는 분야가 되는것이다. 대다수는 이런 기술과 상관없다고 생각하겠지만, 타이어를 만드는 회사는 타이어의 원료인 고무를 어디서 구매한 어떤 재료와 어떻게 연소시켜 얼마만큼의 효율로 타이어를 생산해 낼 수 있는지는 매우 중요한 문제이다.  또는, 정유회사에서 어느 지역의 원유를 가져다가 어떻게 정제하여 어떤 비율로 고급유, 무연휘발유, 경유, 백등유 등을 얻어낼 수 있는지 역시 생산가와 소비자가를 가늠짓는 매우 중요한 요소가 된다. 물론, 이러한 가격들은 여러분이 실제로 비용을 지불하는데 아주많이 직접적인 영향을 끼치게 된다. 

요딴거의 계산에 쓰인다는 말

Image from : http://www.photon.t.u-tokyo.ac.jp/~maruyama/kikan2002/clustering.gif


문제는 이러한 부분에 필요한 계산들, 분자화학식을 계산해 내는 시스템을 준비하는것은 어마어마한 규모의 자금을 가지고 있는 회사, 또는 연구 단체가 아니면 불가능하다. 아니, 클라우드 컴퓨팅 이전에는 불가능 했다. 실제로 현재 국내의 각 대학들 중에서는 이러한 시스템들을 "베오울프" 프로젝트 이상으로 구비하고 있는 장소는 많지 않을 것이며, 일부 보유하고 있더라도 세월의 흐름에따라 그 성능이 현대의 기술이 요구하는 데이터량에 미치지 못할 가능성도 높다. R&D 분야가 언제나 그렇듯이, 항상 많은 돈이 들고 시간에 촉박하며 누가 먼저 깃발을 꼽고 특허를 따 내느냐가 중요한 부분이며, 따라서 이러한 부분의 지원을 위한 HPC 환경의 필요성은 기초과학이 필요한 모든 분야에 매우 중요하게 되는 것이다.

이런 부분에 종사하는 분들의 클라우드에 대한 관심이 높을것 같지만, 사실 나는 반대라고 본다. 이미 이 분야는 병렬 컴퓨팅의 끝이다. 현재 국내의 IT 분야에 종사하는 그 어느 누구보다, 물리엔진을 설계하는 분들을 제외하고는 이미 밥먹고 수학과 물리와 화학만 하시는 분들이 이런 HPC를 사용한 분산 컴퓨팅 환경에 익숙하다. 다량의 노드에 일종의 메타 데이터 형태인 계산식을 넣고 큐에 뿌리면, 배치 시스템은 이를 계산노드, 즉 컴퓨팅 노드에 뿌려서 분산시켜 계산하고 그 결과를 얻어내고, 다시 모아서 데이터베이스 또는 필요한 데이터 형태로 바꾸어 스토리지에 넣는다. 최근의 클라우드 컴퓨팅에 익숙하신 분이라면 잘 알고 있을 Map/Reduce 의 구성은 이미 이 분야에서 오래전 부터 사용해 왔던 기술들인 것이다. 그렇기에, 일반 CPU만을 게스트에 쪼개어 사용하는 형태의 구성은 만약 그 계산이 빡세게 돌아가는 분야라면, 그다지 매력적으로 들리지는 않을 것이다. 하지만, 클라우드가 구현하고 있는 클러스터링의 방식은, HPC의 요구사항과 딱 맞아 떨어지는 것이 사실이며, 여기에 GPGPU와 같은 기능을 부여한 VM이 클라우드에서 제공된다면 이제 이야기는 달라진다.  두둥.



3

상황이 이럴진데, HPC의 요구사항을 반영한 클라우드의 서비스가 생기지 않을리 없다. 이들은 일반 컴퓨팅 클라우드 서비스보다는 그 수요가 낮지만 높은 비용을 과금 할 수 있기 때문에, 전략적으로 시장의 수요를 잘 예측하고 공급한다면 클라우드 서비스 공급자 입장에서는 제품의 다양화를 꾀할 수 있기에 분명 매력적이다. 그리고 연구 개발 기관에서는, 수많은 서버를 직접 구매하는 대신 필요할때 공급자로 부터 컴퓨팅 노드를 "빌려서"사용할 수 있기에 원래 할 수 없었던 것이 "가능" 해 지며, "저렴" 하다고 느끼게 된다. 물론 한국은 그 기초과학의 수요가 낮은 만큼 그 시장이 미국이나 일본만큼 크지는 않을 것이다.  하지만, 그 어느 기업이 이런 R&D 분야에 뒤떨어 지고 싶을까?

많은 기업이 보안상의 이유로 인하여 클라우드를 그들의 환경안에 자체적으로 구축하고 싶어할 수 있다. 일반적인 웹 서비스는 R&D 분야보다 그 보안성이 뛰어나다고 말하긴 힘들다. 분명하진 않겠지만 Shell 과 같은 국제적 원료기업은 이러한 전산화된 부분의 지원에 Aspen 등의 기업이 만들어낸 특수한 소프트웨어와 인재를 사용한다. 수십만 배럴의 원유를 구매하여 제품 생산 비율을 1% 이상이라도 높이려는 기업의 노력은 그 비용면에서 합당하다. 따라서 그들은 그 비용의 규모에 맞는 시스템들을 구비하여 제품의 개발에 사용하며, 그것이 클라우드 기반이던, 아니면 물리적 수퍼컴퓨팅의 클러스터링 환경이건 그에 걸맞는 규모로 경쟁사들과 치열하게 경쟁하고 있음이 분명하다.

Image From: http://www.sodahead.com/living/whats-your-fantasy-gift-this-year/question-1377465/

삼천포로 빠졌다.  따라서, 많은 기업이나 연구기관, 대학등은 아마도 그들의 전산실의 기존 자산 또는 일반적으로 쉽게 구할 수 있는 저렴한 하드웨어 (Commodity Hardware)를 사용하여 이러한 HPC 환경을 만들고 싶을 것이다. 본질적으로 이러한 부분에 굳이 가상화를 사용할 필요는 없지만, 또는 가상화를 써서 굳이 계산 속도를 떨어뜨릴 필요는 없겠지만, 중요한 것은 바로 "서로 다른 분야" 의 합목적성 때문에 가상화를 기반으로 한 일반적 컴퓨팅 클라우드의 모델을 도입하는것이 보다 이익이 될 수 있다는 점이다.

대학을 기준으로 이야기 해 보자. 대학에는 생물학과, 물리학과, 뭐 심지어는 자동차 학과에서의 충돌 계산을 위해서라도 이러한 HPC 환경이 필요하게 된다. 하지만 이 모든 학과를 위해 전산실에 HPC를 각각 구성해 주는 것은 아무래도 비용면에서 아리송 하게 된다. 아마도 행정담당은 "야 그거 그냥 걔네꺼 같이 쓰면 안돼?" 의 카운터 펀치를 날릴 것이 거의 확실하다고 본다. 이러한 환경에, 가상화를 사용한 클라우드의 구조를 가져다가 구성하되, 이 각각의 VM들이 GPU를 통한 연산을 수행할 수 있는 컴퓨팅 노드의 구조를 가진다면 어떨까? 물리학과는 그들이 필요한 기본 배치 시스템과 이런 배치 시스템과의 연동이 구성된 그들만의 소프트웨어/라이브러리를 설치한 이미지를 만들어 두고, 필요할 때 필요한 수량만큼 인스턴스를 생성하여 작업하고 또 계산이 끝난 다음 인스턴스를 삭제해 버린다면, 기존의 고정된 물리적 환경보다는 그 유연성이 높지 않을까?

이 연장선 상에서, 나는 각각의 HPC 의 형태가 요구하는 시스템의 구성이 서로 많이 다르지 않음을 알게 되었다. 드림웍스가 쿵푸팬더를 만들기 위해 사용했던 렌더 팜이나, MPICH2 라이브러리를 사용하여 계산식을 처리하는 시스템이나, Q-Chem이나 PC_GMESS, Gaussian 을 사용하는 화학식 계산에 필요한 인프라들의 구성은 비용 합리성 측면에서 그 컴퓨팅 노드로 사용될 일반적인 하드웨어의 형태가 크게 다르지 않다. 또한 이들에 필요한 네트워크 인프라의 요구사항도 거의 대동소이 하다. 이러한 시스템에서는 웹의 REST 구조와 같은 특수한 구성은 그다지 의미가 없으며, 전통적인 수퍼컴퓨팅에서 사용되던 잡/큐/배치/매니지먼트 시스템, 그리고 각 연구형태에 맞는 소프트웨어가 설치된 컴퓨팅 노드일 뿐이기 때문이다.

이러한 인프라의 아키텍처가 비슷하다는 점은, 다수의 사용자에게 동일한 물리적 인프라를 통해 가상화로 서비스하게 될 경우 많은 잇점을 가져다 줄 수 있다는 의미가 된다.

여러분이 만약 CUDA를 사용한 무언가를 만들고 있다면, 이러한 효과는 배가 될 것이다.  그런데, 이런 생각을 과연 나만 하는 것일까?  당연히, 아니다.  이런 분야를 노리고, 이러한 환경으로 구성된 클라우드가 이미 실재한다. 다음의 업체들이 바로 그들이다.

  • Amazon
  • NIMBIX
  • peer1 hosting
  • Penguin Computing
궁금하신 분들은 직접 검색해 보면 많은 정보를 얻을 수 있을 것이다. 또는, 다음의 링크를 참조하셔도 좋다.
http://www.nvidia.com/object/gpu-cloud-computing-service.html

링크에서 볼 수 있듯이, 이들은 모두 NVIDA의 Tesla 기술을 사용한다. 이 Tesla 기술이 적용된 하드웨어들은 다음의 링크에서 확인이 가능하다.
http://www.nvidia.com/object/preconfigured-clusters.html



4

단일 노드에서 리눅스를 기반으로 한 Tesla 기술이 반영된 장치를 붙인 물리적 머신을 구성하는 것은 어렵지는 않다. 다만, 이를 "가상화" 하고, 가상화된 VM 안에서 이를 CUDA를 사용하여 장치에 엑세스 하게 하는것은 쉽지 않다. 이는 GPU에 대한 Passthrough를 하이퍼바이저에서 지원해야 하고, GPU에서 SLI Multi-OS 가 가용해야 한다는 조건이 충족되어야 한다. Para Virtualization 형태로의 지원은 아직까지는 힘들어 보이며, Full Virtualization을 사용해여 일부 구현이 가능하다. Citrix Xen 5.6 에서 이를 지원하기는 하지만 실제 내손으로 테스트 해 본적은 아직 없다.

꽤_비싼_워크스테이션.jpg

Image From: http://www.microway.com/images/Octoputer_Tesla1000px.png


Citrix 에서 XenServer 5.6 부터 지원하는 방법은, Multi-GPU 를 가진 일부 GPGPU 장치의 각 GPU를 개별 가상 머신에 1:1 로 할당하는 방식으로서, 가상머신에서 GPU로의 직접적인 접근을 허용한다. 이는 Multi-GPU Passthrough 로서, 일반적인 VT 기술과는 달리 Full Virtualization 을 사용하여 하드웨어 리소스를 가상머신에 직접 할당함을 의미한다. Citrix는 윈도우 게스트에서 HDX 3D Pro 에서 제공하는 코덱을 사용하여야 제대로 사용 할 수 있다고 말하고 있으며, 리눅스 게스트에도 이러한 직접 엑세스는 제공하지만 아직까지 코덱을 별도로 제공하고 있지는 않는다고 설명한다. 현재 가용한 하이퍼바이저가 Citrix Xen이 유일하기 때문에, 아마존이 HPC 클라우드의 구성에 Xen을 사용했다는 말이 심심치 않게 들린다. PCI Passthrough 에 대해 궁금하신 분들은 맨 아래의 링크를 참조하시라. 역시 이런 문서는 IBM이 잘만든다.

아무튼, 이런 환경의 구성을 위해서는 관련 정보의 양과 하드웨어의 선정, 하이퍼바이저의 선정이 매우 중요하다. 물론 이들은 일반적인 클라우드를 구성할때도 중요한 내용이긴 하지만, GPGPU를 사용한 클라우드에서는 이런 요구사항이 충족되지 않으면 자칫 서비스 자체를 구성하지 못하게 될 가능성도 있기 때문에, 또한 아직까지는 범용 기술이 아니기 때문에 매우 주의를 요한다. 대단위의 서버를 구매하기 전에 가용성을 테스트 하기위한 방법에서는, 적어도 2대이상의 머신을 기반으로 시작해야 할 것이다.


가상화가 굳이 필요할지에 대해서는 각 기관이나 단체별로 의문을 제기 할 수 있겠지만, 일반적인 컴퓨팅 클라우드의 사용성을 위해서라도(굳이 HPC로 사용되지 않더라도) 가급적이면 가상화를 구현하는 것이 좋을 수 있다. 다만 Shared Storage를 사용하는 형태를 고집할 필요는 전혀 없으며, 오히려 스크래치를 위한 로컬 디스크가 중요하게 고려 되어야 한다. 이러한 HPC가 요구하는 그야말로 고성능의 조건에 부합하기 위해서는, 가상화를 하더라도 그 가상화의 비율이 일반 컴퓨팅 클라우드 보다는 현저히 낮을 것이라는 점이다. 이는 I/O에 대한 요구사항과 게스트OS가 많아지면 많아질 수록 계산 자체가 느려질 확율이 있기때문에, 게스트 OS가 많아지면 많아질 수록 Full Virtualization 을 사용해야 하는 강제성으로 인해 그 성능의 저하가 심각해 질 것이기 때문이다. 잊지말아야 할 점은, 컴퓨팅 클라우드는 원래 대부분의 시간동안 Idle 상태인 시스템 자원을 가급적이면 높게 사용하도록 분할하자는 취지였지만, HPC의 경우 계산을 하는 대부분의 시간동안 Idle 상태 따위는 없을 것이기 때문이다.  이러한 HPC만의 고사양에 대한 요구가 클라우드에서 어떻게 반영되었는지는 다음의 아마존 HPC 인스턴스 오퍼링에서 확인 할 수 있다.

The Cluster Compute instance family currently contains a single instance type, the Cluster Compute Quadruple Extra Large with the following specifications:

23 GB of memory
33.5 EC2 Compute Units (2 x Intel Xeon X5570, quad-core “Nehalem” architecture)
1690 GB of instance storage
64-bit platform
I/O Performance: Very High (10 Gigabit Ethernet)
API name: cc1.4xlarge

The Cluster GPU instance family currently contains a single instance type, the Cluster GPU Quadruple Extra Large with the following specifications:

22 GB of memory
33.5 EC2 Compute Units (2 x Intel Xeon X5570, quad-core “Nehalem” architecture)
2 x NVIDIA Tesla “Fermi” M2050 GPUs
1690 GB of instance storage
64-bit platform
I/O Performance: Very High (10 Gigabit Ethernet)
API name: cg1.4xlarge

일반적인 하드웨어에서, 48GB 이상의 메모리를 넣는것은 쉽지 않다. 따라서 위와 같은 아마존의 오퍼링을 두고 살짜쿵 추리를 해 보자면, Multi-OS 지원이 가능한 SLI 형태의 GPGPU가 최소한 2개 이상이며, 48기가의 메모리와 10G 이더넷 인터페이스를 가진 하나의 물리적 머신으로 2대 정도의 게스트를 수용한다고 볼 수 있겟다. 그냥 경험에 비추어 볼때 쿼드코어 2개 정도의 프로세서에서 이러한 고성능의 I/O를 지원하기 위해서는, 3개 이상의 게스트를 수용하는 것은 하드웨어 비용과 조합의 측면에서 맞지 않아 보인다. 아무리 GPU가 계산의 많은 부분을 담당하더라도 CPU와 Ram이 노는 건 아니기 때문이다. 아니면, 4개의 GPGPU를 가지고 대당 4개의 게스트 OS를 지원할 가능성도 있기는 하다. 이럴때의 물리 서버 대당 비용은 이미 Commodity HW라고 말하기 어려운 정도의 비용이 된다. 2U 서버를 Full 랙에 한 8칸 비우고 꽉 채운다고 가정하면 대략 17대, 10G 스위치가 24포트 하나에, 랙당 가용한 전력이 보통 미국이니까 100V 15A 정도라면....  아.. 직업병 나왔다. 암튼 뭐, 실제 정확한 구성은 아마존 엔지니어만이 알겠지만, 적절한 가격 선상에서 대략 2U서버하나에 전술한 바와 같은 서버를 적절한 양으로 구성한 것으로 보인다.


아무튼 이러한 점은 Private 클라우드를 구현하려는 기업이나 HPC 클라우드를 공급하는 기업 모두가 신중하게 고민해야 할 부분이기도 하다. HPC는 배치시스템을 통해 서로 다른 계산을 꾸준히 큐에 넣어 지속적으로 돌려줄 때 의미가 있다. 필름회사가 렌더팜을 직접 구성하게 된다면, 이는 자신들의 필름을 위한 렌더링이 끝나게 되면 이 비싼 시스템이 100% 놀아야 하게되는 단점이 있는 것이다. 따라서 지속적인 요구 사항이 있는 경우가 아니면, 이런 방법을 사용하여 직접 시스템을 구축하는것은 대단한 자산의 감소를 불러올 수 있음을 인지해야 한다.


HPC의 특성상, 클라우드의 가상화 개념 대신 자동화를 사용하여 구성 하는것도 가능할 것이다. 마치 필요한 OS를 수분만에 갈아치울 수 있는 노턴의 고스트와 같이, 필요한 때에 대상 머신을 순식간에 필요한 형태로 갈아 치우는 것은 이러한 가상화를 도입 하던지 하지 않던지 중요하다. 가상화를 사용하면 템플릿이나 이미지를 통해 비슷한 기능을 수행 할 수 있을 것이지만 아마도 자동화 도구 없이는 좀 뻑뻑할 것이다. 하지만 이런 자동화 만으로 HPC를 구성해서 고객에게 할당 하는 것은, 아무래도 그 사용성이나 서비스의 관리면에서 기존의 호스팅 환경과 다를바가 없게 된다. 즉, 가상화 없이 이러한 컴퓨팅 환경은 유연성이 떨어진다는 말이 된다.

국내에서 CUDA를 활용한 HPC가 현재 얼마나 필요한지는 모르겠다. 하지만 중요한 것은, 이 HPC가 가지는 기능성이 굳이 GPGPU를 통해서만 고비용을 들여 확인 해 볼 것이 아니라, 여러분이 수행중인 일반적인 계산을 위한 컴퓨팅 환경을 필요한 경우 기존의 컴퓨팅 클라우드에 적용해 시험해 보는것이 반드시 필요할 것이다. 만약 이에 대한 결과가 충분히 합리적인 것이라면, 굳이 이런 시스템을 자사에 구현 하거나, 또는 Private 클라우드에 굳이 Tesla 기술을 도입하여 고비용으로 구축할 필요는 없을 것이다. 아니면, 위의 아마존의 예에서 처럼 HPC만을 위해서라면 게스트 OS의 오케스트레이션에서 물리적 서버당 가상화 서버의 비율을 낮추는 방향으로 요구를 충족시키는 방법도 있을 수 있다. 아무튼 중요한것은, 필요한 소프트웨어의 성능을 KT 클라우드나 아마존 클라우드 인스턴스 또는 구성하고자 하는 Private Cloud에 사용될 컴퓨팅 노드의 가상화를 사용하여 환경을 구성하여 테스트 하는 것이다.


쿵푸팬터2를 예로 들면, 약 56만개의 프로세서가 있어야 1시간 안에 렌더링을 마칠 수 있다고 한다. 사실 이런 규모의 프로세서를 직접 구매한다는건 거의 미친짓에 가깝기 때문에, 렌더링에 필요한 클러스터 환경을 클라우드에 구성하고, 인스턴스를 약 100여개 정도 생성한 후에 샘플 테스트로 나오는 결과값을 추려보면 얼마의 비용이 필요한지, 얼마의 시간이 필요한지에 대한 챠트를 구성해 볼 수 있을 것이다.  이를 실제 물리 머신 또는 Tesla 머신에 적용해 보고 나오는 시간과 비교했을때의 결과가 합리적이라면, 여러분은 동일한 작업을 수행하기 위해 필요한것이 무엇인지 알게 될 것이다.

Time vs Money

Image from: http://www.dollarthug.com/wp-content/uploads/2010/05/time-vs-money.jpg


5

어쨌든, CPU 보다 GPU를 중점적으로 사용하는 컴퓨팅 환경은 엄청난 매력이 아닐 수 없다. 또한 이를 가상화 하여, 클라우드로서의 사용성을 부여하게 된다면 이는 그야말로 대다수의 기업에게는 눈이 번쩍 뜨이는 달콤한 기술이 될 것임에 분명하다. 하지만, 그 사용 목적성을 생각해 보면 아마존과 같은 퍼블릭 클라우드의 형태 보다는, 각 기업에서 스스로 이를 구축하여 사용하고자 하는 요구가 더 높을 것이다. 이러한 요구사항들에 비추어, 반드시 GPGPU를 사용한 클라우드 환경의 구성이 필요하다면, 다음의 내용을 중요하게 고려해야 할 것이다.

  • 사용중인 어플리케이션의 CUDA 지원 여부
  • 하이퍼바이저의 Multi-GPU Passthrough 지원 여부
  • 구매하려는 그래픽 카드의 Multi-OS Enable 여부
  • 사용중인 어플리케이션의 CPU 요구 사항 (일반적으로 1개의 VM에 적어도 1개의 vCPU를 할당해야 할 수 있다)
  • 사용중인 어플리케이션의 Disk I/O 요구사항
  • Infini Band 또는 10G 네트워크
  • 작업 결과물을 저장 할 수 있는 스토리지 요구사항 (사이징, 안전성 기타. )

현재까지로서는, GPU에 대한 Passthrough 를 지원하는 하이퍼바이저는 Xen 밖에 없어보인다.(맥에서 사용하는 패러랠즈도 지원 하는거 같기는 하다.) 하지만 이런 인프라의 구성은 사용중인 어플리케이션에대한 전문가 및 인프라 전문가, 그리고 CUDA 환경에 대해 높은 이해를 가지고 있는 여러 분야 사람들의 협업이 필요할 것이다. "HPC 클라우드 구성용 CD한장 원큐 패키지" 와 같은 오픈소스의 일반 모델로 자리잡아 일반인이 리눅스 깔아보듯이 접근하려면 많은 시간이 필요할 것이다. 이런 부분이 오픈소스의 특징이기도 하지만, 구성하는데 필요한 모든 재료는 이미 주어졌다.

HPC 클라우드는, IaaS 클라우드 서비스의 많은 형태 중 단 한가지 일 뿐이다. 국내에서 이 단계로까지의 서비스를 제공하려는 사업자가 있을지는 모르겠지만, 이는 분명 어디엔가는 필요한 인프라일 것이며, 고객에게 Private HPC 클라우드로서 Farm을 제공하는 형태의 서비스가 가능하다면, 아마도 기존의 많은 연구기관들을 유치 할 수 있지 않을까 하는 생각을 해 본다.


부연적으로 한가지 더 말하자면, 이는 이 글을 쓴 이유이기도 한데, 이러한 접근이 쉬운 환경이 대학생이나 연구원들에게 공개적으로 열리게 되면 아무래도 기존보다는 훨씬 더 좋은 연구 인프라의 확보가 가능하지 않을까 생각해 본다. 사업 하고 싶어도 서버 살 돈이 없었던 사람들에게 컴퓨팅 클라우드가 유용했던 것처럼, 이러한 HPC 클라우드는 많은 기초과학 분야, 그리고 이런 과학을 공부했던 학도들이 나중에 연구소에 뛰어들게 되었을 때, 보다 경쟁력 있는 제품을 만들어 낼 수 있는, 장기적인 기반이 되지 않을까 생각해 본다. 기술이 보다 많은 사람에게 저렴한 가격으로 열려있을 때, 이러한 환경을 바탕으로 발생된 새로운 기술로 인해 모든 사람이 더 잘 살수 있는, 또 누군가에게는 성공의 열쇠가 되는 기회가 제공 될 수 있지 않을까.

Nella Fantasia

Image from: http://postfiles7.naver.net/20100727_102/sweetgirl28_1280227194717lvcaW_gif/%EB%AA%85%EA%B3%A1_%EB%84%AC%EB%9D%BC%ED%8C%90%ED%83%80%EC%A7%80%EC%95%84_nella_fantasia__sweetgirl28.gif?type=w2


PCI Passthrough 에 대한 내용
http://www.ibm.com/developerworks/linux/library/l-pci-passthrough/

Citrix 5.6 Multi-GPU Passthrough feature
http://support.citrix.com/article/CTX125574

NCSA Tesla Linux Cluster
http://www.ncsa.illinois.edu/UserInfo/Resources/Hardware/Intel64TeslaCluster/

TESLA
http://www.nvidia.com/object/preconfigured-clusters.html

클러스터를 사용한 수퍼컴퓨팅 디자인 - 뉴 멕시코 컴퓨팅 센터
http://nmcac.net/encanto.html

쿵푸팬더와 HPC, PDF 문서
http://science.energy.gov/~/media/ascr/pdf/benefits/Hpc_dreamworks_072809_a.pdf

렌더팜을 만드는 방법, Tom's Hardware
http://www.tomshardware.com/reviews/render-farm-node,2340.html

Amazon HPC Cloud & Case Study
http://aws.amazon.com/ec2/hpc-applications/
NASA JPL(Jet Propulsion Lab)
http://aws.amazon.com/solutions/case-studies/nasa-jpl/
Harvard Medical School
http://aws.amazon.com/solutions/case-studies/harvard/





( younjin.jeong@gmail.com, 정윤진)

오픈소스에 대한 생각

Techs
( younjin.jeong@gmail.com, 정윤진 )


먼저 이 글은, 대규모 화 하지 않아도 되거나 분산이 필요한 만큼 서비스 요구가 크지 않을거라고 생각하는 회사의 관리자 분들, 또 오픈소스라면 나는 학을 띈다 라는 분들께 열람을 권고하지 않는다.  그런 분들은 또, 굳이 시간을 들여 열람하지 않으셔도 된다. 





저비용의 인프라스트럭쳐를 구성하다보면, 종종 신뢰의 한계나 구성상의 한계에 부딪치곤 한다.  하지만 이런 한계라는 것은 잘 살펴보면 동일한 기능을하는 메이저 벤더의 것들에 "비해" 한계로 인식되는 것이고, 그 대부분의 인식은 "유지보수" 라는 벤더로부터의 서비스를 받지 못한다 라는 사실 또는 공포감에 기인하는것이 대부분이다.  핸드폰 하나를 사도 A/S 를 걱정하는 의식이, 일일 접속자 만명 이하의 규모 서비스에도 벤더 서버와, 벤더 스토리지를 구성하게 만든다. 그리고 장비 유지보수료, 기술 유지보수료, 벤더 소프트웨어 라이센스를 꼬박꼬박 지불 하면서 안심한다.

사실, 좋은거 하나사서 잘 쓰고 싶은데 이게 고장나면 큰 문제이긴 하다. 그래서 혹시 고장날까봐 두개 세개 정도 사다보면 어지간한 웹 서비스 하나 하는데도 억소리는 쉽게 나기 마련이고, 문제는 이런 구매비용의 거의 10%의 비용을 매년 지불하게 됨에 따라, 기업 재무관련 담당자가 바뀌거나 구조조정 이야기가 나오면 이런 비용을 주네마네 말들이 많아지는게 바닥의 순리처럼 보인다.

전통적인 큰 기업의 입장에서는, 특히 요 몇년전까지는 이러한 인식이 별 문제가 되지는 않았다. 데이터베이스 관리자나 시스템 관리자는 쉽게 해고하기 힘들정도로 기업 인프라의 중요한 부분이 되어있으며, 이러한 인프라를 꾸준히 유지하는데 드는 비용이 적절하다면 딴지를 걸어야 할 이유도 없다.  네트워크는 네트워크 잘 하는 업체에 맡기면 되고, 스토리지는 스토리지 잘 하는 업체에, 서버는 서버 벤더에, 기반 소프트웨어는 각 벤더에, 심지어 5년전에 소스를 만들고 망해버린 업체가 준 어플리케이션의 유지보수도 능력있는 업체를 찾아 맡긴다.  이런 형태의 업무에서 자연히 한국인의 정서에 맞게 "갑"과 "을"이 생겨나고 그에따른 페단이라면 폐단이고 공생이라면 공생인 관계들이 나타나게된다.  이러한 게층적 구조역시 "서비스가 잘 동작하고 문제가 없다면" 이슈가 될 이유가 없다.  이 이야기는 결국 관리를 하는 "갑"의 사람이 다수의 "을"이 하는 일에 대해서 충분히 검증을 할 의무에 충실했다고 할 수 있으며, 기술적인 깊이는 아주 깊지는 않더라도  없지는 않아서 그들이 서버실에서 무엇을 하고 있는지, 어디를 검증해야 하는지에 대한 정도는 잘 알고 있다는 의미이기 때문이다.

하지만 이런 일반적인 갑과 을의 관계에서 크게 문제가 되는 경우가 있는데, 그게 바로 갑이 갑으로서 검증해야 할 일에 대해 "너무" 모르거나, 이로 인해 제대로 된 "을"을 선정할 능력이 없었다면 이건 서비스에 문제가 된다. 실제로 많이 발생하기도 하는 이런 문제는, 굳이 여기서까지 이야기 하지 않더라도 업장에서 근무하는 모든 분들이 아주 잘 알고 계신 것이기도 하다.  아무튼 이러한 검증 능력의 부재는 실질적으로 서비스에 해악을 끼치게 되고, 실제 사건이 터지면 모든 업체를 긁어모아 해결을 위한 압박을 가한다.  기본적으로 문제라는건 좀전까지 되던게 지금 안되는 것을 말하고, 이는 어디엔가 누군가 무언가를 바꿔서 잘못된게 생겨났고, 그로인해 해악이 생긴것이다.  이러한 해악으로 인해 실질적인 금전적 손해가 발생했다면, 이제 모여있는 을들은 자신들이 분명히 잘못한것이 아니면 함구한다.  대답해서 독박을 쓸 이유가 없으며, 다음번 계약에서 손해를 보고 싶지도 않기 때문이다.  따라서 운영과 서비스는 투명해 지지 못하고, 문제가 해결되지 않을 가능성도 있는채 시간은 흐른다.  이는 최악의 상황이고, 실제로 우리는 크건 작건 이러한 상황을 목도해 왔다.

실제 큰 기업의 데이터베이스나 코드를 보면 참 실소가 나오는 경우가 많다.  많은 분들이 보셨겠지만 어디가서나 흔하게 볼수 있는 Encoding 문제.  그렇다.  웃고 계신거 안다.  그래도 이 서비스들이 완전 붕괴하지 않고 그래도 동작하는 이유는, 어떻게든  갑과 을이 동작을 시킬 수 있었기 때문이다.  분산처리 같은거 크게 고민안해도 서버 2~3억 해서 사서 오라클 올리고 AIX 에 WAS 올리고 EMC붙이고 NAS 는 NetApp 사고 하면 되었다.  또 자회사를 두어서 자사의 인프라를 관리하게도 했다.  물론, 이런 경우  갑 - 을 의 2 Tier 가  갑 - 을 - 병 의 3 Tier 로 바뀌는 것 말고는 큰 변화가 없긴 하지만, 그래도 약간이나마 기술적인 필터링을 거치기 때문에 큰 사고들은 잘 안터진다.  아이폰 같은거 없었던 세상이면, 브라우저의 자바스크립트가 웹 소켓으로 통신을 하지 않고, HTML5 , CSS3 이런거 없었던 세상이면 이런 구조는 평생 큰 문제가 없는 구조긴 했다.  기업은 조직과 인력관리만 하면 되고, 기술 관리는 하지 않아도 되었기 때문에.

아이폰따위_없었더라면_우린_이미_천국.jpg


image from : http://farm4.static.flickr.com/3414/3347103456_44feb9d8f3.jpg


클라우드가 참 쓰나미처럼 화두다.  이미 모든 아키텍쳐를 검토한 기업들이 많을것이다.  물론 큰 기업은 아마도 일종의 TF에서 먼저 해외에서 눈으로 확인하고 테스트플랫폼 만들어 보고 하는 것들을 몇년 전에 끝냈을 가능성도 있기는 하다.

네임서버 돌리는데 이제는 아무도 벤더의 Bind 소프트웨어를 구매하지는 않는다.  웹 서버 하면 아파치는 엊그제 입학한 대학 새내기도 안다.  웹 프로그래밍 하면 PHP 정도는 기본이라고 생각하고, 이 외의 다른 언어에 숙련자라면 PHP는 구리다며 사용하기를 꺼려하는 경우도 많다.  눈치 빠른 분들은 아시겠지만,  그렇다 오픈소스 이야기 할려고 이런다. 
Trade off 의 의미는 많이들 아실꺼다.  기업에서 오픈소스를 선택한다면 반드시 버려야 하는 것이 하나가 있는데, 바로 A/S 다.  고쳐달라고 아우성 쳐봐야 아무도 고쳐주지 않는다. 몰랐던 부분에 문제가 발생하면 고칠수 없다는 공포가 의사결정권자의 온몸을 휘감는다.

전술 했듯이, 이제 뭔가 다양한 기능을 제공하는 웹서버를 설치해야지 하면 아파치를 설치한다.  개발에 입문했거나, 백엔드에 특화된 개발자가 아니라면 통상 아파치 - PHP - MySQL 정도를 표준으로 설치한다.  설치하면서 많은 문제에 직면하고, 웹을 통해 검색하여 해결을 찾는 시간들이 누적되면 이제 httpd.conf 는 쉽게 쓴다.  대강 어디서 어느 문제가 발생하는지는 굳이 관리자가 아니라 개발자도 안다.  관리자들은 이 좋고 무료인데다가 다중 플랫폼도 지원하는 이 웹 서버를 기존의 비싼 인프라, 즉 HP-UX, IBM p Series, SUN 등에 설치하고 돌린다.  근데 신기한건, 아무도 IBM 같은 회사에서 만든 회사의 웹 서버를 사용하지 않고 아파치를 사용해도 되는 서비스가 있으면, 아파치를 설치해도 이의를 제기하지 않는다. 

왜일까?  간단한 Search Engine 용 DB 를 MySQL 로 하고,  간단하게 사용 할 수 있는 웹서버를 Apache 로 하는데, 이것들은 A/S 가 없어서 그토록 우려하던 거의 ( 라이센스의 형태 때문에 '거의'라고 표현한다 ) 오픈소스들인데 말이다.

답은 쉽다. "잘 알기" 때문이다.  이 서비스에 대해 잘 알고 있다고 생각하고, 실제로 알고있으며, 어디에 어떻게 적용하면 되는지에 대해 알고 있기 때문에 "그래도 되는" 서비스에는 그렇게 하고 있는 것이다.  MySQL 이야 모르지만 아파치의 경우에는 실제 서비스의 크리티컬한 파트에서도 많이 사용된다.  물론 벤더 L4-7 같은 장치들이 있어서이기도 하지만.

잘 알고 있는 것들에 대한 두려움은 별로 없다.  또, 문제가 발생하면 대충 어떻게 웹에서라도 정보를 찾아서 고치는 방법을 찾아 내고야 만다.  비교적 흔하게 알려진 POSIX 나 System V 계열에서 발생 할 수 있는 Mutex 관련 이슈와 같이, 조금 어려운 문제도 해외에서 이미 경험한 사람들에 의해 조금의 영어를 읽기만 하더라도 찾아내서 고친사람들이 있어서 이제는 많은 사람이 알게 되었고, 쉽게 쓴다.

문제는, APM 만 안다. 그리고, 뒤늦게 선발주자들을 부러워 한다.  Facebook 이 카산드라를 써서 구현되었데. 우와 정말? 그거 빡세던데 고장나면 어쩌지?

10년전과 다르게, 오픈소스는 이제 당신이 원하는 또는 미래에 생각할 수 있는 거의 모든 것들에 대한 답안을 줄 수 있을 정도로 적어도 인프라 분야에서는 무엇을 선택해야 하는가에 대한 고민을 시간을 많이 들여 고민해야 할 정도로 발전해 있고, 준비되었다. 해외에서는 아무도 서비스를 처음 시작할때 고가의 유닉스를 사지 않는다.  차고에 친구들끼리 모여서 서비스를 만드는데, 그런 서버를 어디서 펀딩을 받지 않는 이상 구매 할 리가 없다.  펀딩을 받더라도 그돈으로 고가의 장비를 구입하면, 투자 회수 당할지도 모른다.   근데 우리나라는 돈이 참 많은지 그런 서버들을 아주 잘 산다.


나 어릴때만 하더라도 이런소리 항상 들었다. "배워서 남주냐"  "아는것이 힘".  환경이 너무 좋아져서 그런가, 네이버에 Git 가 뭐에요 하고 물어보는 사람은 많아도 Git 를 구글링해서 Wiki 를 보는 사람은 많지 않다.  ( 없다는 말이 아니다. 엑스퍼트들 흥분 마시라 )  심지어 Git 를 우리 부장님이 모르신다면 황송하게도 부하직원에 물어보신다.  이런 환경은 갑과 을의 관계에서도 지속된다.  갑은 Git 을 알 필요가 없다고 생각한다. 그래서 15년도 넘은 CVS 쓴다.


세상이 오픈소스를 원하기 때문에, 아 더럽네 이제 이것도 공부해야 되네 라고 생각한다면,  다른 분야의 개인사업을 차리도록 권고하고 싶다.  세상이 오픈소스를 원하는게 아니라,  앱을 돈내고 사고, 광고를 보아주는 고객들이 핸드폰 들고 당신의 서비스를 찾아온다.  5년전만 해도 컴퓨터는 젊은사람들의 전유물이었는데, 세월이 흐름에 따라 젊은사람들이 늙고, 이 사람들이 경제력을 가져 아이폰과 아이패드를 사고 갤럭시탭을 사고,  그런것들 사서 하는 것들이 모두 소비의 행동이기 때문에 좋은 제품들을 쉽게 내어 놓은 회사들은 떼돈을 번다.  아이폰 앱이 "스트리트파이터" 처럼 몇만원에 달하는 경우는 거의 없고, 대부분 $0.99, 몇백원 수준의 것들인데, 이것들을 4천만원 ~ 몇억 하는 서버들로 구성해서야 단가가 맞겠는가.  설령 단가가 맞는다 하더라도,  시간당 5백원 ~ 몇천원 수준, 심하게는 한달에 몇만원 하는 서비스가 있는데 그런 고비용을 사용한다면,  더 많은 이익을 포기하겠다는 것과 다름이 아니다.

돈들 참 많어~

image from : http://itsnotlevel.com/thepress/wp-content/uploads/2009/01/tons_of_money-21671.jpg


근데 이런게 있어도, 우리나라 대부분의 기업은 못쓴다.  이유는 동일하다.  모른다. 또는, 겁낸다.

현대의 인프라는 대형의 큰 덩어리를 고비용을 주고 구매하는 것이 아니라, 싸고 작은것을 많이 써서 언제든 고장나더라도 대체 할 수 있게 하는 것이 핵심이다.  오픈소스로 된 서비스가 고장은 날 수 있을 지언정 한번에 모든 서버에서 동일한 문제가 뿅 하고 나타날 가능성은 희박하다.  저렴한 서버가 고장날 수는 있지만  모든 서버가 한번에 다 고장날 수는 없는거다.  그렇다, 그래서 오픈소스를 써도 된다.

문제가 생긴다. 우리 인프라는 윈도우인데,  이거 싼걸로 100대 이상 꾸미면 당최 라이센스비가 얼마가 될 지 모르겠다.
아끼자는 비용이 오히려 배꼽이 되어 더 커진다.  이럴때 클라우드를 이용한다.  컴퓨팅 클라우드 사업자는 통상 윈도우 라이센스 문제를 해결한다.  그래서 시간당 사용금액에 몇 센트, 몇 십원 씩을 덧붙인다.  하지만, 윈도우 서버를 써서 이미지를 서비스 하거나 (단순 파일전송) 뭔가 닷넷과 같은 MS특화된 것들을 하지 않는데 윈도우 서버를 쓴다면, 이번기회에 저렴한 리눅스로 이동하는 것도 좋다.

문제가 생긴다. 이제 리눅스가 겁난다.  또는 리눅스 엔지니어링을 하는 사람의 인건비가 겁난다.  이렇게 생각하면 좋다.
간단한 웹용 리눅스 서버가 5대 있는데 이걸 관리하려고 사람을 쓰면 그래, 아까운거 맞다.  근데, 이런 서버가 필요하면 1천대 이상 증가하는 환경에서는 이런 사람 쓰는게 남는거다.  1천대 윈도우 비용 내느니, 리눅스로 또 클라우드로 넘어 갈 수 있는데 도움이 되는 사람이라면, 아예 팀으로 구성하는게 남는거라는 말이다.  그래서 큰 규모의 서비스를 하는 해외에서는 벤더의 L7을  사는 대신 Reverse-Proxy 를 쓴다.  1천대를 로드밸런싱 하는데 L7을 삼십대만 구매한다고 생각해 봐도 구매하지 않는 경우와 비교 했을때의 가격은 후덜덜 하다.  인건비는 계속드는데 어쩔거냐고? 누적비용으로 따지면 더 비쌀거라고?   벤더에 주어야 하는 유지보수비와, ( 안줄 수 없는게 이게 벤더를 구매한 이유거든 )  장비 교체 연한에 따른 교체 비용, 그리고 구매한 장치의 감가상각등을 생각해 본다면, 사람을, 팀을 쓰는게 서비스가 커지면 커질 수록 남는 장사라는걸 깨닫게 될 것이다.  더군다나 그렇게 키워진 사람은, 언젠가는 당신의 다른 사업에 도움이 될 지도 모른다.  (물론 인간 관계가 좋아야 했었다는 과제가 따르긴 하지만.)

기억하라, 꽁자로 돌릴수 있는 오픈소스는 다른 플랫폼에서도 많이 동작하지만, 리눅스에서 돌리는게 제일 잘돌고 쉽다.

 
인프라가 리눅스인데 고민하고 있으면... 더 말 않겠다.


이제 인프라를 싸게 만드는 방법은,  기존에 있던 기술들을 사용한 오픈소스의 각 제품중 꼭 들어맞는 것을 잘 찾아서 조립 ( Assemble ) 하는데에 있다.


Thieves!!!!!

image from : http://www.antipatterns.com/orig/images/lock-in.gif


결론은 글 전체에 계속 나와있다. 모르는거 챙피한거 아니다. 언제? 남들 다 모를때. 하지만, 육군 병장이 조정간 안전 - 단발 - 점사 를 모르면 그건 맞아야 되는거다.   회사에서 때리진 않지만, 적절한 시간과 기회가 부여 되었음에도 불구하고 모르면 감봉당해도 할말 없고, 우리는 그런 돈 주고 받는 세상에서 산다.

물론, 우리나라에 많은 오픈소스 전문가들이 계심은 잘 알고 있다. 그리고 내가 쓰고있는 이 주제가 껄끄러우셨다면 죄송
하다. 하지만 이런 이야기는 한번 꼭 해야겠다.   많은 경우, 이런걸 알고자 하는 노력을 게을리한다.  사실 노력이 없고, 이런 부분에는 시간을 쓸 필요가 없다고 생각할 수도 있겠다.  하지만 위에 말했던 상황을 겪고 있다면, 준비하는게 좋지 않을까?  키우고 계신 자녀의 등록금을 위하여서라도.


자, 오픈소스를 잘 알기위한 팁을 보자.
  1. 네이버의 지식인에 관련 지식을 물어보는걸 그만한다.  뉴스는 뭐.. 취향이니까 관여 않는다.
  2. Google 검색을 한다.
  3. Google 검색을 한다.
  4. Google 검색을 한다.
  5. Google 검색을 한다.
  위의 5가지의 훌륭한 방법을 모두 수행했음에도 불구하고 잘 안나오는 소프트웨어가 있다면, 다음의 방법을 따른다.
  1. 서비스에 도입하지 않는다.
  2. "Human knowledge belongs to the world" 정신을 몸소 실천하여 내가 마루타가 되어 본다.
  3. 상용화된 서비스에 도입하여 어디가 문제인지 알아본다. ㅡ_ㅡ

정보는 널리고 널렸다.  옆사람 아랫사람한테 야 우리 소스 형상관리 뭘로 하냐? 했을때 "SVN" 이요 라는 대답을 들었으면,  야 그래도 우리가 어떤회산데 간지가 있지 Git 한번 갈수 있나 봐라  하는 꽃상사 님이 되는 방법은 어렵지 않은것이다. 

Stuff You Should Know: How donkeys were invented.

image from : http://biomesblog.typepad.com/photos/uncategorized/calvin9_2.gif

한가지더 주의 해야 할 점은, 처음부터 모든 것을 알려고 하지 마라. 필요한 것 부터 하나씩, 우리 서비스에 있는거 하나씩 검색을 시작해 보기만 하면 되는 것일게다.

IT업계에 농담이 있다.  MS가 윈도우와 관련 제품들을 팔고, HP,IBM이 서버를 팔고, 다른 모든 소프트웨어 업체의 솔루션을 구매하더라도, 모든 돈은 Oracle 로 흐른다 는 것이다.   항상 말하지만, Oracle 참 좋은 DB다.  다만, 오라클을 오라클 답게 썼을때일 뿐이라는게 좀 아쉬울 뿐. 

나중에 천대씩 넣어야 하는 상황에서 라이센스때문에 벤더 바짓가랭이 잡고 울지 말고, 미리미리 준비 하자.
괜찮다. 아직 늦지는 않았다.  우리나라의 서비스 할만한 돈을 가지고 있는 회사들의 대부분이 아직 모른다.


싸고 쓸만한데 안쓸 이유가 없잖아? 

( younjin.jeong@gmail.com , 정윤진 )


미디어 노출

Techs
( younjin.jeong@gmail.com, 정윤진 )

어제 inews24.com 에서 주최하는 Nexcom 2011 에서 "Cloud Automation" 이라는 주제로 강연을 맡았다.  KT 프로젝트를 하면서 만난 김우현님의 소개로 하게된 이런 세미나에서의 강연은 처음이라 초반에는 좀 떨었지만, 말을 하면 할 수록 안정을 찾게되어 그래도 무난히 끝마칠 수 있었다.  

언론사에서 주관하는 행사라 그런지 역시, 크게는 아니지만 기사가 나기도.  기사에서는 "줄일 수 있다" 라는 부분에 대해서 강하게 언급을 했는데, 이것과 함께 "DevOPs" 라는 주제에 대한 설명도 나름 비중있게 다루었었는데 잘 전달이 되지못했나 보다.  어제 이야기의 핵심은,

  • 클라우드의 모토는 신축성이며, 필요할때 늘리고 필요 없을때 줄일 수 있어야 하며, 이런 신축성을 고려한 서비스 구조와 이를 뒷받침 하기 위한 자동화가 필요하다.
  • 서비스 인프라를 코드로 만들기 위해서는 시스템 관리자가 코드를 사용 할 수 있어야 한다. 특히, 오픈소스 인프라에 전문적인 지식을 가진 관리자의 코드 작성 능력은 반드시 필요하다.
  • 관리자는 전문 개발자가 아니기 때문에, 자동화를 위한 도구는 배우고 사용하기 쉬워야 하며, 이러한 툴로는 Ruby 기반의 Chef 와 Puppet 이 있다.
  • 비지니스 변화의 요구에 대응하기 위해, 서비스는 개발자에 의하여 계속 변경 될 수 밖에 없다. 이러한 변화는 장애를 발생 시킬 수 있는 주요 요인이 될 수 있으며, 이런 문제를 극복하기 위한 "DevOPs" 의 문화가 필요하다.
  • DevOPs 란, 자동화된 인프라스트럭쳐 위에 개발자와 관리자가 협업하는 방법에 대한 문화와 도구를 말한다.  개발도 하면서 관리도 하는 사람을 일컫는 말이 아님에 주의한다.
  • 분산을 위한 구조를 서비스 도입단계부터 고려하는 것은 클라우드 서비스에서 중요한 부분중 하나다.  현재 서비스의 데이터를 먼저 분석하고, 흐름을 볼 줄 알아야 하며, 이를 통해 서비스의 각 리소스를 3중화 하는 것에 대한 고려로서 시작한다.  1개를 2개로 서비스 하는것은 1개로 할때보다 어려우며, 2개를 3개로 서비스 하는것은 1개에서 2개로 갈때보다 훨씬 어렵다.  하지만, 3이 고려된 서비스는 클라우드 내에서 N개로 증식이 가능하다.


이런 말들을 조리있게 하고 싶었지만, 잘 되지 않은 듯.  주제를 너무 많이 잡았나 보다. 중간에 시계도 잘못보고 ㅠㅠ
어쨌든, 미디어에 얼굴박힌 사진과 함께 노출된다는건 참 신기한 기분.

http://news.inews24.com/special_page/nexcom2011.php?
http://photo.media.daum.net/digital/view.html?cateid=1008&newsid=20110518172707373&p=inews24

좋은 경험의 기회를 소개해 주신 김우현님과 inews24 측에 감사드린다.




마지막으로, 딴지에서 읽은 "읽은척 매뉴얼"의 사마천 사기에 다음 구절이 요새의 클라우드 분위기와 딱 들어 맞는 것 같아서 소개한다.

'[역(易)]의 '대전(大傳)' 에 이르기를 "천하 사람들의 의향은 서로 같으면서도
사고방법은 가지각색이며, 목적지는 다 같으면서도 가는 길은 서로 다르다"라고
하였다.'
딴지일보 읽은척 매뉴얼 - 사마천 사기 링크 : http://www.ddanzi.com/news/62834.html


팀장님이랑 그런 이야기를 했다. '목적지는 알고 가자.'  전에 일본 서치나에 올랐을때도 느낀거지만, 재미있는 세상이다.


( younjin.jeong@gmail.com, 정윤진 )



Cloud Build? Build in Cloud?

Techs
( younjin.jeong@gmail.com, 정윤진 )


이제는 대세라 부르기도 뭣하다.  작년 KT가 야심차게 기업의 사활을 걸었다며 아마존 클라우드 서비스와 같은 IaaS 를 목표로 뜀박질 하기 이전까지만 해도 국내에서의 클라우드는 그게 뭥미?  또는 그거 지금 필요 없삼 의 반응이 지배적이었다.

하지만 KT로 부터 촉발된 클라우드 사업 경쟁의 시작은, 올해 초부터 호스트웨이의 Flex Cloud 서비스를 필두로 SK 의 T Cloud, LG CNS Cloud 등 수많은 클라우드 플랫폼들이 등장하면서 바야흐로 춘추전국시대를 앞두고 있다.  하지만 2011년 중반 현재까지, 아마존의 클라우드에 필적할 만한 인프라스트럭쳐 클라우드는 국내에는 없어 보이며, 만약 아마존이 국내 시장에 등장한다면 ( 그럴일은 별로 없지만 ) 아마 다른 모든 클라우드들은 초라해 지지 않을까 생각한다. 


예전의 클라우드사마


이제는 아무도 이런 블로그에서 클라우드 하면 이 파이널 판타지 7의 클라우드를 떠올리지 않는다. 

클라우드란건, 궁극적으로 서비스를 만들어서 제공해야 하는 입장에서는, 즉 아마존과 같은 클라우드를 서비스 하겠다 하고 퍼블릭 클라우드 사업에 뛰어들 기 위해서는 기술적으로 심각하게 고려되어야 하는 것들이 몇가지 있다.
요즈음 옥션의 광고에서 처럼, 당신이 고객이 되어 본다면 이러한 IaaS 클라우드 서비스에서 고객의 입장으로 클라우드를 사용할 때 고려할 것들은 다음과 같다.

  • 인스턴스의 생성/삭제가 허용할 만한 범위내의 시간에서 이루어지는가.
  • 내가 원하는 경우 어떠한 형태로든 인스턴스의 데이터에 대한 백업이 가능한가.
  • 내 인스턴스를 우리 서비스에 맞는 어플리케이션을 설정하고, 이를 템플릿화 하여 재사용이 가능한가.
  • 내가 사용한 트래픽/프로세싱파워/스토리지 공간 등에 대한 과금이 정확하며 합리적인 것인가.

이는, 내가 매번 내부 교육이나 PT에서 강조하는 클라우드의 가장 큰 특성인 "신축성"에 더하여, 퍼블릭 클라우드가 가져야 하는 최소한의 성능 및 요구조건을 이야기 한다.  위의 넷중 하나라도 제대로 동작하지 않는다면, 클라우드는 클라우드로서의 경제성/기능성을 잃게 되고, 고객은 떠날 것이다.

이러한 요구 조건들을 당최 어떻게 충족시킬 것인가? 
다시 클라우드를 만드는 사람의 입장에서,

  • 고객 인스턴스의 충분한 사용성을 확보하기 위해서, 다음의 리소스에 대해 수많은 테스트와 적절한 플랫폼/아키텍쳐에 대한 고민이 필요하다.
  • 스토리지 I/O 성능
  • 네트워크 구조 및 구간별 대역폭
  • 전체 시스템 내에서 고객 인스턴스들의 오케스트레이션
  • 클러스터 노드들의 스펙
  • 보다 쉬운 개발 및 관리를 위한 자동화 방법/구조 선택
  • 효율적인 모니터링 시스템의 구현
  • 사용자 계정별 적절하고도 비교적 정확한 과금방법 구현 
  • 경쟁사 대비 보다 저렴한 구축비용 
  • 고객 사용성과 서비스 제공에 대한 적절한 Trade off

위의 몇가지에서 파생될 수 있는 수많은 가능성은 굳이 언급하지 않아도 골치 아파질 것이다.  이렇게 고려해야 할 것들이 많을진데, 우리나라 클라우드들은 조금 써보면 궁금해 지는 부분이 없지 않아 있다.  아직 상용화 하기엔 이른 부분들이 있어 보이고, 경쟁사를 인식해 너무 서두르는 감이 있지 않나 싶다.

클라우드는, 내부에서 실험적으로 사용하고자 할때 비용과 자원만 있다면 반나절만에도 구축 가능한 플랫폼이다.  하지만 이런 클라우드를 "고객이 사용해 보고 만족할 만한" 플랫폼으로 만드는 것은 수많은 전문 인력들이 수개월 동안 애자일과 같은 모든것이 공유되고 모든 코드가 내부에 공개된 고도의 협동조직이 만드는 것이 아니면 안된다.  전문화된 스토리지 엔지니어와 서버개발자, 백엔드와 프론트 엔드 개발자, 가상화 전문가 등 각 분야에 매우 전문적인 서로다른 인력들이 팀으로 조화되지 않는다면 사실 클라우드 만들기는 돈지랄 하는 소꿉장난이 될 수 밖에 없을 것이다.

우리나라의 기업 및 IT 조직 구조는 사실 이런 형태가 아닌  시스템 하는 사람 모임 시스템 팀, 개발해서 기능 추가하는 사람들의 모임 개발팀, 데이터베이스 관리하는 DBA팀 과 같이 같은 직무를 수행하는 사람들로 이루어 진 경우가 많이 있다.  이러한 구조는 기존의 구조를 "유지" 하는데는 좋을지 몰라도, 클라우드와 같은 "대주제" 를 소화하기에는 이미 너무 구시대적이며, 맞지 않는다.  조직은 기본적으로 다른 조직과 경쟁 할 수 밖에 없는데, 이러한 조직의 형태는 이미 경쟁이 될 수가 없다.  경쟁이 되지 않는데 경쟁을 붙여 놓으면 ( 고가평가) 당연히 싸움이 나고 프로젝트는 산으로 간다.

뭐, 조직내로 숨고 싶어하는 사람들이 많은 국내의 많은 직장인들은 사실 내가 노출되어 능력을 발휘해야 하는 포지션이 되는것이 두려운 분들이 많다는 것도 잘 알고 있다.  이런 분들은 나중에 OP 교육해서 원래 하던대로 하시도록 하고, 그런 성향이 아니며 충분히 능력이 있는 분들을 플랫폼 개발 일선으로 배합해야 하는 것도 매우 중요한 과제 되겠다. 글고 울나라는 아이비 리그 같은 좋은 학교 졸업하신 분들이 ( 꼭 언급된 특정 대학을 비난하고자 하는 의도는 없음 ) 이런 일 잘 할것으로 기대하는데, 사실 꼭 그렇지만은 않다.  이런 분들은 대개 더 높은 곳을 바라 볼 수밖에 없고, 비용이 굉장히 높을 수 밖에 없다.  뭐 그렇다 할 지라도 잘 만들어 주면 좋은데, 이게 또 그렇지 않은 경우가 대부분이랄까.  사실 이런 하이스펙의 인력으로 TF 를 채우는것은 상부로의 보고를 쉽게 만들고 프로젝트 실패를 "원래 할 수 없었던 것" 으로 만들기 위한 회피기동의 최우선 과제 일 뿐이다.  물론 다른 이유들이 더 있겠지만,  이런 부분들이 클라우드 완성을 위한 필요 요소가 되지 않음은 당연지사 일 것이다.

정리하면, 클라우드를 만드는 것은 매우 비용이 많이 들고, 인력의 관리 및 확보가 쉽지 않으며 경험있는 사람이 많지 않기 때문에 이 사람들에게 실패를 통해 기술을 축적할 시간을 주어야 하고, 이를 통한 대다수의 관리자들에가 충분한 교육이 될 수 있도록 하지 않으면 안될 것이다.  이런 과업을 수행하기 위해서 조직의 구조와 문화가 변경되어야 하고, 기존의 조직과는 분리가 되어야 하며, 그 인원의 충원에 있어서도 이전과는 다른 기준을 적용해야 한다.  이런 모든 것들 때문에 클라우드의 실현이 쉽지만은 않은 것이라 생각한다.




예전 Cloud Connect Event 에 갔을때 어떤 사람이 이런말을 했다. 

"자동차가 처음 나왔을때, 많은 사람들은 자동차가 순식간에 말과 마차를 대체할 것이라고 생각했습니다.  하지만 당시의 사람들은 그저, 보다 조금 빠른 말과 마차를 원했을 뿐 입니다."

또는, 만약 전쟁사를 좋아한다면 베트남 전쟁시 미군이 최신무기인 미사일에 대한 무한 신뢰로 팬텀 전투기에서 기관포를 아예 제거해 버림으로서 조종사들에게 원성을 샀던 일화를 알고 있을 것이다.

이제, 클라우드를 이용하는 고객의 관점에서 생각해 보자. 클라우드는 이제 시작되었고 ( 물론 실리콘벨리에서는 5년 전 즈음에 시작되었다. )  이 클라우드에 대한 이론적 사업모델과 실제 아마존/랙스페이스/고그리드 같은 기업들도 생겨났다.  또는 우리는 클라우드에요 라고 말하고 있지는 않지만 그 서비스 구성의 알려진 일부 모델이 클라우드 또는 어플리케이션 클러스터의 형태를 띄는 구글의 서비스, 또 막대한 데이터 양을 처리하는 Flickr 나 Twitter, Facebook 과 같은 서비스 모델들도 생겨났다.  이들은 모두 일종의 선구자들이고, 자동차 산업의 벤츠, 포르쉐, 페라리와 같은 존재들이다.  그들은 그와 같은 모델을 만들기 위해서 어떠한 부분에 가장 많은 자원을 투자했는지 조차 비밀에 부치며 그들의 경쟁력을 유지하고 있다.

 


하지만 그러한 비밀의 핵심 내용은 사실 간단하다.  현대의 웹 어플리케이션은 많은 부분에서 예전의 도스시절 C로 작성한 어플리케이션 보다 어플리케이션 자체로서의 비밀의 비중이 낮다.  이말은 쉽게 말하면 도스시절보다 현대의 웹세상이 프로그램 만들기가 보다 쉽다는 말이다. 여기에 전제를 달아야 하는것이 바로 '기능 구현 면에서는' 이 될 것이다.  그런데 도스 시절보다 어려워진 것이 웹 세상에 있는데, 웹 세상에 있는 사람들은 보통 이런 부분을 많이 생각하지 않는다. 적어도 국내에서는.  그 부분이 바로, '분산을 위한 어플리케이션 구조' 일 것이다.  다른말로 이런 아키텍처링은, 위에서 말한 모든 회사의 비밀의 핵심이다.  이러한 비밀이 풀리는 순간, 아류의 서비스는 순식간에 등장하여 경쟁력을 약화 시킬것이 분명하다.  하지만 아이러니하게도, 국내에서 이런 부분에 관심을 가지는 분들은 각 기업 연구소에 계신분들은 안계신 듯 하다.  사실 큰 관심도 없어 보인다.  그래서 벤처들이 좋은 기회를 맞이하는 부분도 있을 수 있겠지만, 역시 국내의 여러가지 환경에서 이런 부분에 대한 고려를 해 달라 라는것은 현실적으로 무리가 따르는 것도 사실 아닌가.

클라우드란건 이제 페이스북과 같은 서비스를 시작하려는 불특정다수의 사업가들과 또 이러한 사업가들에게 네트워크 대역폭과 컴퓨팅/스토리지를 판매하려는 일종의 기간사업가 양측 모두에게 매우 매력적인 플랫폼이라 인식되고 있다.
하지만, 난 이런 이야기를 하고 싶다.  서비스의 단위리소스, 즉 웹서버라던가 디비서버, 스토리지 등을 1로 만드는건 그 개발기간이 2로 만드는 것보다 짧고 쉽다.  2로 만드는것은 1로 만드는 것보다는 어렵지만, 3으로 만드는 것 보다는 쉽다.  하지만, 진정한 클라우드의 마법은 3으로 만들었을때 시작되며, 3으로 만들 수 있도록 고려된 서비스는 n 으로 확장 가능할 것이다.  이러한 기술적 또는 클라우드의 특성에 대한 고민 없이 클라우드에 기존 서비스를 그저 "올려" 만 놓는 형태의 클라우드 사용은, 페이스북을 꿈꾸는 당신의 사장님에게 좌절을 안겨다 줄 뿐이다.

뭔가 주제없는듯 글만 길어지는 듯 한데,  클라우드를 만들려고 하는 사람이던, 클라우드를 사용하려고 하는 사람이던 클라우드는 사람과 조직에게 그에대한 경험을 익힐 시간을 필요로 할 것이다.  이러한 시간에 충분히 마이그레이션, 어플리케이션의 구조에 대해 고민하지 않는다면, 클라우드의 사용은 오히려 당신의 조직에 관리하기 어려운 비용만 많이 나가는, 골칫덩이 시스템이 될 것임을 보장한다.

그리고 여담이지만, 기술 매니저가 반드시 그 조직 내에서 정리를 해야 할 사람이 있다면, 그건 클라우드와 가상화 이야기를 듣자마자 그 플랫폼에 오라클 RAC 를 구성하자고 떠드는 사람일 것이다.


 
세상은 브라우저를 중심으로 빠르게 발전하고 있다.  클라우드만큼 중요시 보아야 할 것들이 바로 모든 플랫폼에서 동작하는 브라우저의 발달이다.  결국 클라우드 - 브라우저 발달은 서로 불가분의 관계로 결합되어 있어,  웹의 어떠한 형태가 다수의 플랫폼에서 접근하는 서비스성이 있는 수많은 고객들이 브라우저의 형태로서 제품을 체험하게 될 것이고, 이러한 웹의 형태에 대해 이해를 하고 클라우드에 대해 이해를 하여 이 맞물리는 접점에 대한 설계에 대한 고민을 할 줄 아는 사람들이 모여야만 수많은 그야말로 수억의 데이터를 처리 할 수 있는 모델이 나타나게 될 것이다.  사실, 사업하는데 처음부터 이런 기술적 고려를 할 필요는 없다.  사업성과 고객유치가 우선이며, 이러한 것들이 충족되고 기획단계에서 이런 확장성에 대한 고려를 마일스톤에 넣기만 한다면 문제 될 것은 많지가 않다.  다만 내가 말하는건, 개념없이 요새같은 세상에 오라클 웹로직 때려박을 생각은 좀 자중하고, asp 코딩하는것도 좀 참아 주길 바랄 뿐이며, 웹에 종사하는 사람이면 적어도 CDN 과 NoSQL, Reddit 같은 것들만 조금 고려해 주면 된다는 말이다.

삼천포로 빠졌는데,  브라우저는 역시 중요하다.  그리고 각 플랫폼 별 공통으로 동작 가능한 어떠한 형태의 코드나 프레임웍들도 중요하다.  이런 기술들이 클라우드와 연계되는 것도 중요하다.  당신이 Comet 으로 설계된 백그라운드 트랜젝션 로직을 RESTful 하게 구현했으면, Jetty 같은 웹 서버를 클라우드에서 어떻게 돌려줄 것인가 하는것도 고민해야 한다는 말이다.  그렇기 때문에 서로다른 직군이 클라우드를 만드는 사람들 처럼 클라우드에서 돌릴 서비스를 만드는 사람들에게도 중요하게 되는 것이다.


글재주가 많이 없어져서, 전체 글을 관통하는 주제를 통일성있게 설명할 능력도 없는것 같다.  굳이 말하자면, 클라우드라는것은 모두에게 중요하고, 클라우드에서 돌릴만한 대용량 서비스를 만드는 부분이나 클라우드를 만드는 부분이나 이제는 새로운 형태의 협업을 요구하고 있다.  이러한 협업과 기술에 대한 이해없이는, 국내에서는 절대로 Amazon / Facebook 서비스가 나타 날 수 없을 것이다.  아류는 판 칠 수 있을지라도.


클라우드는 기업 경제/기술/문화 등 많은 측면에서 다룰만한 주제가 많은 핫 아이템이다.  모두 다 다룰 수는 없는 일이고, 그럴만한 글재주도 되지 않지만,  그 구현의 방법처럼 많은,  말 그대로 '구름처럼 많은' 무엇을 만들기 위해 또 그런 양의 데이터가 움직이는 세상에서 당신이 뭘 해야 할지는 생각해 볼 필요가 있지 않나, 싶다.


몰래_똥싸는_IT인.jpg



( younjin.jeong@gmail.com , 정윤진 )




Movie

Hobbies

( younjin.jeong@gmail.com, 정윤진 )


개인적으로 감당하기 힘든일이 몇가지 있어 정신적으로 좀 힘들게 지냈던 요즈음이다.  쓰던 책도 손을 놓았다가 다시 쓰는 중이고, 아는 분의 소개로 NEXCOM 2011 에서 세션도 하나 맡아버렸다.  설명하다 덜덜 떨지 않았으면 좋으련만.

복잡한 마음을 달래기 위해서, 주말간 영화를 집에서 몰아서 봤다.



<하녀 (2010) 스릴러 | 한국 | 106 분>


원작은 못봤다. 다들 원작이 진리라 하지만 사실 굳이 1960년대 영화를 찾아서 볼 정도로 영화 매니아는 아니다. 당연히 원작에 대한 일말의 이해없이, OCN에서 주말에 해 주는 영화의 색감이 마음에 들어 2천원을 들여 다운받아 감상.  다운로드 받은 파일의 사운드나 영상의 품질이 썩 좋지 않아서 실망했지만, DVD 가 있다면 구매하고 싶을 정도로 마음에 쏙 드는 영화였달까.

작년 주말에 할일 없이 리모컨을 깨작거리고 있다보면 심심치 않게 등장하던 전도연님의 저 욕조 청소 장면이 머리속에 각인되어 있지만, 영화에는 이보다 더 흥미롭게 인물들의 심리를 묘사한 장면이 많았다고 생각한다.  어느 평론가의 말을 빌리자면, "현실 사회의 계급구조에 대한 인식 없이는 이해하기 힘든영화" 라는 말이 있는데, 이는 영화에서 나오는 "하녀" 로서 일하는 집과, 이혼한 주인공이 친구와 함께 지내는 고시텔 분위기의 집이 과연 현실에 동시에 존재하는 장소인가 라는 의문이 들 정도로 대조적인 장소의 퀄리티 차이에서 시작된다. 장소의 차이 뿐만 아니라, 럭셔리라는 단어조차 필요없어 보이는 마치 용이 살고 있다는 드래곤레어와 같은 분위기의 던전과 둘이서 싱글 침대에 몸을 뉘여도 거리의 네온사인의 깜빡임을 피할 수 없는 좁은 공간의 차이.

스릴러이지만 뭔가 부족하다는 사람들 대부분은 내용이나 화면에서 피가 튀기고 섬뜩한 추격자 스러운 전개를 원했나보다. 하지만, 어떤것도 자신이 원한대로 할 수 없었던 "미친" 하녀와, 하녀로서의 능력을 인정 받아 오랜세월 복종하였고,  검사가 된 아들을 가진 "인간승리" 를 한 정도의 취급을 당하는 늙은 하녀지만, 결국은 "못 배운 천한것들은 원래 그런 행동을 하는" 그런 정도의 사람으로 평가 되어 버리는 과정이 적나라하게, 하지만 예견되었던대로 착착 진행되는 이 현실같은 판타지가 우리가 매일 살고 있는 일상이라는게 느껴지는 순간 적어도 나에게는 엄청난 스릴러가 되었다.

사회는 어느 한 계급만으로 돌아가는 것이 아니라는건 굳이 설명할 필요도 없는 일이며, "우리 사회에 계급은 없어, 평등하니까" 라고 생각하는 착한 분들은 바로 "은이" 와 다름이 아닐것이다. 이런 차이를 극명하게 인지하여 오랜 세월 시스템을 구동시킨 "병진"이야 말로 시대를 살아가는 대부분의 표상일 것이며, 권력과 부에 빌어붙어 사는 주인 아내와 장모, 그리고 그 세습에는 어떠한 번식도 용인하는 살아있는 권력.  하지만 권력은 그것을 수행해 주는 사람 없이는 결국 무력하지만,  권력에 반기를 들려면 죽음이나 퇴직이라도 감수해야 하며, 결국 반기를 들거나 퇴직하여 떠난 사람을 얼마든지 더 많은 수로 채워 넣을 수 있는 권력에 대한 단상은 이 영화가 사회에서 말하는 계급의 차이가 어떻게 서로 영향을 끼치면서 움직이는지 적나라하게 나타내 주는게 아닐까 생각해 본다.  나쁜지 좋은지는 모르겠지만 취집을 가고, 보다 좋은 위치로의 신분상승을 노리며, 나보다 조금이라도 조건이 나은 상대와 결혼하고자 하는 이 모든 것들이 결국 성공하더라도, 이러한 무지막지하게 높이 있는 ( 또는 있어 보이는 ) 권력에게는 그저, "인간 승리" 정도의 작위를 부여 받지만, 수틀리면 "태생이 천한" 그 이상도 이하도 아니게 평가되는 현실.

심지어는 영화 전반부에서의 어느 여성의 자살에, 어느 누구도 경악하거나 굳이 관심을 두려 하지 않는 모습을 보면, 연대하지 않는 우리의 현실 사회를 그대로 보여주는 것 조차 섬뜩하다.  그저, 누가 잡혀가고 누가 피해를 받고 누가 죽어가더라도,  껄끄러운 듯 담배 피우며 잠깐 신경쓰더라도 다시 하던 일을 할 수 밖에 없는 그런 하나하나 고된 삶. 

영화를 다 보고 나서, 몇몇 인상적인 장면을 되돌려 보며 난 대체 누가 하녀인지 헛갈리기 시작했다.

권력에 빌붙어 자손을 생산하는것을 최고의 가치로 여기며 이를 세습하려는 여자인지
시키는것/시키지 않는것까지 수발하며 권력이 남긴 잔반과 돈의 대가를 즐기는 늙은 하녀인지
본능과 가까운 꿈을 가지고 하녀생활에 만족하던 젊은 하녀인지.

영화가 계급을 닮았다고 하면,  그럼 나는 어디에 속할까 생각해 보니, "병진" 에 가깝다는 생각이 든다.

비난 할 만한 상대인 장모와 장모같지 않은 하지만 장모처럼 될 수 밖에 없는 아내가 결국 하녀가 아닐까.  이정재님은 결국 "너희들은 씨받이 일 뿐"이라는 뉘앙스의 대사를 우아하게도 피아노를 치면서 장모에게 뱉는다.

궁금해서 감독의 이야기를 찾아보니, 역시나.

[ 감독의 변 ]

그네의 직업은 입주 가정부.
우리들 누구라도(!) 그러하듯(!) 하녀입니다,
그네는 하루 종일 하녀 노릇에 충실합니다, 나름 프로페셔날이니까요.
그러나 꼬인 마음이 없는 그네는 언제나 웃는 낯에 백치처럼 순진합니다.
그네는 맘 속 깊은 욕망에 귀 기울이고, 그 작은 욕망을 솔직히 좇습니다.
그네는 하녀지만, 또 하녀가 아니라는 말입니다, 네.

잔뜩 꼬인 여자.
그녀의 동료 늙은 하녀는 뼛속까지 하녀 근성에 물든 여인이지만,
다행히 그네는 이제 그 하녀 노릇을 그만 둬 버립니다. 축하!

이 두 여인을 하녀로 부리는 부자집 여인네들.
그네들은 자신들이야말로 하녀라는 걸 꿈에도 모릅니다.
모른 채, 딸에게 손녀에게 자신들의 하녀 근성을 고스란히 대물림 합니다.
슬프고도 끔찍한 일이지요.

백치처럼 맹해 보이기만 하는 우리들의 주인공,
그네가 끝내 도저히 참을 수 없었던 건 무엇이었던가요?

그건
우리들이 매일매일 서로 주고 받으며,
괴로워서 발버둥 치며 잊으려 하지만,
잊지 못하고 대충 뭉개고 살고 있는,
우리들의 보드라운 성감대에 눌러 붙은 굳은 살
같은 것.

출처(ref.) : 영화포스터 - 하녀 (2010) 스릴러 | 한국 | 106 분 | 2010-05-13 - http://bbunhae.com/board/movie_3/9203
by 뻔해닷컴


내가 좀 세상을 비관적으로 봐서 그런지는 모르겠지만,  난 사람들이 전도연님이 분했던 "은이" 같기 보다는, 오히려 윤여정님이 분했던 "병진" 같다고 생각한다.  많은 사람들이 복잡하고, 꼬여 있으며, 돈과 권력에 순종한다. 

이 영화를 막장이라고 하시는 분들 많은데, 난 막장의 정확한 기준이 무엇인지는 모르겠지만 그것이 "상식적으로 일어나기 힘든 무언가 꼴같지 않은 일"과 비슷한 의미라면, 맞다.  적어도 내가 경험한 세상에서는 그런 막장스런 일들이 일어나지 않는 것이 아닌, 아니 실제로 많이 발생하고 있으며, 이 영화가 그런 현실을 어느정도 반영 했다면 막장으로 봐도 무방하지 않겠나.

한가지 영화에서 궁금한것은, 하녀가 죽고 난 이후 새로운 집에서 유일하게 하녀와 유대를 가졌던 딸아이의 시선이다. 

 
<Full Meta Jacket | 1987 | Stanley Kubrick>



개인적으로 이 영화의 내용은 물론이거니와, 그 안의 음악적 요소들도 참 좋았다.  영화가 시작하자마자 입대하는 청년들이 머리를 삭발당할때 나오는 흥겨운 멜로디, "Hello Vietnam". 그리고 하트만 교관이 구보나 제식훈련을 하며 붙이는 군가와 구령, 그리고 전장에서 미군이 행군을 하면서 부르는 MICKEY MOUSE, 엔딩에 사용된 반전 음악의 대표주자 Paint it black 까지. 

이 영화는 대표적인 반전영화로서, 평화라는 입발린 목적으로 살인을 자행하는 전쟁에 대해 이야기한다.  베트남전에 대한 정치/군사적 배경을 뒤로 하더라도 포스터의 헬멧에 그려진 평화의 심볼과 총알, 그리고 Born to Kill 이란 문장은 영화의 모든것을 말해주지는 않지만 적어도 이 영화가 전쟁에 그다지 호의적인 입장의 영화는 아니라는 것을 말해주는 듯 하다.

영화는 크게 두 부분으로 나눌 수 있는데, 전반부는 미국의 젊으신 청년분들이 영광스럽게도 미 해병대에 입대하여 훈련을 받는 모습을 보여준다. 이 안에는 고문관도 있고, 교관의 의도를 미리 파악해 버리는 단 한명의 똘똘이가 있으며, 나머지는 모두 일반적인 빠릿한 훈련병의 모습을 보여준다.  이러한 사람들이 이름대신 하트만이 지어준 별명으로 불리우며, 제식, 사격, 체력훈련, 내무생활 등의 군대생활 전반에 익숙하게 만드는 훈련을 하는 와중에 이 훈련병들의 인권 변화로 인한 심리상태가 어떻게 변해가는지 아주 디테일하게 잘 보여주고 있다. (고 나는 생각한다. )

사실 군대나 군복이라는건 참 신기해서, 나도 현역에 있을때는 까까머리 깎고 훈련소에서 처음 발 맞추어 걸어가기가 참 힘들었고, 걷는발과 앞뒤로 휘저어야 하는 팔이 같은 박자에 움직여서 "장애인이냐" 이런 소리를 듣기도 할 정도로, 갓 군복을 입혀 놓은 청년들은 밖에서 무얼 하고 어떠한 학력을 가지고 있던지 간에 대부분이 띨띨해 보인다.
영화에서 보이듯 왼쪽 오른쪽 같이 쉬운 개념도 갑자기 헛갈릴때가 있을 정도로, 신병은 항상 허름해 보일 수 밖에 없다.

이러한 신병들을 굴리고 굴려 하나의 그래도 삽질은 할만한 군인으로 만드는 것이 이러한 훈련소의 목적으로, 군대 자체가 가진 특성과 함께 당연히 친절하지 않은 방식으로 사람들을 교육한다.  이런때의 폐혜는 당연히 나타나지만, 자연스럽게 묵인된다. 해서 대부분은 힘들어하고, 그 중 일부는 괴로워 하고, 또 그 중의 일부는 자살한다.  이러한 훈병의 심리적 과정이 미군식으로 잘 나타난 것이 바로 이 풀 메탈 자켓 이라는 영화라고 생각한다.

사실 이 전반부는 즐겁다. 지난 군시절이 생각나는 것도 있고, 하트만이라는 교관의 거칠지만 뭔가 해학적인듯한 말투는 내가 그 앞에 서지만 않으면 얼마든지 즐겁게 감상 할 수 있다. 하지만 영화는 점점 개인의 잘못을 그 조직에 묻고, 그로 인해 "알아서 저녀석을 어떻게 하지 않으면 너희 모두 죽을 줄 알아" 라는 군대스러운 협박을 가하는 순간 불편해 지기 시작한다.  이는, 흔히 고문관이라 부르는 군대 적응이 남달리 늦거나 안되는 "우리 중의 일부" 에게 우리 스스로 동기를 부여하게 끔 한다. 하지만 이 동기라는건 절대로 친절한 것이 아니어서, 쌍팔년도 한국 군대면 "내 밑으로 수공구실 앞으로 집합" 이라던가, 훈련소 시절의 야외 화장실에서 몰래 담배피던 동기 때문에 12월 철원에서의 새벽 돌바닥에서 상의 탈의 한채로 포복을 할때 느껴지는, 바로 그런 살의 에서 비롯된 매우 불친절한 동기 부여 방법인 것이다.  당연히 이러한 동기를 부여를 체험한 고문관이 "아 내가 참 잘못했구나" 라고 느낄리 없다.  이러한 일련의 감정 고조의 변화는 꼭 내가 겪었던 것들과 비슷한 불편한 기억들과 겹치면서, 몰입하며 안스러운 감정이 들게 된다.  이러한 감정이 전반부에서 감독이 연결하고 싶었던 반전에 대한 메세지가 아니었나 싶다.

후반부에서는, 어느 한 저격수에게 분대원 세명이 사살당한다.  이에 분개한 군인들은 이를 바득바득 갈며 결국 이 병사를 찾아 내게 되고, 주인공은 이 초등학생 정도인 저격병을 뒤에서 쏠지 말지 우물 쭈물 하다 기회를 놓치고(총알이 걸렸는지 총에도 문제가 있기는 했다) 결국 다른 병사가 쓰러트리게 된다.  수발의 총알은 맞았지만 아직 살아있는 어린아이 저격병은 나를 죽이라며 저주를 퍼붇고, 미군은 쥐에게 살점을 뜯기다 죽도록 놓아주라고 하지만 주인공은 갈등끝에 아이를 죽이고, 동료들에게 독한놈이라는 찬사를 받는다.

전쟁이란건 내 옆의 사람이 죽는다.  미군의 군가에도 우리나라의 군가에도 전우의 시체를 넘는다는 말은 꼭 있다.  이런 영화는 전쟁 그 자체에 반대하는 경향이 짙어서, 사실 분단국가에서 전역하고 예비군 다 하고 민방위를 기다리는 내게는 이해 할 수 있는 부분도, 또 이해하지 않아야 하는 부분도 있는건 아닐까.  내 옆사람의 죽음에 대한 분노는 결코 내가 이후 처음 맞이하는 적이나 포로를 죽일 면죄부가 되지 않는다.  하지만 실제 상황이 그렇게 되면 누구나 그렇게 성인 군자가 될 수 없는 것, 또 그런 상황으로 몰아가는 환경이 바로 전쟁, 그래서 전쟁이 지나고 살아남은 사람들에게 더 괴로운 것이 아닐까.

영화는 전반부는 비교적 가볍게 볼 수 있으나 고문관의 자살 직전의 섬뜩한 눈빛 이후, 후반부는 굉장히 대놓고 관객에게 질문한다.  전쟁이 대체 뭐냐고.  전쟁에서 넌 뭐가 될 수 있겠냐고.  그런 전쟁을 해야겠냐고. 
부대 이동할때 우리 부대도 가끔, 정말 아주 가끔, 일년에 한 16번 있는 훈련중 한번 정도는 만화 주제가를 부르기도 했다.  영화의 종반부에도 미키마우스를 찾아대며 이동하는 부대를 보노라면 쓴웃음이 난다.

역시 난 영화 평론가가 아님에도 불구하고, 스텐리 큐브릭이란 감독은 정말 대단한것 같다 라는 생각.


<PLATOON | 1986 | Oliver Stone>



이 영화, 군대 가기전에 예전에 봤었다.  베트남전 영화에 풀 메탈 자켓 때문에 불이 붙어서 연달아 보게 된 영화.
풀 메탈 자켓과 비슷하게, 영화는 전쟁에 참여한 한 개인의 시점에서 진행된다.  하지만 플래툰에서는 고향의 할머니에게 부치는 편지를 읽는 형식을 빌어, 독백 같은 나래이션이 분위기를 더한다.  풀 메탈 자켓과 플래툰 모두, 주인공들이 먹물이다.  가방끈이 남들보다 엄청나게 길지는 않지만, 적어도 글은 제대로 쓸 줄 알고 인간과 전쟁에 대해 영화에 보여지는 그의 주변 인물들 보다 깊이 생각한다.

베트남전은, 내가 왈가왈부 할 세대는 사실 아니긴 하지만 그때 당시의 미군 내에서는 "장교 죽이기" 같은 일이 비일 비재 했다고 한다.  영화에서도 소대장은 무시당한다.  여기에는 전장 통신이 발달하면서 전투에 지휘관이 전선보다 뒷쪽에 자리하고 있으면서 감놔라 배놔라 하는 상황을 못마땅하게 여기는 감정과 동시에, 1년 현장근무 후 타 지역 또는 보직으로 옮겨가는 그런 장교들을 신뢰하지 않았던 시스템적인 문제도 있었다고 한다. ( 딴지 일보에서 "펜더" 로 검색하면 보다 깊은 시야를 제공하는 기사들이 많다.  독자의 한명으로서 급 존경 )  아무튼..

소대장은 무시당하고, 이로서 전투경험이 풍부한 하사관급 군인 두명을 중심으로 세력이 형성된다.  독하고 아귀같으며 짬밥 대우를 해 주지만 전투앞에서는 전투 목적 달성이 최우선인 민간인 사살도 필요하면 한다는 살벌한 고참과,  신병이 나자빠져 죽지 않도록 보다 신경쓰며 민간인에 대한  살상은 절대 용인하지 않는 친절한 고참이 그 둘이다.  당연히 이 둘의 갈등이 발생하며, 그를 따르는 사람들 간의 불화와 이런 상태에서의 조직이 불리한 전투에 임했을때의 모습을 현장감 있게 보여준다.

플래툰 역시 전쟁의 비참함을 다룬 반전영화이며, 이는 큰 맥락에서 일반 관객인 내 눈에는 풀 메탈 자켓과 이야기 하고자 하는 바가 다르지 않은 듯 하다.  다만, 풀 메탈 자켓에서는 먹물의 느낌에서 전쟁에 참관하는 듯 하지만 (주인공 조커의 병과도 보병은 아니다) 플래툰에서는 대학을 나온 일반적인 사람이 보병으로 전쟁에 투입되었을때의 느낌으로, 전장에 대한 감성이 보다 분명하게 느껴지는게 좋다고 할까.  물론, 직접 겪으면 아주 힘든 일이겠지만.

포스터에 나온 엘리어스의 죽음은 이러한 조직내부의 갈등으로 인한 비극이다.  그들은 서로 옳다고 믿는바가 있으며, 어느 누구도 서로를 틀렸다고 말하긴 힘들다. 우리의 조상들이 경험한 바와 같이, 전쟁에 인권은 없다.  하지만 전쟁을 수행하는 인원이 인권에 대한 존중이 없다면, 그건 살육과 다르지 않으며 전쟁 이후 붕괴된 인성이 제자리를 찾아가기는 힘들 지 않을까.

복잡한 생각 하지 않고도 영화 자체로 볼만 하다.  올리버 스톤의 전쟁영화 시리즈중 첫번째 라고 하지만, 사실 그런거 다 생각하고 영화 보면 힘들지 않나.  화면에서 던져주는 주제에 대해 간단히 생각하고 필터링 하는 소소한 재미가 관람일테니 말이다.

참고로 영화의 포스터는, Art Greenspon 이라는 사진가가 베트남전에서 찍은 장면을 재현 한 것이라 한다.  이는 101 공수사단의 병사들을 구급헬기로 옮기는 장면이라 한다.  ( 이 부대가 밴드 오브 브라더스의 그 부대인갑다. )


 
이 외에도 Apocalypse Now redux, 이웃집 남자 등을 봤지만 모두 다 쓰기에는 기력이 딸리므로 패스.


낼 부터는 발표 준비나 더 해야 겠다.


( younjin.jeong@gmail.com, 정윤진 )