세상 참 좋아졌다

새로운 프로젝트를 맞아 팀과 개발환경을 구축하느라 요새 바쁘다. 오늘은 그 중에서 개발환경에 관해 짧게 글을 남길까 한다. 내겐 몇 주 지난 옛 이야기에 불과하지만 누군가에겐 도움이 될 정보인 듯 싶고 블로그를 오래 방치해 놓기도 싫으니 좋은 기회다 싶다.

웹 서비스를 구축하기로 했다. 작업 환경은 대충

  • 데스크톱: Mac OS X
  • 서버: CentOS
  • 프레임워크: Spring Framework

이다.

언제나처럼 이번에도 모든 작업을 자동화하고 깔끔하게 진행하고 싶다. 그래서 개발 환경에선 개발자가 자신의 컴퓨터에서 모든 작업을 처리할 수 있게 하련다. 무엇보다 여러 명이 공용 데이터베이스를 한 대 두고 공유하는 짓은 하지 않으려 한다. 그래서 데이터베이스를 로컬 머신에 두고 자동으로 관리되는 테이블 스키마와 필수 레코드를 이용해 개발 테스트까지 진행하게 했다.

여기까지는 하도 많이 했던 일이라 금방 끝났다. 단지 귀찮았을 뿐. 문제는 그 다음이다. 운영 환경을 최대한 모방하려니 MariaDB를 클러스터로 묶고 전문 검색 엔진을 설치해야 한다. 그런데 Mac OS X에선 이 작업이 상당히 귀찮다. 물론 귀찮은 일이야 수두룩하니 그리 큰 문제는 아니다. 하지만 Mac OS X에서 한 작업을 나중에 CentOS에서 재현하려니 골치 아픈 점이 한 둘이 아니다. Mac OS X이 Unix 기반이라 해도 CentOS와는 차이가 많다. 이래선 두 가지 환경을 모두 감안해 설치 스크립트를 짜야 한다. Puppet 같은 자동화 도구조차 Mac OS X에선 제한된 기능을 제공할 뿐이고 그나마 Mac OS X용으로 짠 모듈 설치 레시피는 가뭄에 콩 나듯 눈에 띌 뿐이다.

삽질을 여러 번 하다 결국 Java 기반의 웹 서비스만 로컬 머신에서 돌리고 데이터베이스를 비롯한 기타 서비스는 개인별로 할당한 CentOS 머신에서 돌리기로 했다. 그런데 개인별로 PC를 두 대 주려니 자리가 비좁고 비용도 많이 든다.

“그래서 이런 짓은 싫단 말이다!”라고 잠시 생각하다 문득 가상화 솔루션을 도입하면 어떨까 싶더라. 라이브 서비스 중인 게임 팀에서 일할 때 시스템 엔지니어링 부서와 이야기를 많이 나눈 게 도움이 됐달까? 보통 값비싼 VM 솔루션을 쓰지만 오픈소스도 있다 얼핏 들었던 기억이 나서 일단 구글부터 뒤지기 시작했다.

VMware vSphere Hypervisor

그리고 VMware vSphere Hypervisor를 찾았다. 처음 생각한 오픈소스는 아니지만 무료로 쓸 수 있다. 구구절절 설명하면 지루할 테니 짧게 정리하자면

  • 무료
  • CentOS, Windows 설치 잘 된다. 테스트를 마친 후엔 CentOS만 쓴다.
  • 문서엔 Mac OS X Mountain Lion도 설치된다는데 우리는 실패했다.
  • 어차피 개발환경에서 데이터베이스 및 각종 서비스에 막대한 부하를 주는 일은 없다. 그러니 어지간한 사양의 PC로 여러 대의 CentOS를 돌려도 된다. 현재는 6대 돌려서 쓰는 중이고 더 늘 예정이다.
  • PC 구매 전에 반드시 공식 문서를 읽는다. 일부 하드웨어는 제대로 인식하지 못한다. 엄청 고생한다.
  • VM 인스턴스 관리하기 무척 쉽다. 기본 기능만 탑재한 관리자 도구라 하지만 개발환경에선 충분하다.
  • 스냅샷 기능이 있으니 뭔가 제대로 꼬여도 그냥 복구하면 된다.
  • 그밖에 여러 기능이 있는데 확실히 PC 여러 대를 직접 관리하는 것보단 수백배 편하다.

Mac OS X Server

처음엔 vSphere에 빠져서 DNS 서버니 뭐니 전부 CentOS에 올렸다. 그랬더니 관리 이슈가 벌어지더라. SE가 정식으로 합류하기 전이기도 하고 귀한 SE에 잡일을 맡기고 싶지도 않았다. 중요한 이슈가 얼마나 많은데 말이지. 그래서 좀더 편한 관리도구를 도입하기로 했다.

Mac Mini는 두 가지가 있다.

이 중에서 Mac Mini with Mac OS X Server는 크게 두 가지가 다르다.

  • 하드디스크 용량이 1테라 더 크다.
  • Mac OS X Server라는 소프트웨어가 번들로 온다.

그런데 24만원을 더 들이는 대신 외장 스토리지와 램을 따로 사서 업그레이드하는 편이 싸다고 판단했다. Mac OS X Server는 앱스토어에서 구매했다.

이렇게 Mac OS X Server를 설치하니

  • 프로파일 관리자는 소규모 Active Directory 역할을 한다. 이걸로 스튜디오 망 내 인증 절차는 통일이 가능하다(여전히 진행 중).
  • 파일 공유
  • 타임머신 백업 서버
  • 인터넷이 느린 나라여서 애플 소프트웨어 업데이트를 캐싱하는 기능이 요긴하다.
  • VPN 기능은 적용할 예정이다. 네트워크를 좀 손보고 나야 VPN이 가능해서 미뤘다.
  • 메시지 서버, 캘린더, 이메일 등은 구글의 서비스가 있으니 당분간 쓸 것 같지 않다.
  • 이 모든 기능을 설치하고 유지하기가 무척 쉽다.

어차피 맥미니는 새로 올 개발자가 개발용으로도 쓸 예정이니 사실상 외장 하드디스크와 Mac OS X Server 비용 약 20만원으로 이 모든 걸 해치웠다. 우리 팀 개발자의 연봉을 생각하면 아주 싸게 잘 해결했다 싶다.

정말 세상 좋아졌다. 아무렴.

Advertisements

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu